From 808def96aa4589fba9c2d0ea55837754a3b7a4f7 Mon Sep 17 00:00:00 2001 From: lhauch Date: Wed, 31 Dec 2008 16:26:40 +0000 Subject: Retiring the ANT/JAVA build and removing the older EDK II packages that required ANT/JAVA. Last Ant/Java build was r7166 Developers requiring the Java/Ant packages should checkout the branch from: https://edk2.tianocore.org/svn/edk2/branches/AntJava git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7168 6f19259b-4bc3-4df7-8a09-765794883524 --- .../net/sf/antcontrib/cpptasks/AboutCCTask.java | 49 - .../net/sf/antcontrib/cpptasks/ArchEnum.java | 72 - .../net/sf/antcontrib/cpptasks/AslcompilerDef.java | 118 -- .../sf/antcontrib/cpptasks/AslcompilerEnum.java | 54 - .../net/sf/antcontrib/cpptasks/AssemblerDef.java | 237 --- .../net/sf/antcontrib/cpptasks/AssemblerEnum.java | 53 - .../net/sf/antcontrib/cpptasks/CCTask.java | 1749 -------------------- .../antcontrib/cpptasks/CCTaskProgressMonitor.java | 56 - .../net/sf/antcontrib/cpptasks/CPUEnum.java | 71 - .../Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java | 461 ------ .../net/sf/antcontrib/cpptasks/CompilerDef.java | 556 ------- .../net/sf/antcontrib/cpptasks/CompilerEnum.java | 221 --- .../net/sf/antcontrib/cpptasks/CompilerParam.java | 33 - .../net/sf/antcontrib/cpptasks/DependencyInfo.java | 86 - .../sf/antcontrib/cpptasks/DependencyTable.java | 609 ------- .../net/sf/antcontrib/cpptasks/DistributerDef.java | 243 --- .../net/sf/antcontrib/cpptasks/DistributerMap.java | 218 --- .../cpptasks/DistributerProtocolEnum.java | 50 - .../net/sf/antcontrib/cpptasks/FileVisitor.java | 27 - .../net/sf/antcontrib/cpptasks/LinkerDef.java | 549 ------ .../net/sf/antcontrib/cpptasks/LinkerEnum.java | 106 -- .../net/sf/antcontrib/cpptasks/LinkerParam.java | 33 - .../net/sf/antcontrib/cpptasks/OSFamilyEnum.java | 59 - .../antcontrib/cpptasks/ObjectFileCollector.java | 42 - .../sf/antcontrib/cpptasks/OptimizationEnum.java | 82 - .../net/sf/antcontrib/cpptasks/OutputTypeEnum.java | 48 - .../net/sf/antcontrib/cpptasks/PrecompileDef.java | 215 --- .../antcontrib/cpptasks/PrecompileExceptDef.java | 80 - .../net/sf/antcontrib/cpptasks/ProcessorDef.java | 714 -------- .../sf/antcontrib/cpptasks/ProcessorEnumValue.java | 47 - .../net/sf/antcontrib/cpptasks/ProcessorParam.java | 100 -- .../net/sf/antcontrib/cpptasks/RuntimeType.java | 26 - .../net/sf/antcontrib/cpptasks/SourceHistory.java | 51 - .../net/sf/antcontrib/cpptasks/SubsystemEnum.java | 34 - .../net/sf/antcontrib/cpptasks/TargetDef.java | 228 --- .../net/sf/antcontrib/cpptasks/TargetHistory.java | 58 - .../sf/antcontrib/cpptasks/TargetHistoryTable.java | 426 ----- .../net/sf/antcontrib/cpptasks/TargetInfo.java | 127 -- .../net/sf/antcontrib/cpptasks/TargetMatcher.java | 117 -- .../net/sf/antcontrib/cpptasks/VersionInfo.java | 550 ------ .../sf/antcontrib/cpptasks/arm/ADSCCompiler.java | 215 --- .../sf/antcontrib/cpptasks/arm/ADSLibrarian.java | 160 -- .../net/sf/antcontrib/cpptasks/arm/ADSLinker.java | 166 -- .../cpptasks/borland/BorlandCCompiler.java | 135 -- .../cpptasks/borland/BorlandCfgParser.java | 70 - .../cpptasks/borland/BorlandLibrarian.java | 200 --- .../antcontrib/cpptasks/borland/BorlandLinker.java | 264 --- .../cpptasks/borland/BorlandProcessor.java | 219 --- .../cpptasks/borland/BorlandResourceCompiler.java | 130 -- .../cpptasks/borland/CfgFilenameState.java | 46 - .../cpptasks/borland/ConsumeToSpaceOrNewLine.java | 30 - .../cpptasks/borland/QuoteBranchState.java | 35 - .../compaq/CompaqVisualFortranCompiler.java | 138 -- .../compaq/CompaqVisualFortranLibrarian.java | 82 - .../cpptasks/compaq/CompaqVisualFortranLinker.java | 77 - .../cpptasks/compiler/AbstractAslcompiler.java | 75 - .../cpptasks/compiler/AbstractAssembler.java | 72 - .../cpptasks/compiler/AbstractCompiler.java | 205 --- .../cpptasks/compiler/AbstractLinker.java | 85 - .../cpptasks/compiler/AbstractProcessor.java | 129 -- .../antcontrib/cpptasks/compiler/Aslcompiler.java | 23 - .../compiler/AslcompilerConfiguration.java | 29 - .../sf/antcontrib/cpptasks/compiler/Assembler.java | 23 - .../cpptasks/compiler/AssemblerConfiguration.java | 29 - .../cpptasks/compiler/CaptureStreamHandler.java | 122 -- .../cpptasks/compiler/CommandLineAslcompiler.java | 226 --- .../CommandLineAslcompilerConfiguration.java | 93 -- .../cpptasks/compiler/CommandLineAssembler.java | 326 ---- .../CommandLineAssemblerConfiguration.java | 123 -- .../cpptasks/compiler/CommandLineCCompiler.java | 42 - .../cpptasks/compiler/CommandLineCompiler.java | 435 ----- .../compiler/CommandLineCompilerConfiguration.java | 216 --- .../compiler/CommandLineFortranCompiler.java | 42 - .../cpptasks/compiler/CommandLineLinker.java | 404 ----- .../compiler/CommandLineLinkerConfiguration.java | 119 -- .../sf/antcontrib/cpptasks/compiler/Compiler.java | 24 - .../cpptasks/compiler/CompilerConfiguration.java | 64 - .../sf/antcontrib/cpptasks/compiler/LinkType.java | 134 -- .../sf/antcontrib/cpptasks/compiler/Linker.java | 57 - .../cpptasks/compiler/LinkerConfiguration.java | 31 - .../compiler/PrecompilingCommandLineCCompiler.java | 43 - .../compiler/PrecompilingCommandLineCompiler.java | 104 -- .../cpptasks/compiler/PrecompilingCompiler.java | 49 - .../sf/antcontrib/cpptasks/compiler/Processor.java | 73 - .../cpptasks/compiler/ProcessorConfiguration.java | 52 - .../cpptasks/compiler/ProgressMonitor.java | 31 - .../cpptasks/devstudio/DevStudioAslcompiler.java | 70 - .../cpptasks/devstudio/DevStudioAssembler.java | 84 - .../cpptasks/devstudio/DevStudioCCompiler.java | 50 - .../devstudio/DevStudioCompatibleCCompiler.java | 136 -- .../devstudio/DevStudioCompatibleLibrarian.java | 86 - .../devstudio/DevStudioCompatibleLinker.java | 127 -- .../cpptasks/devstudio/DevStudioLibrarian.java | 36 - .../cpptasks/devstudio/DevStudioLinker.java | 44 - .../cpptasks/devstudio/DevStudioMIDLCompiler.java | 113 -- .../cpptasks/devstudio/DevStudioProcessor.java | 90 - .../devstudio/DevStudioResourceCompiler.java | 117 -- .../cpptasks/gcc/AbstractArLibrarian.java | 106 -- .../antcontrib/cpptasks/gcc/AbstractLdLinker.java | 323 ---- .../sf/antcontrib/cpptasks/gcc/GccAssembler.java | 76 - .../sf/antcontrib/cpptasks/gcc/GccCCompiler.java | 243 --- .../cpptasks/gcc/GccCompatibleCCompiler.java | 152 -- .../sf/antcontrib/cpptasks/gcc/GccLibrarian.java | 41 - .../net/sf/antcontrib/cpptasks/gcc/GccLinker.java | 210 --- .../sf/antcontrib/cpptasks/gcc/GccProcessor.java | 299 ---- .../net/sf/antcontrib/cpptasks/gcc/GppLinker.java | 203 --- .../net/sf/antcontrib/cpptasks/gcc/LdLinker.java | 57 - .../cpptasks/gcc/cross/GccCCompiler.java | 273 --- .../cpptasks/gcc/cross/GccLibrarian.java | 69 - .../antcontrib/cpptasks/gcc/cross/GccLinker.java | 234 --- .../cpptasks/gcc/cross/GccProcessor.java | 288 ---- .../antcontrib/cpptasks/gcc/cross/GppLinker.java | 228 --- .../sf/antcontrib/cpptasks/gcc/cross/LdLinker.java | 83 - .../gcc/cross/sparc_sun_solaris2/GccCCompiler.java | 245 --- .../gcc/cross/sparc_sun_solaris2/GccLibrarian.java | 43 - .../gcc/cross/sparc_sun_solaris2/GccLinker.java | 215 --- .../gcc/cross/sparc_sun_solaris2/GccProcessor.java | 305 ---- .../gcc/cross/sparc_sun_solaris2/GppLinker.java | 210 --- .../gcc/cross/sparc_sun_solaris2/LdLinker.java | 60 - .../net/sf/antcontrib/cpptasks/hp/aCCCompiler.java | 104 -- .../net/sf/antcontrib/cpptasks/hp/aCCLinker.java | 100 -- .../cpptasks/ibm/VisualAgeCCompiler.java | 111 -- .../antcontrib/cpptasks/ibm/VisualAgeLinker.java | 75 - .../cpptasks/intel/IntelLinux32CCompiler.java | 58 - .../cpptasks/intel/IntelLinux32Linker.java | 55 - .../cpptasks/intel/IntelLinux64CCompiler.java | 58 - .../cpptasks/intel/IntelLinux64Linker.java | 55 - .../antcontrib/cpptasks/intel/IntelProcessor.java | 51 - .../cpptasks/intel/IntelWin32Aslcompiler.java | 66 - .../cpptasks/intel/IntelWin32CCompiler.java | 53 - .../cpptasks/intel/IntelWin32Librarian.java | 38 - .../cpptasks/intel/IntelWin32Linker.java | 46 - .../cpptasks/intel/IntelWin64CCompiler.java | 53 - .../antcontrib/cpptasks/os390/OS390CCompiler.java | 157 -- .../sf/antcontrib/cpptasks/os390/OS390Linker.java | 201 --- .../antcontrib/cpptasks/os390/OS390Processor.java | 71 - .../sf/antcontrib/cpptasks/os400/IccCompiler.java | 124 -- .../sf/antcontrib/cpptasks/os400/IccLinker.java | 202 --- .../sf/antcontrib/cpptasks/os400/IccProcessor.java | 71 - .../antcontrib/cpptasks/parser/AbstractParser.java | 67 - .../cpptasks/parser/AbstractParserState.java | 41 - .../sf/antcontrib/cpptasks/parser/BranchState.java | 46 - .../net/sf/antcontrib/cpptasks/parser/CParser.java | 78 - .../parser/CaseInsensitiveLetterState.java | 87 - .../antcontrib/cpptasks/parser/FilenameState.java | 41 - .../antcontrib/cpptasks/parser/FortranParser.java | 106 -- .../sf/antcontrib/cpptasks/parser/LetterState.java | 80 - .../net/sf/antcontrib/cpptasks/parser/Parser.java | 28 - .../net/sf/antcontrib/cpptasks/parser/PostE.java | 41 - .../WhitespaceOrCaseInsensitiveLetterState.java | 83 - .../cpptasks/parser/WhitespaceOrLetterState.java | 75 - .../sf/antcontrib/cpptasks/sun/C89CCompiler.java | 109 -- .../net/sf/antcontrib/cpptasks/sun/C89Linker.java | 125 -- .../sf/antcontrib/cpptasks/sun/C89Processor.java | 116 -- .../antcontrib/cpptasks/sun/ForteCCCompiler.java | 119 -- .../sf/antcontrib/cpptasks/sun/ForteCCLinker.java | 100 -- .../sf/antcontrib/cpptasks/ti/ClxxCCompiler.java | 192 --- .../sf/antcontrib/cpptasks/ti/ClxxLibrarian.java | 162 -- .../net/sf/antcontrib/cpptasks/ti/ClxxLinker.java | 181 -- .../cpptasks/types/AslcompilerArgument.java | 30 - .../cpptasks/types/AssemblerArgument.java | 30 - .../cpptasks/types/CommandLineArgument.java | 122 -- .../cpptasks/types/CompilerArgument.java | 28 - .../cpptasks/types/ConditionalFileSet.java | 84 - .../antcontrib/cpptasks/types/ConditionalPath.java | 92 - .../antcontrib/cpptasks/types/DefineArgument.java | 38 - .../sf/antcontrib/cpptasks/types/DefineSet.java | 199 --- .../net/sf/antcontrib/cpptasks/types/FlexLong.java | 59 - .../sf/antcontrib/cpptasks/types/IncludePath.java | 38 - .../sf/antcontrib/cpptasks/types/LibrarySet.java | 290 ---- .../antcontrib/cpptasks/types/LibraryTypeEnum.java | 48 - .../antcontrib/cpptasks/types/LinkerArgument.java | 28 - .../cpptasks/types/SystemIncludePath.java | 45 - .../cpptasks/types/SystemLibrarySet.java | 37 - .../cpptasks/types/UndefineArgument.java | 153 -- .../cpptasks/userdefine/CommandLineUserDefine.java | 297 ---- .../cpptasks/userdefine/UserDefineArgument.java | 34 - .../cpptasks/userdefine/UserDefineCompiler.java | 45 - .../cpptasks/userdefine/UserDefineDef.java | 333 ---- .../cpptasks/userdefine/UserDefineMapping.java | 87 - 180 files changed, 24761 deletions(-) delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java delete mode 100644 Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java (limited to 'Tools/Java/Source/Cpptasks/net') diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java deleted file mode 100644 index 67757bbf87..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -/** - * The equivalent of a Help About - * run "java -jar cpptasks.jar" to read - * - * @author Curt Arnold - */ -public class AboutCCTask { - /** - * display identification message and exit - * - * @param args ignored - */ - public static void main(String args[]) { - System.out.println("CCTask: Compile and link task for Apache Ant 1.5 or later\n"); - System.out.println("Copyright (c) 2002-2004, The Ant-Contrib project.\n"); - System.out.println("http://sf.net/projects/ant-contrib\n"); - System.out.println("Licensed under the Apache Software License 2.0"); - System.out.println("available at http://www.apache.org/licenses/LICENSE-2.0\n"); - System.out.println("This software is not a product of the"); - System.out.println("of the Apache Software Foundation and no"); - System.out.println("endorsement or promotion is implied.\n"); - System.out.println("THIS SOFTWARE IS PROVIDED 'AS-IS', See"); - System.out.println("http://www.apache.org/LICENSE for additional"); - System.out.println("disclaimers.\n"); - System.out.println("To use:"); - System.out.println("\tPlace cpptasks.jar into lib directory of Ant 1.5 or later."); - System.out.println("\tAdd and"); - System.out.println("\t\t to build.xml"); - System.out.println("Add , , , and elements."); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java deleted file mode 100644 index e219ad6871..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of cpu architecture types. - * - * @author Curt Arnold - * - */ -public final class ArchEnum - extends EnumeratedAttribute { - /** - * Constructor. - * - * Set by default to "pentium3" - * - * @see java.lang.Object#Object() - */ - public ArchEnum() { - setValue("pentium3"); - } - - /** - * Gets list of acceptable values. - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - /** - * Class initializer. - */ - return new String[] { - "i386", - "i486", - "i586", - "i686", - "pentium", - "pentium-mmx", - "pentiumpro", - "pentium2", - "pentium3", - "pentium4", - "k6", - "k6-2", - "k6-3", - "athlon", - "athlon-tbird", - "athlon-4", - "athlon-xp", - "athlon-mp", - "winchip-c6", - "winchip2", - "c3"}; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java deleted file mode 100644 index f69d3fde63..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import net.sf.antcontrib.cpptasks.compiler.Aslcompiler; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.intel.IntelWin32Aslcompiler; -import net.sf.antcontrib.cpptasks.types.AslcompilerArgument; - -import org.apache.tools.ant.BuildException; - -/** - * A asl compiler definition. asl compiler elements may be placed either as - * children of a cc element or the project element. A asl compiler element with - * an id attribute may be referenced from asl compiler elements with refid or - * extends attributes. - * - */ -public final class AslcompilerDef extends ProcessorDef { - - private Boolean defaultflag = new Boolean(true); - - public AslcompilerDef () { - } - - /** - * Adds a asl compiler command-line arg. - */ - public void addConfiguredAslcompilerArg(AslcompilerArgument arg) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorArg(arg); - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - public final Boolean getDefaultflag(AslcompilerDef[] defaultProviders, - int index) { - if (isReference()) { - return ((AslcompilerDef) getCheckedRef(AslcompilerDef.class, - "AslcompilerDef")).getDefaultflag(defaultProviders, - index); - } - return defaultflag; - } - - public Processor getProcessor() { - Processor processor = super.getProcessor(); - if (processor == null) { - processor = IntelWin32Aslcompiler.getInstance(); - } - return processor; - } - - /** - * Sets r type. - * - * Supported ASL Compilers - * - * - * - * - * - * - * - * - *
iasl (default)Intel ACPI Source Language
aslMicrosoft ACPI Source Language
- * - */ - public void setName(AslcompilerEnum name) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - Aslcompiler aslcompiler = name.getAslcompiler(); - setProcessor(aslcompiler); - } - - protected void setProcessor(Processor proc) throws BuildException { - try { - super.setProcessor((Aslcompiler) proc); - } catch (ClassCastException ex) { - throw new BuildException(ex); - } - } - - /** - * Enables or disables default flags. - * - * @param defaultflag - * if true, default flags will add to command line. - * - */ - public void setDefaultflag(boolean defaultflag) { - if (isReference()) { - throw tooManyAttributes(); - } - this.defaultflag = booleanValueOf(defaultflag); - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java deleted file mode 100644 index fa9806916f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import net.sf.antcontrib.cpptasks.compiler.Aslcompiler; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioAslcompiler; -import net.sf.antcontrib.cpptasks.intel.IntelWin32Aslcompiler; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of supported ASL Compilers - * - * Supported ASL Compilers - * - * - * - * - * - * - * - * - *
iasl (default)Intel ACPI Source Language
aslMicrosoft ACPI Source Language
- * - */ -public class AslcompilerEnum extends EnumeratedAttribute { - private final static ProcessorEnumValue[] aslcompiler = new ProcessorEnumValue[] { - new ProcessorEnumValue("iasl", IntelWin32Aslcompiler - .getInstance()), - new ProcessorEnumValue("asl", DevStudioAslcompiler - .getInstance()), }; - - public Aslcompiler getAslcompiler() { - return (Aslcompiler) aslcompiler[getIndex()].getProcessor(); - } - - public String[] getValues() { - return ProcessorEnumValue.getValues(aslcompiler); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java deleted file mode 100644 index aeae215780..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java +++ /dev/null @@ -1,237 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.Assembler; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.gcc.GccAssembler; -import net.sf.antcontrib.cpptasks.types.AssemblerArgument; -import net.sf.antcontrib.cpptasks.types.ConditionalPath; -import net.sf.antcontrib.cpptasks.types.IncludePath; -import net.sf.antcontrib.cpptasks.types.SystemIncludePath; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; - -/** - * A assembler definition. Assembler elements may be placed either as children - * of a cc element or the project element. A assembler element with an id - * attribute may be referenced from assembler elements with refid or extends - * attributes. - * - */ -public final class AssemblerDef extends ProcessorDef { - - private final Vector includePaths = new Vector(); - - private final Vector sysIncludePaths = new Vector(); - - private Boolean defaultflag = new Boolean(true); - - public AssemblerDef () { - } - - /** - * Adds a assembler command-line arg. - */ - public void addConfiguredAssemblerArg(AssemblerArgument arg) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorArg(arg); - } - - /** - * Creates an include path. - */ - public IncludePath createIncludePath() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - IncludePath path = new IncludePath(p); - includePaths.addElement(path); - return path; - } - - /** - * Creates an include path. - */ - public SystemIncludePath createSysIncludePath() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - SystemIncludePath path = new SystemIncludePath(p); - sysIncludePaths.addElement(path); - return path; - } - - /** - * Add a or if specify the file attribute - * - * @throws BuildException - * if the specify file not exist - */ - protected void loadFile(Vector activePath, File file) throws BuildException { - FileReader fileReader; - BufferedReader in; - String str; - if (!file.exists()) { - throw new BuildException("The file " + file + " is not existed"); - } - try { - fileReader = new FileReader(file); - in = new BufferedReader(fileReader); - while ((str = in.readLine()) != null) { - if (str.trim() == "") { - continue; - } - str = getProject().replaceProperties(str); - activePath.addElement(str.trim()); - } - } catch (Exception e) { - throw new BuildException(e.getMessage()); - } - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - /** - * Returns the assembler-specific include path. - */ - public String[] getActiveIncludePaths() { - if (isReference()) { - return ((AssemblerDef) getCheckedRef(AssemblerDef.class, - "AssemblerDef")).getActiveIncludePaths(); - } - return getActivePaths(includePaths); - } - - /** - * Returns the assembler-specific sysinclude path. - */ - public String[] getActiveSysIncludePaths() { - if (isReference()) { - return ((AssemblerDef) getCheckedRef(AssemblerDef.class, - "AssemblerDef")).getActiveSysIncludePaths(); - } - return getActivePaths(sysIncludePaths); - } - - private String[] getActivePaths(Vector paths) { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project not set"); - } - Vector activePaths = new Vector(paths.size()); - for (int i = 0; i < paths.size(); i++) { - ConditionalPath path = (ConditionalPath) paths.elementAt(i); - if (path.isActive(p)) { - if (path.getFile() == null) { - String[] pathEntries = path.list(); - for (int j = 0; j < pathEntries.length; j++) { - activePaths.addElement(pathEntries[j]); - } - } else { - loadFile(activePaths, path.getFile()); - } - } - } - String[] pathNames = new String[activePaths.size()]; - activePaths.copyInto(pathNames); - return pathNames; - } - - public final Boolean getDefaultflag(AssemblerDef[] defaultProviders, - int index) { - if (isReference()) { - return ((AssemblerDef) getCheckedRef(AssemblerDef.class, - "AssemblerDef")).getDefaultflag(defaultProviders, - index); - } - return defaultflag; - } - - public Processor getProcessor() { - Processor processor = super.getProcessor(); - if (processor == null) { - processor = GccAssembler.getInstance(); - } - return processor; - } - - /** - * Sets r type. - * - * Supported assemblers - * - * - * - * - * - * - * - * - *
gcc (default)GAS assembler
masmMASM assembler
- * - */ - public void setName(AssemblerEnum name) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - Assembler assembler = name.getAssembler(); - setProcessor(assembler); - } - - protected void setProcessor(Processor proc) throws BuildException { - try { - super.setProcessor((Assembler) proc); - } catch (ClassCastException ex) { - throw new BuildException(ex); - } - } - - /** - * Enables or disables default flags. - * - * @param defaultflag - * if true, default flags will add to command line. - * - */ - public void setDefaultflag(boolean defaultflag) { - if (isReference()) { - throw tooManyAttributes(); - } - this.defaultflag = booleanValueOf(defaultflag); - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java deleted file mode 100644 index 9abf9f496d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import net.sf.antcontrib.cpptasks.compiler.Assembler; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioAssembler; -import net.sf.antcontrib.cpptasks.gcc.GccAssembler; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of supported assemblers - * - * Supported assemblers - * - * - * - * - * - * - * - * - *
gas (default)GAS assembler
masmMASM assembler
- * - */ -public class AssemblerEnum extends EnumeratedAttribute { - private final static ProcessorEnumValue[] assemblers = new ProcessorEnumValue[] { - new ProcessorEnumValue("gas", GccAssembler.getInstance()), - new ProcessorEnumValue("masm", DevStudioAssembler - .getInstance()), }; - - public Assembler getAssembler() { - return (Assembler) assemblers[getIndex()].getProcessor(); - } - - public String[] getValues() { - return ProcessorEnumValue.getValues(assemblers); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java deleted file mode 100644 index d044df1288..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java +++ /dev/null @@ -1,1749 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.AslcompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.AssemblerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.LinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; -import net.sf.antcontrib.cpptasks.types.AslcompilerArgument; -import net.sf.antcontrib.cpptasks.types.AssemblerArgument; -import net.sf.antcontrib.cpptasks.types.CompilerArgument; -import net.sf.antcontrib.cpptasks.types.ConditionalFileSet; -import net.sf.antcontrib.cpptasks.types.DefineSet; -import net.sf.antcontrib.cpptasks.types.IncludePath; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LinkerArgument; -import net.sf.antcontrib.cpptasks.types.SystemIncludePath; -import net.sf.antcontrib.cpptasks.types.SystemLibrarySet; -import net.sf.antcontrib.cpptasks.userdefine.UserDefineCompiler; -import net.sf.antcontrib.cpptasks.userdefine.UserDefineDef; -import net.sf.antcontrib.cpptasks.VersionInfo; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.types.Environment; - -/** - * Compile, link, assembler and asl compile task. - * - *

- * This task can compile various source languages and produce executables, - * shared libraries (aka DLL's) and static libraries. Compiler adaptors are - * currently available for several C/C++ compilers, FORTRAN, MIDL and Windows - * Resource files. Assembler adaptors are currently available for MASM and GAS. - * And aslcompiler support to ASL and IASL command. - *

- * - * - *

- * Copyright (c) 2001-2005, The Ant-Contrib project. - *

- * - *

- * Licensed under the Apache Software License 2.0, - * http://www.apache.org/licenses/LICENSE-2.0. - *

- * - *

- * For use with Apache Ant 1.5 or later. This software is not a product of the - * of the Apache Software Foundation and no endorsement is implied. - *

- * - *

- * THIS SOFTWARE IS PROVIDED 'AS-IS', See - * http://www.apache.org/licenses/LICENSE-2.0 for additional disclaimers. - *

- * - * To use: - *
    - *
  1. Place cpptasks.jar into the lib directory of Ant 1.5 or later.
  2. - *
  3. Add <taskdef resource="cpptasks.tasks"/> and <typedef - * resource="cpptasks.types"/> to build.xml.
  4. - *
  5. Add <cc/>, <compiler/> <linker/> <assembler/> - * and <aslcompiler/> elements to project.
  6. - *
  7. Set path and environment variables to be able to run compiler from - * command line.
  8. - *
  9. Build project.
  10. - *
- * - * @author Adam Murdoch - * @author Curt Arnold - */ -public class CCTask extends Task { - private class SystemLibraryCollector implements FileVisitor { - private Hashtable libraries; - - private Linker linker; - - public SystemLibraryCollector (Linker linker, Hashtable libraries) { - this.linker = linker; - this.libraries = libraries; - } - - public void visit(File basedir, String filename) { - if (linker.bid(filename) > 0) { - File libfile = new File(basedir, filename); - String key = linker.getLibraryKey(libfile); - libraries.put(key, libfile); - } - } - } - - private static final ProcessorConfiguration[] EMPTY_CONFIG_ARRAY = new ProcessorConfiguration[0]; - - /** - * Builds a Hashtable to targets needing to be rebuilt keyed by compiler - * configuration - */ - public static Hashtable getTargetsToBuildByConfiguration(Hashtable targets) { - Hashtable targetsByConfig = new Hashtable(); - Enumeration targetEnum = targets.elements(); - while (targetEnum.hasMoreElements()) { - TargetInfo target = (TargetInfo) targetEnum.nextElement(); - if (target.getRebuild()) { - Vector targetsForSameConfig = (Vector) targetsByConfig - .get(target.getConfiguration()); - if (targetsForSameConfig != null) { - targetsForSameConfig.addElement(target); - } else { - targetsForSameConfig = new Vector(); - targetsForSameConfig.addElement(target); - targetsByConfig.put(target.getConfiguration(), - targetsForSameConfig); - } - } - } - return targetsByConfig; - } - - /** The userdefine definitions. */ - private Vector _userdefines = new Vector(); - - /** The compiler definitions. */ - private Vector _compilers = new Vector(); - - /** The output file type. */ - // private LinkType _linkType = LinkType.EXECUTABLE; - /** The library sets. */ - private Vector _libsets = new Vector(); - - /** The aslcompiler definitions. */ - private Vector _aslcompiler = new Vector(); - - /** The assembler definitions. */ - private Vector _assemblers = new Vector(); - - /** The linker definitions. */ - private Vector _linkers = new Vector(); - - /** The object directory. */ - private File _objDir; - - /** The output file. */ - private File _outfile; - - private boolean userdefine = false; - private String arch; - private String os; - private String vendor; - - /** the flag for assembler */ - private boolean assembler = true; - - /** the flag for aslcompiler */ - private boolean aslcompiler = true; - - /** The linker definitions. */ - private final Vector targetPlatforms = new Vector(); - - /** The distributer definitions. */ - private Vector distributers = new Vector(); - - /** - * If true, stop build on compile failure. - */ - protected boolean failOnError = true; - - /** - * Content that appears in and also in are maintained by a - * captive CompilerDef instance - */ - private final CompilerDef compilerDef = new CompilerDef(); - - /** - * Content that appears in and also in are maintained by a - * captive AslcompilerDef instance - */ - private final AslcompilerDef aslcompilerDef = new AslcompilerDef(); - - /** The OS390 dataset to build to object to */ - private String dataset; - - /** - * - * Depth of dependency checking - * - * Values < 0 indicate full dependency checking Values >= 0 indicate partial - * dependency checking and for superficial compilation checks. Will throw - * BuildException before attempting link - */ - private int dependencyDepth = -1; - - /** - * Content that appears in and also in are maintained by a - * captive AssemblerDef instance - */ - private final AssemblerDef assemblerDef = new AssemblerDef(); - - /** - * Content that appears in and also in are maintained by a - * captive CompilerDef instance - */ - private final LinkerDef linkerDef = new LinkerDef(); - - /** - * contains the subsystem, output type and - * - */ - private final LinkType linkType = new LinkType(); - - /** - * The property name which will be set with the physical filename of the - * file that is generated by the linker - */ - private String outputFileProperty; - - /** - * if relentless = true, compilations should attempt to compile as many - * files as possible before throwing a BuildException - */ - private boolean relentless; - - public CCTask () { - } - - - public void addConfiguredCommand(UserDefineDef userdefineDef) { - if (userdefineDef == null) { - throw new NullPointerException("UserDefineDef"); - } - userdefineDef.setProject(getProject()); - _userdefines.addElement(userdefineDef); - } - /** - * Adds a asl compiler definition or reference. - * - * @param Aslcompiler - * aslcompiler - * @throws NullPointerException - * if aslcompiler is null - */ - public void addConfiguredAslcompiler(AslcompilerDef aslcompier) { - if (aslcompier == null) { - throw new NullPointerException("aslcompier"); - } - aslcompier.setProject(getProject()); - _aslcompiler.addElement(aslcompier); - } - - /** - * Adds a asl command-line arg. Argument will be inherited by all nested - * aslcompiler elements that do not have inherit="false". - * - */ - public void addConfiguredAslcompilerArg(AslcompilerArgument arg) { - aslcompilerDef.addConfiguredAslcompilerArg(arg); - } - - /** - * Adds a assembler definition or reference. - * - * @param assembler - * assemblera - * @throws NullPointerException - * if assembler is null - */ - public void addConfiguredAssembler(AssemblerDef assembler) { - if (assembler == null) { - throw new NullPointerException("assembler"); - } - assembler.setProject(getProject()); - _assemblers.addElement(assembler); - } - - /** - * Adds a assembler command-line arg. Argument will be inherited by all - * nested assembler elements that do not have inherit="false". - * - */ - public void addConfiguredAssemblerArg(AssemblerArgument arg) { - assemblerDef.addConfiguredAssemblerArg(arg); - } - - /** - * Adds a compiler definition or reference. - * - * @param compiler - * compiler - * @throws NullPointerException - * if compiler is null - */ - public void addConfiguredCompiler(CompilerDef compiler) { - if (compiler == null) { - throw new NullPointerException("compiler"); - } - compiler.setProject(getProject()); - _compilers.addElement(compiler); - } - - /** - * Adds a compiler command-line arg. Argument will be inherited by all - * nested compiler elements that do not have inherit="false". - * - */ - public void addConfiguredCompilerArg(CompilerArgument arg) { - compilerDef.addConfiguredCompilerArg(arg); - } - - /** - * Adds a defineset. Will be inherited by all compiler elements that do not - * have inherit="false". - * - * @param defs - * Define set - */ - public void addConfiguredDefineset(DefineSet defs) { - compilerDef.addConfiguredDefineset(defs); - } - - /** - * Adds a linker definition. The first linker that is not disqualified by - * its "if" and "unless" attributes will perform the link. If no child - * linker element is active, the linker implied by the cc elements name or - * classname attribute will be used. - * - * @param linker - * linker - * @throws NullPointerException - * if linker is null - */ - public void addConfiguredLinker(LinkerDef linker) { - if (linker == null) { - throw new NullPointerException("linker"); - } - linker.setProject(getProject()); - _linkers.addElement(linker); - } - - /** - * Adds a linker command-line arg. Argument will be inherited by all nested - * linker elements that do not have inherit="false". - */ - public void addConfiguredLinkerArg(LinkerArgument arg) { - linkerDef.addConfiguredLinkerArg(arg); - } - - /** - * Add an environment variable to the launched process. - */ - public void addEnv(Environment.Variable var) { - compilerDef.addEnv(var); - linkerDef.addEnv(var); - assemblerDef.addEnv(var); - aslcompilerDef.addEnv(var); - } - - /** - * Adds a source file set. - * - * Files in these filesets will be auctioned to the available compiler - * configurations, with the default compiler implied by the cc element - * bidding last. If no compiler is interested in the file, it will be passed - * to the linker. - * - * To have a file be processed by a particular compiler configuration, add a - * fileset to the corresponding compiler element. - */ - public void addFileset(ConditionalFileSet srcSet) { - compilerDef.addFileset(srcSet); - } - - /** - * Adds a library set. - * - * Library sets will be inherited by all linker elements that do not have - * inherit="false". - * - * @param libset - * library set - * @throws NullPointerException - * if libset is null. - */ - public void addLibset(LibrarySet libset) { - if (libset == null) { - throw new NullPointerException("libset"); - } - linkerDef.addLibset(libset); - } - - /** - * Adds a system library set. Timestamps and locations of system library - * sets are not used in dependency analysis. - * - * Essential libraries (such as C Runtime libraries) should not be specified - * since the task will attempt to identify the correct libraries based on - * the multithread, debug and runtime attributes. - * - * System library sets will be inherited by all linker elements that do not - * have inherit="false". - * - * @param libset - * library set - * @throws NullPointerException - * if libset is null. - */ - public void addSyslibset(SystemLibrarySet libset) { - if (libset == null) { - throw new NullPointerException("libset"); - } - linkerDef.addSyslibset(libset); - } - - /** - * Checks all targets that are not forced to be rebuilt or are missing - * object files to be checked for modified include files - * - * @returns total number of targets to be rebuilt - * - */ - protected int checkForChangedIncludeFiles(Hashtable targets) { - int potentialTargets = 0; - int definiteTargets = 0; - Enumeration targetEnum = targets.elements(); - while (targetEnum.hasMoreElements()) { - TargetInfo target = (TargetInfo) targetEnum.nextElement(); - if (!target.getRebuild()) { - potentialTargets++; - } else { - definiteTargets++; - } - } - // - // If there were remaining targets that - // might be out of date - // - if (potentialTargets > 0) { - log("Starting dependency analysis for " - + Integer.toString(potentialTargets) + " files."); - DependencyTable dependencyTable = new DependencyTable(_objDir); - try { - dependencyTable.load(); - } catch (Exception ex) { - log("Problem reading dependencies.xml: " + ex.toString()); - } - targetEnum = targets.elements(); - while (targetEnum.hasMoreElements()) { - TargetInfo target = (TargetInfo) targetEnum.nextElement(); - if (!target.getRebuild()) { - if (dependencyTable.needsRebuild(this, target, - dependencyDepth)) { - target.mustRebuild(); - } - } - } - dependencyTable.commit(this); - } - // - // count files being rebuilt now - // - int currentTargets = 0; - targetEnum = targets.elements(); - while (targetEnum.hasMoreElements()) { - TargetInfo target = (TargetInfo) targetEnum.nextElement(); - if (target.getRebuild()) { - currentTargets++; - } - } - if (potentialTargets > 0) { - log(Integer.toString(potentialTargets - currentTargets - + definiteTargets) - + " files are up to date."); - log(Integer.toString(currentTargets - definiteTargets) - + " files to be recompiled from dependency analysis."); - } - log(Integer.toString(currentTargets) + " total files to be compiled."); - return currentTargets; - } - - protected LinkerConfiguration collectExplicitObjectFiles( - Vector objectFiles, Vector sysObjectFiles) { - // - // find the first eligible linker - // - // - ProcessorConfiguration linkerConfig = null; - LinkerDef selectedLinkerDef = null; - Linker selectedLinker = null; - Hashtable sysLibraries = new Hashtable(); - TargetDef targetPlatform = getTargetPlatform(); - FileVisitor objCollector = null; - FileVisitor sysLibraryCollector = null; - for (int i = 0; i < _linkers.size(); i++) { - LinkerDef currentLinkerDef = (LinkerDef) _linkers.elementAt(i); - if (currentLinkerDef.isActive()) { - selectedLinkerDef = currentLinkerDef; - selectedLinker = currentLinkerDef.getProcessor().getLinker( - linkType); - // - // skip the linker if it doesn't know how to - // produce the specified link type - if (selectedLinker != null) { - linkerConfig = currentLinkerDef.createConfiguration(this, - linkType, linkerDef, targetPlatform); - if (linkerConfig != null) { - // - // create collectors for object files - // and system libraries - objCollector = new ObjectFileCollector(selectedLinker, - objectFiles); - sysLibraryCollector = new SystemLibraryCollector( - selectedLinker, sysLibraries); - // - // if the has embedded 's - // (such as linker specific libraries) - // add them as object files. - // - if (currentLinkerDef.hasFileSets()) { - currentLinkerDef.visitFiles(objCollector); - } - // - // user libraries are just a specialized form - // of an object fileset - selectedLinkerDef.visitUserLibraries(selectedLinker, - objCollector); - } - break; - } - } - } - if (linkerConfig == null) { - linkerConfig = linkerDef.createConfiguration(this, linkType, null, - targetPlatform); - selectedLinker = (Linker) linkerDef.getProcessor().getLinker( - linkType); - objCollector = new ObjectFileCollector(selectedLinker, objectFiles); - sysLibraryCollector = new SystemLibraryCollector(selectedLinker, - sysLibraries); - } - // - // unless there was a element that - // explicitly did not inherit files from - // containing element - if (selectedLinkerDef == null || selectedLinkerDef.getInherit()) { - linkerDef.visitUserLibraries(selectedLinker, objCollector); - linkerDef.visitSystemLibraries(selectedLinker, sysLibraryCollector); - } - // - // if there was a in a nested - // evaluate it last so it takes priority over - // identically named libs from element - // - if (selectedLinkerDef != null) { - // - // add any system libraries to the hashtable - // done in reverse order so the earliest - // on the classpath takes priority - selectedLinkerDef.visitSystemLibraries(selectedLinker, - sysLibraryCollector); - } - // - // copy over any system libraries to the - // object files vector - // - Enumeration sysLibEnum = sysLibraries.elements(); - while (sysLibEnum.hasMoreElements()) { - sysObjectFiles.addElement(sysLibEnum.nextElement()); - } - return (LinkerConfiguration) linkerConfig; - } - - /** - * Adds an include path. - * - * Include paths will be inherited by nested compiler elements that do not - * have inherit="false". - */ - public IncludePath createIncludePath() { - return compilerDef.createIncludePath(); - } - - /** - * Specifies precompilation prototype file and exclusions. Inherited by all - * compilers that do not have inherit="false". - * - */ - public PrecompileDef createPrecompile() throws BuildException { - return compilerDef.createPrecompile(); - } - - /** - * Adds a system include path. Locations and timestamps of files located - * using the system include paths are not used in dependency analysis. - * - * - * Standard include locations should not be specified. The compiler adapters - * should recognized the settings from the appropriate environment variables - * or configuration files. - * - * System include paths will be inherited by nested compiler elements that - * do not have inherit="false". - */ - public SystemIncludePath createSysIncludePath() { - return compilerDef.createSysIncludePath(); - } - - /** - * Executes the task. Compiles the given files. - * - * @throws BuildException - * if someting goes wrong with the build - */ - public void execute() throws BuildException { - // - // if link type allowed objdir to be defaulted - // provide it from outfile - if (_objDir == null) { - if (_outfile != null) { - _objDir = new File(_outfile.getParent()); - } else { - _objDir = new File("."); - } - } - - // - // if the object directory does not exist - // - if (!_objDir.exists()) { - throw new BuildException("Object directory does not exist"); - } - - // - // if userdefine is true, then run all user defined command - // - if (userdefine) { - Iterator iter = _userdefines.iterator(); - while( iter.hasNext()) { - UserDefineDef userdefineDef = (UserDefineDef)iter.next(); - UserDefineCompiler userdefineCompiler = new UserDefineCompiler(this, userdefineDef); - userdefineCompiler.command(this, userdefineDef); - } - return ; - } - - TargetHistoryTable objHistory = new TargetHistoryTable(this, _objDir); - // - // determine the eventual linker configuration - // (may be null) and collect any explicit - // object files or libraries - Vector objectFiles = new Vector(); - Vector sysObjectFiles = new Vector(); - LinkerConfiguration linkerConfig = collectExplicitObjectFiles( - objectFiles, sysObjectFiles); - // - // Assembler hashtable of all files - // that we know how to compile (keyed by output file name) - // - Hashtable targets = getTargets(linkerConfig, objectFiles); - Hashtable acpiTarget = new Hashtable(); - if (aslcompiler) { - acpiTarget = getAcpiTargets(linkerConfig, new Vector()); - } - Hashtable assemblerTarget = new Hashtable(); - if (assembler) { - assemblerTarget = getAssemblerTargets(linkerConfig, objectFiles); - } - TargetInfo linkTarget = null; - // - // if output file is not specified, - // then skip link step - // - if (_outfile != null) { - linkTarget = getLinkTarget(linkerConfig, objectFiles, - sysObjectFiles, targets, assemblerTarget); - } - // - // If specify the aslcompiler, then call asl compiler - // - if (aslcompiler) { - BuildException acpiException = null; - Hashtable targetsByConfig = getTargetsToBuildByConfiguration(acpiTarget); - Enumeration acpiTargetEnum = targetsByConfig.elements(); - Vector[] targetVectors = new Vector[targetsByConfig.size()]; - int index = 0; - while (acpiTargetEnum.hasMoreElements()) { - Vector targetsForConfig = (Vector) acpiTargetEnum.nextElement(); - targetVectors[index++] = targetsForConfig; - } - for (int i = 0; i < targetVectors.length; i++) { - // - // get the targets for this configuration - // - Vector targetsForConfig = targetVectors[i]; - // - // get the configuration from the first entry - // - AslcompilerConfiguration config = (AslcompilerConfiguration) ((TargetInfo) targetsForConfig - .elementAt(0)).getConfiguration(); - // - // prepare the list of source files - // - String[] sourceFiles = new String[targetsForConfig.size()]; - Enumeration targetsEnum = targetsForConfig.elements(); - index = 0; - while (targetsEnum.hasMoreElements()) { - TargetInfo targetInfo = ((TargetInfo) targetsEnum - .nextElement()); - sourceFiles[index++] = targetInfo.getSources()[0] - .toString(); - } - try { - config.aslcompiler(this, _objDir, sourceFiles); - log(sourceFiles.length - + " total ACPI source files to be compiled."); - } catch (BuildException ex) { - if (acpiException == null) { - acpiException = ex; - } - if (!relentless) - break; - } - } - } - // - // If specify the assembler, then call assembler - // - if (assembler) { - BuildException assemblerException = null; - Hashtable targetsByConfig = getTargetsToBuildByConfiguration(assemblerTarget); - Enumeration assembleTargetEnum = targetsByConfig.elements(); - Vector[] targetVectors = new Vector[targetsByConfig.size()]; - int index = 0; - while (assembleTargetEnum.hasMoreElements()) { - Vector targetsForConfig = (Vector) assembleTargetEnum - .nextElement(); - targetVectors[index++] = targetsForConfig; - } - for (int i = 0; i < targetVectors.length; i++) { - // - // get the targets for this configuration - // - Vector targetsForConfig = targetVectors[i]; - // - // get the configuration from the first entry - // - AssemblerConfiguration config = (AssemblerConfiguration) ((TargetInfo) targetsForConfig - .elementAt(0)).getConfiguration(); - // - // prepare the list of source files - // - String[] sourceFiles = new String[targetsForConfig.size()]; - Enumeration targetsEnum = targetsForConfig.elements(); - index = 0; - while (targetsEnum.hasMoreElements()) { - TargetInfo targetInfo = ((TargetInfo) targetsEnum - .nextElement()); - sourceFiles[index++] = targetInfo.getSources()[0] - .toString(); - } - try { - config.assembler(this, _objDir, sourceFiles); - log(sourceFiles.length + " total files to be assembled."); - } catch (BuildException ex) { - if (assemblerException == null) { - assemblerException = ex; - } - if (!relentless) - break; - } - } - // - // if we threw a assembler exception and - // didn't throw it at the time because - // we were relentless then - // save the history and - // throw the exception - // - if (assemblerException != null) { - if (failOnError) { - throw assemblerException; - } else { - log(assemblerException.getMessage(), Project.MSG_ERR); - return; - } - } - } - - // - // mark targets that don't have a history record or - // whose source last modification time is not - // the same as the history to be rebuilt - // - objHistory.markForRebuild(targets); - CCTaskProgressMonitor monitor = new CCTaskProgressMonitor(objHistory); - // - // check for changed include files - // - int rebuildCount = checkForChangedIncludeFiles(targets); - if (rebuildCount > 0) { - BuildException compileException = null; - // - // compile all targets with getRebuild() == true - // - Hashtable targetsByConfig = getTargetsToBuildByConfiguration(targets); - // - // build array containing Vectors with precompiled generation - // steps going first - // - Vector[] targetVectors = new Vector[targetsByConfig.size()]; - int index = 0; - Enumeration targetVectorEnum = targetsByConfig.elements(); - while (targetVectorEnum.hasMoreElements()) { - Vector targetsForConfig = (Vector) targetVectorEnum - .nextElement(); - // - // get the configuration from the first entry - // - CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig - .elementAt(0)).getConfiguration(); - if (config.isPrecompileGeneration()) { - targetVectors[index++] = targetsForConfig; - } - } - targetVectorEnum = targetsByConfig.elements(); - while (targetVectorEnum.hasMoreElements()) { - Vector targetsForConfig = (Vector) targetVectorEnum - .nextElement(); - for (int i = 0; i < targetVectors.length; i++) { - if (targetVectors[i] == targetsForConfig) { - break; - } - if (targetVectors[i] == null) { - targetVectors[i] = targetsForConfig; - break; - } - } - } - for (int i = 0; i < targetVectors.length; i++) { - // - // get the targets for this configuration - // - Vector targetsForConfig = targetVectors[i]; - // - // get the configuration from the first entry - // - CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig - .elementAt(0)).getConfiguration(); - // - // prepare the list of source files - // - String[] sourceFiles = new String[targetsForConfig.size()]; - Enumeration targetsEnum = targetsForConfig.elements(); - index = 0; - while (targetsEnum.hasMoreElements()) { - TargetInfo targetInfo = ((TargetInfo) targetsEnum - .nextElement()); - sourceFiles[index++] = targetInfo.getSources()[0] - .toString(); - } - try { - config.compile(this, _objDir, sourceFiles, relentless, - monitor); - } catch (BuildException ex) { - if (compileException == null) { - compileException = ex; - } - if (!relentless) - break; - } - } - // - // save the details of the object file compilation - // settings to disk for dependency analysis - // - try { - objHistory.commit(); - } catch (IOException ex) { - this.log("Error writing history.xml: " + ex.toString()); - } - // - // if we threw a compile exception and - // didn't throw it at the time because - // we were relentless then - // save the history and - // throw the exception - // - if (compileException != null) { - if (failOnError) { - throw compileException; - } else { - log(compileException.getMessage(), Project.MSG_ERR); - return; - } - } - } - // - // if the dependency tree was not fully - // evaluated, then throw an exception - // since we really didn't do what we - // should have done - // - // - if (dependencyDepth >= 0) { - throw new BuildException( - "All files at depth " - + Integer.toString(dependencyDepth) - + " from changes successfully compiled.\n" - + "Remove or change dependencyDepth to -1 to perform full compilation."); - } - // - // if no link target then - // commit the history for the object files - // and leave the task - if (linkTarget != null) { - // - // get the history for the link target (may be the same - // as the object history) - TargetHistoryTable linkHistory = getLinkHistory(objHistory); - // - // see if it needs to be rebuilt - // - linkHistory.markForRebuild(linkTarget); - // - // if it needs to be rebuilt, rebuild it - // - File output = linkTarget.getOutput(); - if (linkTarget.getRebuild()) { - log("Starting link"); - LinkerConfiguration linkConfig = (LinkerConfiguration) linkTarget - .getConfiguration(); - if (failOnError) { - linkConfig.link(this, linkTarget); - } else { - try { - linkConfig.link(this, linkTarget); - } catch (BuildException ex) { - log(ex.getMessage(), Project.MSG_ERR); - return; - } - } - if (outputFileProperty != null) - getProject().setProperty(outputFileProperty, - output.getAbsolutePath()); - linkHistory.update(linkTarget); - try { - linkHistory.commit(); - } catch (IOException ex) { - log("Error writing link history.xml: " + ex.toString()); - } - } else { - if (outputFileProperty != null) - getProject().setProperty(outputFileProperty, - output.getAbsolutePath()); - } - } - } - - /** - * Gets the dataset. - * - * @return Returns a String - */ - public String getDataset() { - return dataset; - } - - protected TargetHistoryTable getLinkHistory(TargetHistoryTable objHistory) { - File outputFileDir = new File(_outfile.getParent()); - // - // if the output file is being produced in the link - // directory, then we can use the same history file - // - if (_objDir.equals(outputFileDir)) { - return objHistory; - } - return new TargetHistoryTable(this, outputFileDir); - } - - protected TargetInfo getLinkTarget(LinkerConfiguration linkerConfig, - Vector objectFiles, Vector sysObjectFiles, - Hashtable compileTargets, Hashtable assemblerTargets) { - // - // walk the compile phase targets and - // add those sources that have already been - // assigned to the linker or - // our output files the linker knows how to consume - // files the linker knows how to consume - // - Enumeration compileTargetsEnum = compileTargets.elements(); - while (compileTargetsEnum.hasMoreElements()) { - TargetInfo compileTarget = (TargetInfo) compileTargetsEnum - .nextElement(); - // - // output of compile tasks - // - int bid = linkerConfig.bid(compileTarget.getOutput().toString()); - if (bid > 0) { - objectFiles.addElement(compileTarget.getOutput()); - } - } - // - // walk the assembler phase targets and - // add those sources that have already been - // assigned to the linker or - // our output files the linker knows how to consume - // files the linker knows how to consume - // - Enumeration assembleTargetsEnum = assemblerTargets.elements(); - while (assembleTargetsEnum.hasMoreElements()) { - TargetInfo assemblerTarget = (TargetInfo) assembleTargetsEnum - .nextElement(); - // - // output of assemble tasks - // - int bid = linkerConfig.bid(assemblerTarget.getOutput().toString()); - if (bid > 0) { - objectFiles.addElement(assemblerTarget.getOutput()); - } - } - File[] objectFileArray = new File[objectFiles.size()]; - objectFiles.copyInto(objectFileArray); - File[] sysObjectFileArray = new File[sysObjectFiles.size()]; - sysObjectFiles.copyInto(sysObjectFileArray); - String baseName = _outfile.getName(); - String fullName = linkerConfig.getOutputFileName(baseName); - File outputFile = new File(_outfile.getParent(), fullName); - return new TargetInfo(linkerConfig, objectFileArray, - sysObjectFileArray, outputFile, linkerConfig - .getRebuild()); - } - - public File getObjdir() { - return _objDir; - } - - public File getOutfile() { - return _outfile; - } - - public TargetDef getTargetPlatform() { - return null; - } - - /** - * This method collects a Hashtable, keyed by output file name, of - * TargetInfo's for every source file that is specified in the filesets of - * the elements. The TargetInfo's contain the appropriate ACPI - * configurations for their possible acpi - * - */ - private Hashtable getAcpiTargets(LinkerConfiguration linkerConfig, - Vector objectFiles) { - Hashtable targets = new Hashtable(1000); - TargetDef targetPlatform = getTargetPlatform(); - Vector biddingProcessors = new Vector(_aslcompiler.size()); - for (int i = 0; i < _aslcompiler.size(); i++) { - AslcompilerDef currentAslDef = (AslcompilerDef) _aslcompiler - .elementAt(i); - if (currentAslDef.isActive()) { - ProcessorConfiguration config = currentAslDef - .createConfiguration(this, linkType, - aslcompilerDef, targetPlatform); - // - // if the aslcompiler has a fileset - // then allow it to add its files to - // the set of potential targets - // - ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config }; - if (currentAslDef.hasFileSets()) { - TargetMatcher matcher = new TargetMatcher(this, _objDir, - localConfigs, linkerConfig, objectFiles, - targets); - currentAslDef.visitFiles(matcher); - } - biddingProcessors.addElement(config); - } - } - // - // add fallback compiler at the end - // - ProcessorConfiguration config = aslcompilerDef.createConfiguration( - this, linkType, null, targetPlatform); - biddingProcessors.addElement(config); - ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors - .size()]; - biddingProcessors.copyInto(bidders); - TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders, - linkerConfig, objectFiles, targets); - aslcompilerDef.visitFiles(matcher); - return targets; - } - - /** - * This method collects a Hashtable, keyed by output file name, of - * TargetInfo's for every source file that is specified in the filesets of - * the elements. The TargetInfo's contain the appropriate - * assembler configurations for their possible assembly - * - */ - private Hashtable getAssemblerTargets(LinkerConfiguration linkerConfig, - Vector objectFiles) { - Hashtable targets = new Hashtable(1000); - TargetDef targetPlatform = getTargetPlatform(); - Vector biddingProcessors = new Vector(_assemblers.size()); - for (int i = 0; i < _assemblers.size(); i++) { - AssemblerDef currentAssemblerDef = (AssemblerDef) _assemblers - .elementAt(i); - if (currentAssemblerDef.isActive()) { - ProcessorConfiguration config = currentAssemblerDef - .createConfiguration(this, linkType, - assemblerDef, targetPlatform); - // - // if the assembler has a fileset - // then allow it to add its files to - // the set of potential targets - // - ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config }; - if (currentAssemblerDef.hasFileSets()) { - TargetMatcher matcher = new TargetMatcher(this, _objDir, - localConfigs, linkerConfig, objectFiles, - targets); - currentAssemblerDef.visitFiles(matcher); - } - biddingProcessors.addElement(config); - } - } - // - // add fallback assembler at the end - // - ProcessorConfiguration config = assemblerDef.createConfiguration(this, - linkType, null, targetPlatform); - biddingProcessors.addElement(config); - ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors - .size()]; - biddingProcessors.copyInto(bidders); - TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders, - linkerConfig, objectFiles, targets); - assemblerDef.visitFiles(matcher); - return targets; - } - - /** - * This method collects a Hashtable, keyed by output file name, of - * TargetInfo's for every source file that is specified in the filesets of - * the and nested elements. The TargetInfo's contain the - * appropriate compiler configurations for their possible compilation - * - */ - private Hashtable getTargets(LinkerConfiguration linkerConfig, - Vector objectFiles) { - Hashtable targets = new Hashtable(1000); - TargetDef targetPlatform = getTargetPlatform(); - // - // find active (specialized) compilers - // - Vector biddingProcessors = new Vector(_compilers.size()); - for (int i = 0; i < _compilers.size(); i++) { - CompilerDef currentCompilerDef = (CompilerDef) _compilers - .elementAt(i); - if (currentCompilerDef.isActive()) { - ProcessorConfiguration config = currentCompilerDef - .createConfiguration(this, linkType, - compilerDef, targetPlatform); - // - // see if this processor had a precompile child element - // - PrecompileDef precompileDef = currentCompilerDef - .getActivePrecompile(compilerDef); - ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config }; - // - // if it does then - // - if (precompileDef != null) { - File prototype = precompileDef.getPrototype(); - // - // will throw exceptions if prototype doesn't exist, etc - // - if (!prototype.exists()) { - throw new BuildException("prototype (" - + prototype.toString() - + ") does not exist."); - } - if (prototype.isDirectory()) { - throw new BuildException("prototype (" - + prototype.toString() - + ") is a directory."); - } - String[] exceptFiles = precompileDef.getExceptFiles(); - // - // create a precompile building and precompile using - // variants of the configuration - // or return null if compiler doesn't support - // precompilation - CompilerConfiguration[] configs = ((CompilerConfiguration) config) - .createPrecompileConfigurations(prototype, - exceptFiles); - if (configs != null && configs.length == 2) { - // - // visit the precompiled file to add it into the - // targets list (just like any other file if - // compiler doesn't support precompilation) - TargetMatcher matcher = new TargetMatcher( - this, - _objDir, - new ProcessorConfiguration[] { configs[0] }, - linkerConfig, objectFiles, targets); - matcher.visit(new File(prototype.getParent()), - prototype.getName()); - // - // only the configuration that uses the - // precompiled header gets added to the bidding list - biddingProcessors.addElement(configs[1]); - localConfigs = new ProcessorConfiguration[2]; - localConfigs[0] = configs[1]; - localConfigs[1] = config; - } - } - // - // if the compiler has a fileset - // then allow it to add its files - // to the set of potential targets - if (currentCompilerDef.hasFileSets()) { - TargetMatcher matcher = new TargetMatcher(this, _objDir, - localConfigs, linkerConfig, objectFiles, - targets); - currentCompilerDef.visitFiles(matcher); - } - biddingProcessors.addElement(config); - } - } - // - // add fallback compiler at the end - // - ProcessorConfiguration config = compilerDef.createConfiguration(this, - linkType, null, targetPlatform); - biddingProcessors.addElement(config); - ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors - .size()]; - biddingProcessors.copyInto(bidders); - // - // bid out the 's in the cctask - // - TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders, - linkerConfig, objectFiles, targets); - compilerDef.visitFiles(matcher); - return targets; - } - - /** - * Sets the default compiler adapter. Use the "name" attribute when the - * compiler is a supported compiler. - * - * @param classname - * fully qualified classname which implements CompilerAdapter - */ - public void setClassname(String classname) { - compilerDef.setClassname(classname); - linkerDef.setClassname(classname); - assemblerDef.setClassname(classname); - aslcompilerDef.setClassname(classname); - } - - /** - * Sets the dataset for OS/390 builds. - * - * @param dataset - * The dataset to set - */ - public void setDataset(String dataset) { - this.dataset = dataset; - } - - /** - * Enables or disables generation of debug info. - */ - public void setDebug(boolean debug) { - compilerDef.setDebug(debug); - linkerDef.setDebug(debug); - assemblerDef.setDebug(debug); - aslcompilerDef.setDebug(debug); - } - - /** - * Deprecated. - * - * Controls the depth of the dependency evaluation. Used to do a quick check - * of changes before a full build. - * - * Any negative value which will perform full dependency checking. Positive - * values will truncate dependency checking. A value of 0 will cause only - * those files that changed to be recompiled, a value of 1 which cause files - * that changed or that explicitly include a file that changed to be - * recompiled. - * - * Any non-negative value will cause a BuildException to be thrown before - * attempting a link or completing the task. - * - */ - public void setDependencyDepth(int depth) { - dependencyDepth = depth; - } - - /** - * Enables generation of exception handling code - */ - public void setExceptions(boolean exceptions) { - compilerDef.setExceptions(exceptions); - } - - /** - * Enables run-time type information. - */ - public void setRtti(boolean rtti) { - compilerDef.setRtti(rtti); - } - - // public LinkType getLinkType() { - // return linkType; - // } - /** - * Enables or disables incremental linking. - * - * @param incremental - * new state - */ - public void setIncremental(boolean incremental) { - linkerDef.setIncremental(incremental); - } - - /** - * Set use of libtool. - * - * If set to true, the "libtool " will be prepended to the command line for - * compatible processors - * - * @param libtool - * If true, use libtool. - */ - public void setLibtool(boolean libtool) { - compilerDef.setLibtool(libtool); - linkerDef.setLibtool(libtool); - assemblerDef.setLibtool(libtool); - aslcompilerDef.setLibtool(libtool); - } - - /** - * Sets the output file type. Supported values "executable", "shared", and - * "static". Deprecated, specify outtype instead. - * - * @deprecated - */ - public void setLink(OutputTypeEnum outputType) { - linkType.setOutputType(outputType); - } - - /** - * Enables or disables generation of multithreaded code - * - * @param multi - * If true, generated code may be multithreaded. - */ - public void setMultithreaded(boolean multi) { - compilerDef.setMultithreaded(multi); - } - - // - // keep near duplicate comment at CompilerDef.setName in sync - // - /** - * Sets type of the default compiler and linker. - * - * Supported compilers - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
gcc (default)GCC C++ compiler
g++GCC C++ compiler
c++GCC C++ compiler
g77GNU FORTRAN compiler
msvcMicrosoft Visual C++
bccBorland C++ Compiler
msrcMicrosoft Resource Compiler
brcBorland Resource Compiler
dfCompaq Visual Fortran Compiler
midlMicrosoft MIDL Compiler
iclIntel C++ compiler for Windows (IA-32)
eclIntel C++ compiler for Windows (IA-64)
iccIntel C++ compiler for Linux (IA-32)
eccIntel C++ compiler for Linux (IA-64)
CCSun ONE C++ compiler
aCCHP aC++ C++ Compiler
os390OS390 C Compiler
os400Icc Compiler
sunc89Sun C89 C Compiler
xlCVisualAge C Compiler
- * - */ - public void setName(CompilerEnum name) { - compilerDef.setName(name); - Processor compiler = compilerDef.getProcessor(); - Linker linker = compiler.getLinker(linkType); - linkerDef.setProcessor(linker); - } - - /** - * Do not propagate old environment when new environment variables are - * specified. - */ - public void setNewenvironment(boolean newenv) { - compilerDef.setNewenvironment(newenv); - linkerDef.setNewenvironment(newenv); - assemblerDef.setNewenvironment(newenv); - aslcompilerDef.setNewenvironment(newenv); - } - - /** - * Sets the destination directory for object files. - * - * Generally this should be a property expression that evaluates to distinct - * debug and release object file directories. - * - * @param dir - * object directory - */ - public void setObjdir(File dir) { - if (dir == null) { - throw new NullPointerException("dir"); - } - _objDir = dir; - } - - /** - * Sets the output file name. If not specified, the task will only compile - * files and not attempt to link. If an extension is not specified, the task - * may use a system appropriate extension and prefix, for example, - * outfile="example" may result in "libexample.so" being created. - * - * @param outfile - * output file name - */ - public void setOutfile(File outfile) { - // - // if file name was empty, skip link step - // - if (outfile == null || outfile.toString().length() > 0) { - _outfile = outfile; - } - } - - /** - * Specifies the name of a property to set with the physical filename that - * is produced by the linker - */ - public void setOutputFileProperty(String outputFileProperty) { - this.outputFileProperty = outputFileProperty; - } - - /** - * Sets the output file type. Supported values "executable", "shared", and - * "static". - */ - public void setOuttype(OutputTypeEnum outputType) { - linkType.setOutputType(outputType); - } - - /** - * Sets the project. - */ - public void setProject(Project project) { - super.setProject(project); - compilerDef.setProject(project); - linkerDef.setProject(project); - assemblerDef.setProject(project); - aslcompilerDef.setProject(project); - } - - /** - * If set to true, all files will be rebuilt. - * - * @paran rebuildAll If true, all files will be rebuilt. If false, up to - * date files will not be rebuilt. - */ - public void setRebuild(boolean rebuildAll) { - compilerDef.setRebuild(rebuildAll); - linkerDef.setRebuild(rebuildAll); - assemblerDef.setRebuild(rebuildAll); - aslcompilerDef.setRebuild(rebuildAll); - } - - /** - * If set to true, compilation errors will not stop the task until all files - * have been attempted. - * - * @param relentless - * If true, don't stop on the first compilation error - * - */ - public void setRelentless(boolean relentless) { - this.relentless = relentless; - } - - /** - * Sets the type of runtime library, possible values "dynamic", "static". - */ - public void setRuntime(RuntimeType rtlType) { - linkType.setStaticRuntime((rtlType.getIndex() == 1)); - } - - /** - * Sets the nature of the subsystem under which that the program will - * execute. - * - * Supported subsystems - * - * - * - * - * - * - * - * - * - * - * - * - *
guiGraphical User Interface
consoleCommand Line Console
otherOther
- * - * @param subsystem - * subsystem - * @throws NullPointerException - * if subsystem is null - */ - public void setSubsystem(SubsystemEnum subsystem) { - if (subsystem == null) { - throw new NullPointerException("subsystem"); - } - linkType.setSubsystem(subsystem); - } - - /** - * Enumerated attribute with the values "none", "severe", "default", - * "production", "diagnostic", and "failtask". - */ - public void setWarnings(CompilerDef.WarningLevel level) { - compilerDef.setWarnings(level); - } - - /** - * Indicates whether the build will continue even if there are compilation - * errors; defaults to true. - * - * @param fail - * if true halt the build on failure - */ - public void setFailonerror(boolean fail) { - failOnError = fail; - } - - /** - * Gets the failonerror flag. - * - * @return the failonerror flag - */ - public boolean getFailonerror() { - return failOnError; - } - - /** - * Adds descriptive version information to be included in the generated - * file. The first active version info block will be used. (Non-functional - * prototype) - */ - public void addConfiguredVersioninfo(VersionInfo info) { - linkerDef.addConfiguredVersioninfo(info); - } - - /** - * Adds a target definition or reference (Non-functional prototype). - * - * @param target - * target - * @throws NullPointerException - * if compiler is null - */ - public void addConfiguredTarget(TargetDef target) { - if (target == null) { - throw new NullPointerException("target"); - } - target.setProject(getProject()); - targetPlatforms.addElement(target); - } - - /** - * Adds a distributer definition or reference (Non-functional prototype). - * - * @param distributer - * distributer - * @throws NullPointerException - * if compiler is null - */ - public void addConfiguredDistributer(DistributerDef distributer) { - if (distributer == null) { - throw new NullPointerException("distributer"); - } - distributer.setProject(getProject()); - distributers.addElement(distributer); - } - - /** - * Sets optimization. - * @param optimization - */ - public void setOptimize(OptimizationEnum optimization) { - compilerDef.setOptimize(optimization); - } - - public boolean isAssembler() { - return assembler; - } - - public void setAssembler(boolean assembler) { - this.assembler = assembler; - } - - public boolean isAslcompiler() { - return aslcompiler; - } - - public void setAslcompiler(boolean aslcompiler) { - this.aslcompiler = aslcompiler; - } - - public boolean isUserdefine() { - return userdefine; - } - - public void setUserdefine(boolean userdefine) { - this.userdefine = userdefine; - } - - public String getArch() { - return arch; - } - - public void setArch(String arch) { - this.arch = arch; - } - - public String getOs() { - return os; - } - - public void setOs(String os) { - this.os = os; - } - - public String getVendor() { - return vendor; - } - - public void setVendor(String vendor) { - this.vendor = vendor; - } - - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java deleted file mode 100644 index 78192a5ba7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.IOException; - -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; -import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor; -public class CCTaskProgressMonitor implements ProgressMonitor { - private ProcessorConfiguration config; - private TargetHistoryTable history; - private long lastCommit = -1; - public CCTaskProgressMonitor(TargetHistoryTable history) { - this.history = history; - } - public void finish(ProcessorConfiguration config, boolean normal) { - long current = System.currentTimeMillis(); - if ((current - lastCommit) > 120000) { - try { - history.commit(); - lastCommit = System.currentTimeMillis(); - } catch (IOException ex) { - } - } - } - public void progress(String[] sources) { - history.update(config, sources); - long current = System.currentTimeMillis(); - if ((current - lastCommit) > 120000) { - try { - history.commit(); - lastCommit = current; - } catch (IOException ex) { - } - } - } - public void start(ProcessorConfiguration config) { - if (lastCommit < 0) { - lastCommit = System.currentTimeMillis(); - } - this.config = config; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java deleted file mode 100644 index ba73902361..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of cpu types. - * - * @author Curt Arnold - * - */ -public final class CPUEnum - extends EnumeratedAttribute { - - /** - * Constructor. - * - * Set by default to "pentium3" - * - * @see java.lang.Object#Object() - */ - public CPUEnum() { - setValue("pentium3"); - } - - /** - * Gets list of acceptable values. - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[] { - "i386", - "i486", - "i586", - "i686", - "pentium", - "pentium-mmx", - "pentiumpro", - "pentium2", - "pentium3", - "pentium4", - "k6", - "k6-2", - "k6-3", - "athlon", - "athlon-tbird", - "athlon-4", - "athlon-xp", - "athlon-mp", - "winchip-c6", - "winchip2", - "c3" }; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java deleted file mode 100644 index 074e8b42f8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java +++ /dev/null @@ -1,461 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.StringTokenizer; -import java.util.Vector; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.Execute; -import org.apache.tools.ant.taskdefs.LogStreamHandler; -import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.types.Environment; -/** - * Some utilities used by the CC and Link tasks. - * - * @author Adam Murdoch - */ -public class CUtil { - /** - * A class that splits a white-space, comma-separated list into a String - * array. Used for task attributes. - */ - public static final class StringArrayBuilder { - private String[] _value; - public StringArrayBuilder(String value) { - // Split the defines up - StringTokenizer tokens = new StringTokenizer(value, ", "); - Vector vallist = new Vector(); - while (tokens.hasMoreTokens()) { - String val = tokens.nextToken().trim(); - if (val.length() == 0) { - continue; - } - vallist.addElement(val); - } - _value = new String[vallist.size()]; - vallist.copyInto(_value); - } - public String[] getValue() { - return _value; - } - } - /** - * Adds the elements of the array to the given vector - */ - public static void addAll(Vector dest, Object[] src) { - if (src == null) { - return; - } - for (int i = 0; i < src.length; i++) { - dest.addElement(src[i]); - } - } - /** - * Checks a array of names for non existent or non directory entries and - * nulls them out. - * - * @return Count of non-null elements - */ - public static int checkDirectoryArray(String[] names) { - int count = 0; - for (int i = 0; i < names.length; i++) { - if (names[i] != null) { - File dir = new File(names[i]); - if (dir.exists() && dir.isDirectory()) { - count++; - } else { - names[i] = null; - } - } - } - return count; - } - /** - * Extracts the basename of a file, removing the extension, if present - */ - public static String getBasename(File file) { - String path = file.getPath(); - // Remove the extension - String basename = file.getName(); - int pos = basename.lastIndexOf('.'); - if (pos != -1) { - basename = basename.substring(0, pos); - } - return basename; - } - /** - * Gets the parent directory for the executable file name using the current - * directory and system executable path - * - * @param exeName - * Name of executable such as "cl.exe" - * @return parent directory or null if not located - */ - public static File getExecutableLocation(String exeName) { - // - // must add current working directory to the - // from of the path from the "path" environment variable - File currentDir = new File(System.getProperty("user.dir")); - if (new File(currentDir, exeName).exists()) { - return currentDir; - } - File[] envPath = CUtil.getPathFromEnvironment("PATH", - File.pathSeparator); - for (int i = 0; i < envPath.length; i++) { - if (new File(envPath[i], exeName).exists()) { - return envPath[i]; - } - } - return null; - } - /** - * Extracts the parent of a file - */ - public static String getParentPath(String path) { - int pos = path.lastIndexOf(File.separator); - if (pos <= 0) { - return null; - } - return path.substring(0, pos); - } - /** - * Returns an array of File for each existing directory in the specified - * environment variable - * - * @param envVariable - * environment variable name such as "LIB" or "INCLUDE" - * @param delim - * delimitor used to separate parts of the path, typically ";" - * or ":" - * @return array of File's for each part that is an existing directory - */ - public static File[] getPathFromEnvironment(String envVariable, String delim) { - // OS/4000 does not support the env command. - if (System.getProperty("os.name").equals("OS/400")) - return new File[]{}; - Vector osEnv = Execute.getProcEnvironment(); - String match = envVariable.concat("="); - for (Enumeration e = osEnv.elements(); e.hasMoreElements();) { - String entry = ((String) e.nextElement()).trim(); - if (entry.length() > match.length()) { - String entryFrag = entry.substring(0, match.length()); - if (entryFrag.equalsIgnoreCase(match)) { - String path = entry.substring(match.length()); - return parsePath(path, delim); - } - } - } - File[] noPath = new File[0]; - return noPath; - } - /** - * Returns a relative path for the targetFile relative to the base - * directory. - * - * @param canonicalBase - * base directory as returned by File.getCanonicalPath() - * @param targetFile - * target file - * @return relative path of target file. Returns targetFile if there were - * no commonalities between the base and the target - * - * @author Curt Arnold - */ - public static String getRelativePath(String base, File targetFile) { - try { - // - // remove trailing file separator - // - String canonicalBase = base; - if (base.charAt(base.length() - 1) == File.separatorChar) { - canonicalBase = base.substring(0, base.length() - 1); - } - // - // get canonical name of target and remove trailing separator - // - String canonicalTarget; - if (System.getProperty("os.name").equals("OS/400")) - canonicalTarget = targetFile.getPath(); - else - canonicalTarget = targetFile.getCanonicalPath(); - if (canonicalTarget.charAt(canonicalTarget.length() - 1) == File.separatorChar) { - canonicalTarget = canonicalTarget.substring(0, canonicalTarget - .length() - 1); - } - if (canonicalTarget.equals(canonicalBase)) { - return "."; - } - // - // see if the prefixes are the same - // - if (canonicalBase.substring(0, 2).equals("\\\\")) { - // - // UNC file name, if target file doesn't also start with same - // server name, don't go there - int endPrefix = canonicalBase.indexOf('\\', 2); - String prefix1 = canonicalBase.substring(0, endPrefix); - String prefix2 = canonicalTarget.substring(0, endPrefix); - if (!prefix1.equals(prefix2)) { - return canonicalTarget; - } - } else { - if (canonicalBase.substring(1, 3).equals(":\\")) { - int endPrefix = 2; - String prefix1 = canonicalBase.substring(0, endPrefix); - String prefix2 = canonicalTarget.substring(0, endPrefix); - if (!prefix1.equals(prefix2)) { - return canonicalTarget; - } - } else { - if (canonicalBase.charAt(0) == '/') { - if (canonicalTarget.charAt(0) != '/') { - return canonicalTarget; - } - } - } - } - char separator = File.separatorChar; - int lastSeparator = -1; - int minLength = canonicalBase.length(); - if (canonicalTarget.length() < minLength) { - minLength = canonicalTarget.length(); - } - int firstDifference = minLength + 1; - // - // walk to the shorter of the two paths - // finding the last separator they have in common - for (int i = 0; i < minLength; i++) { - if (canonicalTarget.charAt(i) == canonicalBase.charAt(i)) { - if (canonicalTarget.charAt(i) == separator) { - lastSeparator = i; - } - } else { - firstDifference = lastSeparator + 1; - break; - } - } - StringBuffer relativePath = new StringBuffer(50); - // - // walk from the first difference to the end of the base - // adding "../" for each separator encountered - // - if (canonicalBase.length() > firstDifference) { - relativePath.append(".."); - for (int i = firstDifference; i < canonicalBase.length(); i++) { - if (canonicalBase.charAt(i) == separator) { - relativePath.append(separator); - relativePath.append(".."); - } - } - } - if (canonicalTarget.length() > firstDifference) { - // - // append the rest of the target - // - // - if (relativePath.length() > 0) { - relativePath.append(separator); - } - relativePath.append(canonicalTarget.substring(firstDifference)); - } - return relativePath.toString(); - } catch (IOException ex) { - } - return targetFile.toString(); - } - public static boolean isActive(Project p, String ifCond, String unlessCond) - throws BuildException { - if (ifCond != null) { - String ifValue = p.getProperty(ifCond); - if (ifValue == null) { - return false; - } else { - if (ifValue.equals("false") || ifValue.equals("no")) { - throw new BuildException("if condition \"" + ifCond - + "\" has suspicious value \"" + ifValue); - } - } - } - if (unlessCond != null) { - String unlessValue = p.getProperty(unlessCond); - if (unlessValue != null) { - if (unlessValue.equals("false") || unlessValue.equals("no")) { - throw new BuildException("unless condition \"" + unlessCond - + "\" has suspicious value \"" + unlessValue); - } - return false; - } - } - return true; - } - /** - * Parse a string containing directories into an File[] - * - * @param path - * path string, for example ".;c:\something\include" - * @param delim - * delimiter, typically ; or : - */ - public static File[] parsePath(String path, String delim) { - Vector libpaths = new Vector(); - int delimPos = 0; - for (int startPos = 0; startPos < path.length(); startPos = delimPos - + delim.length()) { - delimPos = path.indexOf(delim, startPos); - if (delimPos < 0) { - delimPos = path.length(); - } - // - // don't add an entry for zero-length paths - // - if (delimPos > startPos) { - String dirName = path.substring(startPos, delimPos); - File dir = new File(dirName); - if (dir.exists() && dir.isDirectory()) { - libpaths.addElement(dir); - } - } - } - File[] paths = new File[libpaths.size()]; - libpaths.copyInto(paths); - return paths; - } - /** - * This method is exposed so test classes can overload and test the - * arguments without actually spawning the compiler - */ - public static int runCommand(CCTask task, File workingDir, - String[] cmdline, boolean newEnvironment, Environment env) - throws BuildException { - try { - task.log(Commandline.toString(cmdline), Project.MSG_VERBOSE); - Execute exe = new Execute(new LogStreamHandler(task, - Project.MSG_INFO, Project.MSG_ERR)); - if (System.getProperty("os.name").equals("OS/390")) - exe.setVMLauncher(false); - exe.setAntRun(task.getProject()); - exe.setCommandline(cmdline); - exe.setWorkingDirectory(workingDir); - if (env != null) { - String[] environment = env.getVariables(); - if (environment != null) { - for (int i = 0; i < environment.length; i++) { - task.log("Setting environment variable: " - + environment[i], Project.MSG_VERBOSE); - } - } - exe.setEnvironment(environment); - } - exe.setNewenvironment(newEnvironment); - return exe.execute(); - } catch (java.io.IOException exc) { - throw new BuildException("Could not launch " + cmdline[0] + ": " - + exc, task.getLocation()); - } - } - /** - * Compares the contents of 2 arrays for equaliy. - */ - public static boolean sameList(Object[] a, Object[] b) { - if (a == null || b == null || a.length != b.length) { - return false; - } - for (int i = 0; i < a.length; i++) { - if (!a[i].equals(b[i])) { - return false; - } - } - return true; - } - /** - * Compares the contents of an array and a Vector for equality. - */ - public static boolean sameList(Vector v, Object[] a) { - if (v == null || a == null || v.size() != a.length) { - return false; - } - for (int i = 0; i < a.length; i++) { - Object o = a[i]; - if (!o.equals(v.elementAt(i))) { - return false; - } - } - return true; - } - /** - * Compares the contents of an array and a Vector for set equality. Assumes - * input array and vector are sets (i.e. no duplicate entries) - */ - public static boolean sameSet(Object[] a, Vector b) { - if (a == null || b == null || a.length != b.size()) { - return false; - } - if (a.length == 0) { - return true; - } - // Convert the array into a set - Hashtable t = new Hashtable(); - for (int i = 0; i < a.length; i++) { - t.put(a[i], a[i]); - } - for (int i = 0; i < b.size(); i++) { - Object o = b.elementAt(i); - if (t.remove(o) == null) { - return false; - } - } - return (t.size() == 0); - } - /** - * Converts a vector to a string array. - */ - public static String[] toArray(Vector src) { - String[] retval = new String[src.size()]; - src.copyInto(retval); - return retval; - } - /** - * Replaces any embedded quotes in the string so that the value can be - * placed in an attribute in an XML file - * - * @param attrValue - * value to be expressed - * @return equivalent attribute literal - * - */ - public static String xmlAttribEncode(String attrValue) { - int quotePos = attrValue.indexOf('\"'); - if (quotePos < 0) { - return attrValue; - } - int startPos = 0; - StringBuffer buf = new StringBuffer(attrValue.length() + 20); - while (quotePos >= 0) { - buf.append(attrValue.substring(startPos, quotePos)); - buf.append("""); - startPos = quotePos + 1; - quotePos = attrValue.indexOf('\"', startPos); - } - buf.append(attrValue.substring(startPos)); - return buf.toString(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java deleted file mode 100644 index 0a92a51512..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java +++ /dev/null @@ -1,556 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler; -import net.sf.antcontrib.cpptasks.compiler.Compiler; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.gcc.GccCCompiler; -import net.sf.antcontrib.cpptasks.types.CompilerArgument; -import net.sf.antcontrib.cpptasks.types.ConditionalPath; -import net.sf.antcontrib.cpptasks.types.DefineSet; -import net.sf.antcontrib.cpptasks.types.IncludePath; -import net.sf.antcontrib.cpptasks.types.SystemIncludePath; -import net.sf.antcontrib.cpptasks.types.UndefineArgument; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.EnumeratedAttribute; -import org.apache.tools.ant.*; -/** - * A compiler definition. compiler elements may be placed either as children of - * a cc element or the project element. A compiler element with an id attribute - * may be referenced from compiler elements with refid or extends attributes. - * - * @author Adam Murdoch - */ -public final class CompilerDef extends ProcessorDef { - /** - * Enumerated attribute with the values "none", "severe", "default", - * "production", "diagnostic", and "failtask". - */ - public static class WarningLevel extends EnumeratedAttribute { - public String[] getValues() { - return new String[]{"none", "severe", "default", "production", - "diagnostic", "aserror"}; - } - } - /** The source file sets. */ - private final Vector defineSets = new Vector(); - private Boolean exceptions; - private Boolean rtti; - private final Vector includePaths = new Vector(); - private Boolean multithreaded; - private final Vector precompileDefs = new Vector(); - private final Vector sysIncludePaths = new Vector(); - private OptimizationEnum optimization; - private int warnings = -1; - private Boolean defaultflag = new Boolean(true); - public CompilerDef() { - } - /** - * Adds a compiler command-line arg. - */ - public void addConfiguredCompilerArg(CompilerArgument arg) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorArg(arg); - } - /** - * Adds a compiler command-line arg. - */ - public void addConfiguredCompilerParam(CompilerParam param) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorParam(param); - } - /** - * Adds a defineset. - */ - public void addConfiguredDefineset(DefineSet defs) { - if (defs == null) { - throw new NullPointerException("defs"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - defineSets.addElement(defs); - } - /** - * Creates an include path. - */ - public IncludePath createIncludePath() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - IncludePath path = new IncludePath(p); - includePaths.addElement(path); - return path; - } - /** - * Add a or if specify the file - * attribute - * - * @throws BuildException - * if the specify file not exist - */ - protected void loadFile(Vector activePath,File file) throws BuildException { - FileReader fileReader; - BufferedReader in; - String str; - if (! file.exists()){ - throw new BuildException("The file " + file + " is not existed"); - } - try { - fileReader = new FileReader(file); - in = new BufferedReader(fileReader); - while ( (str = in.readLine()) != null ){ - if(str.trim() == ""){ - continue ; - } - str = getProject().replaceProperties(str); - activePath.addElement(str.trim()); - } - } - catch(Exception e){ - throw new BuildException(e.getMessage()); - } - } - - /** - * Specifies precompilation prototype file and exclusions. - * - */ - public PrecompileDef createPrecompile() throws BuildException { - Project p = getProject(); - if (isReference()) { - throw noChildrenAllowed(); - } - PrecompileDef precomp = new PrecompileDef(); - precomp.setProject(p); - precompileDefs.addElement(precomp); - return precomp; - } - /** - * Creates a system include path. Locations and timestamps of files located - * using the system include paths are not used in dependency analysis. - * - * - * Standard include locations should not be specified. The compiler - * adapters should recognized the settings from the appropriate environment - * variables or configuration files. - */ - public SystemIncludePath createSysIncludePath() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - SystemIncludePath path = new SystemIncludePath(p); - sysIncludePaths.addElement(path); - return path; - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - public UndefineArgument[] getActiveDefines() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException( - "project must be set before this call"); - } - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getActiveDefines(); - } - Vector actives = new Vector(); - for (int i = 0; i < defineSets.size(); i++) { - DefineSet currentSet = (DefineSet) defineSets.elementAt(i); - UndefineArgument[] defines = currentSet.getDefines(); - for (int j = 0; j < defines.length; j++) { - if (defines[j].isActive(p)) { - actives.addElement(defines[j]); - } - } - } - UndefineArgument[] retval = new UndefineArgument[actives.size()]; - actives.copyInto(retval); - return retval; - } - /** - * Returns the compiler-specific include path. - */ - public String[] getActiveIncludePaths() { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getActiveIncludePaths(); - } - return getActivePaths(includePaths); - } - private String[] getActivePaths(Vector paths) { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project not set"); - } - Vector activePaths = new Vector(paths.size()); - for (int i = 0; i < paths.size(); i++) { - ConditionalPath path = (ConditionalPath) paths.elementAt(i); - if (path.isActive(p)) { - if (path.getFile() == null) { - String[] pathEntries = path.list(); - for (int j = 0; j < pathEntries.length; j++) { - activePaths.addElement(pathEntries[j]); - } - } - else { - loadFile(activePaths, path.getFile()); - } - } - } - String[] pathNames = new String[activePaths.size()]; - activePaths.copyInto(pathNames); - return pathNames; - } - public PrecompileDef getActivePrecompile(CompilerDef ccElement) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getActivePrecompile(ccElement); - } - PrecompileDef current = null; - Enumeration enumPrecompilerDef = precompileDefs.elements(); - while (enumPrecompilerDef.hasMoreElements()) { - current = (PrecompileDef) enumPrecompilerDef.nextElement(); - if (current.isActive()) { - return current; - } - } - CompilerDef extendedDef = (CompilerDef) getExtends(); - if (extendedDef != null) { - current = extendedDef.getActivePrecompile(null); - if (current != null) { - return current; - } - } - if (ccElement != null && getInherit()) { - return ccElement.getActivePrecompile(null); - } - return null; - } - public String[] getActiveSysIncludePaths() { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getActiveSysIncludePaths(); - } - return getActivePaths(sysIncludePaths); - } - public final boolean getExceptions(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getExceptions(defaultProviders, index); - } - if (exceptions != null) { - return exceptions.booleanValue(); - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getExceptions(defaultProviders, - index + 1); - } - } - return false; - } - public final Boolean getRtti(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getRtti(defaultProviders, index); - } - if (rtti != null) { - return rtti; - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getRtti(defaultProviders, - index + 1); - } - } - return null; - } - public final Boolean getDefaultflag(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getDefaultflag(defaultProviders, index); - } - return defaultflag; - } - public final OptimizationEnum getOptimization(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getOptimization(defaultProviders, index); - } - if (optimization != null) { - return optimization; - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getOptimization(defaultProviders, - index + 1); - } - } - return null; - } - - public boolean getMultithreaded(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getMultithreaded(defaultProviders, index); - } - if (multithreaded != null) { - return multithreaded.booleanValue(); - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getMultithreaded( - defaultProviders, index + 1); - } - } - return true; - } - public Processor getProcessor() { - Processor processor = super.getProcessor(); - if (processor == null) { - processor = GccCCompiler.getInstance(); - } - if (getLibtool() && processor instanceof CommandLineCompiler) { - CommandLineCompiler compiler = (CommandLineCompiler) processor; - processor = compiler.getLibtoolCompiler(); - } - return processor; - } - public int getWarnings(CompilerDef[] defaultProviders, int index) { - if (isReference()) { - return ((CompilerDef) getCheckedRef(CompilerDef.class, - "CompilerDef")).getWarnings(defaultProviders, index); - } - if (warnings == -1) { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getWarnings(defaultProviders, - index + 1); - } - } - return warnings; - } - /** - * Sets the default compiler adapter. Use the "name" attribute when the - * compiler is a supported compiler. - * - * @param classname - * fully qualified classname which implements CompilerAdapter - */ - public void setClassname(String classname) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - super.setClassname(classname); - Processor proc = getProcessor(); - if (!(proc instanceof Compiler)) { - throw new BuildException(classname + " does not implement Compiler"); - } - } - /** - * Enables or disables exception support. - * - * @param exceptions - * if true, exceptions are supported. - * - */ - public void setExceptions(boolean exceptions) { - if (isReference()) { - throw tooManyAttributes(); - } - this.exceptions = booleanValueOf(exceptions); - } - - /** - * Enables or disables run-time type information. - * - * @param rtti - * if true, run-time type information is supported. - * - */ - public void setRtti(boolean rtti) { - if (isReference()) { - throw tooManyAttributes(); - } - this.rtti = booleanValueOf(rtti); - } - - /** - * Enables or disables generation of multithreaded code. Unless specified, - * multithreaded code generation is enabled. - * - * @param multi - * If true, generated code may be multithreaded. - */ - public void setMultithreaded(boolean multithreaded) { - if (isReference()) { - throw tooManyAttributes(); - } - this.multithreaded = booleanValueOf(multithreaded); - } - /** - * Sets compiler type. - * - * - * Supported compilers - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
gcc (default)GCC C++ compiler
g++GCC C++ compiler
c++GCC C++ compiler
g77GNU Fortran compiler
msvcMicrosoft Visual C++
bccBorland C++ Compiler
msrcMicrosoft Resource Compiler
brcBorland Resource Compiler
dfCompaq Visual Fortran Compiler
midlMicrosoft MIDL Compiler
iclIntel C++ compiler for Windows (IA-32)
eclIntel C++ compiler for Windows (IA-64)
iccIntel C++ compiler for Linux (IA-32)
eccIntel C++ compiler for Linux (IA-64)
CCSun ONE C++ compiler
aCCHP aC++ C++ Compiler
os390OS390 C Compiler
os400Icc Compiler
sunc89Sun C89 C Compiler
xlCVisualAge C Compiler
- * - */ - public void setName(CompilerEnum name) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - Compiler compiler = name.getCompiler(); - setProcessor(compiler); - } - protected void setProcessor(Processor proc) throws BuildException { - try { - super.setProcessor((Compiler) proc); - } catch (ClassCastException ex) { - throw new BuildException(ex); - } - } - /** - * Enumerated attribute with the values "none", "severe", "default", - * "production", "diagnostic", and "failtask". - */ - public void setWarnings(CompilerDef.WarningLevel level) { - warnings = level.getIndex(); - } - /** - * Sets optimization level. - * - * @param value optimization level - */ - public void setOptimize(OptimizationEnum value) { - if (isReference()) { - throw tooManyAttributes(); - } - this.optimization = value; - } - /** - * Enables or disables default flags. - * - * @param defaultflag - * if true, default flags will add to command line. - * - */ - public void setDefaultflag(boolean defaultflag) { - if (isReference()) { - throw tooManyAttributes(); - } - this.defaultflag = booleanValueOf(defaultflag); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java deleted file mode 100644 index a017243522..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import net.sf.antcontrib.cpptasks.arm.ADSCCompiler; -import net.sf.antcontrib.cpptasks.borland.BorlandCCompiler; -import net.sf.antcontrib.cpptasks.borland.BorlandResourceCompiler; -import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranCompiler; -import net.sf.antcontrib.cpptasks.compiler.Compiler; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioMIDLCompiler; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioResourceCompiler; -import net.sf.antcontrib.cpptasks.gcc.GccCCompiler; -import net.sf.antcontrib.cpptasks.hp.aCCCompiler; -import net.sf.antcontrib.cpptasks.ibm.VisualAgeCCompiler; -import net.sf.antcontrib.cpptasks.intel.IntelLinux32CCompiler; -import net.sf.antcontrib.cpptasks.intel.IntelLinux64CCompiler; -import net.sf.antcontrib.cpptasks.intel.IntelWin32CCompiler; -import net.sf.antcontrib.cpptasks.intel.IntelWin64CCompiler; -import net.sf.antcontrib.cpptasks.os390.OS390CCompiler; -import net.sf.antcontrib.cpptasks.os400.IccCompiler; -import net.sf.antcontrib.cpptasks.sun.C89CCompiler; -import net.sf.antcontrib.cpptasks.sun.ForteCCCompiler; -import net.sf.antcontrib.cpptasks.ti.ClxxCCompiler; - -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumeration of supported compilers - * - * Supported compilers - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
gcc (default)GCC C++ compiler
g++GCC C++ compiler
c++GCC C++ compiler
g77GNU FORTRAN compiler
msvcMicrosoft Visual C++
bccBorland C++ Compiler
msrcMicrosoft Resource Compiler
brcBorland Resource Compiler
dfCompaq Visual Fortran Compiler
midlMicrosoft MIDL Compiler
iclIntel C++ compiler for Windows (IA-32)
eclIntel C++ compiler for Windows (IA-64)
iccIntel C++ compiler for Linux (IA-32)
eccIntel C++ compiler for Linux (IA-64)
CCSun ONE C++ compiler
aCCHP aC++ C++ Compiler
os390OS390 C Compiler
os400Icc Compiler
sunc89Sun C89 C Compiler
xlCVisualAge C Compiler
cl6xTI TMS320C6000 Optimizing Compiler
cl55TI TMS320C55x Optimizing C/C++ Compiler
armcppARM 32-bit C++ compiler
armccARM 32-bit C compiler
tcppARM 16-bit C++ compiler
tccARM 16-bit C compiler
- * - * @author Curt Arnold - * - */ -public class CompilerEnum extends EnumeratedAttribute { - private final static ProcessorEnumValue[] compilers = new ProcessorEnumValue[]{ - new ProcessorEnumValue("gcc", GccCCompiler.getInstance()), - new ProcessorEnumValue("g++", GccCCompiler.getGppInstance()), - new ProcessorEnumValue("c++", GccCCompiler.getCppInstance()), - new ProcessorEnumValue("g77", GccCCompiler.getG77Instance()), - new ProcessorEnumValue("msvc", DevStudioCCompiler.getInstance()), - new ProcessorEnumValue("bcc", BorlandCCompiler.getInstance()), - new ProcessorEnumValue("msrc", DevStudioResourceCompiler - .getInstance()), - new ProcessorEnumValue("brc", BorlandResourceCompiler.getInstance()), - new ProcessorEnumValue("df", CompaqVisualFortranCompiler - .getInstance()), - new ProcessorEnumValue("midl", DevStudioMIDLCompiler.getInstance()), - new ProcessorEnumValue("icl", IntelWin32CCompiler.getInstance()), - new ProcessorEnumValue("ecl", IntelWin64CCompiler.getInstance()), - new ProcessorEnumValue("icc", IntelLinux32CCompiler.getInstance()), - new ProcessorEnumValue("ecc", IntelLinux64CCompiler.getInstance()), - new ProcessorEnumValue("CC", ForteCCCompiler.getInstance()), - new ProcessorEnumValue("aCC", aCCCompiler.getInstance()), - new ProcessorEnumValue("os390", OS390CCompiler.getInstance()), - new ProcessorEnumValue("os400", IccCompiler.getInstance()), - new ProcessorEnumValue("sunc89", C89CCompiler.getInstance()), - new ProcessorEnumValue("xlC", VisualAgeCCompiler.getInstance()), - new ProcessorEnumValue("cl6x", ClxxCCompiler.getCl6xInstance()), - new ProcessorEnumValue("cl55", ClxxCCompiler.getCl55Instance()), - new ProcessorEnumValue("armcc", ADSCCompiler.getArmCC()), - new ProcessorEnumValue("armcpp", ADSCCompiler.getArmCpp()), - new ProcessorEnumValue("tcc", ADSCCompiler.getThumbCC()), - new ProcessorEnumValue("tcpp", ADSCCompiler.getThumbCpp()), - // userdefined - //new ProcessorEnumValue("userdefine", UserdefineCompiler.getInstance()), - // GCC Cross Compilers - new ProcessorEnumValue( - "sparc-sun-solaris2-gcc", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler - .getInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-g++", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler - .getGppInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-c++", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler - .getCppInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-g77", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler - .getG77Instance()), - // GCC Cross Compilers - new ProcessorEnumValue("gcc-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler - .getInstance()), - new ProcessorEnumValue("g++-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler - .getGppInstance()), - new ProcessorEnumValue("c++-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler - .getCppInstance()), - new ProcessorEnumValue("g77-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler - .getG77Instance()),}; - public Compiler getCompiler() { - return (Compiler) compilers[getIndex()].getProcessor(); - } - public String[] getValues() { - return ProcessorEnumValue.getValues(compilers); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java deleted file mode 100644 index 82eb6ee425..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -/******************************************************************************* - * Place class description here. - * - * @author inger - * @author - * - * @since - ******************************************************************************/ -public class CompilerParam extends ProcessorParam { - public CompilerParam() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java deleted file mode 100644 index 429d2b0107..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.util.Vector; -/** - * @author Curt Arnold - */ -public final class DependencyInfo { - /** - * Last modified time of this file or anything that it depends on. - * - * Not persisted since almost any change could invalidate it. Initialized - * to long.MIN_VALUE on construction. - */ - private long compositeLastModified; - private/* final */String includePathIdentifier; - private/* final */String[] includes; - private/* final */String source; - private/* final */long sourceLastModified; - private/* final */String[] sysIncludes; - public DependencyInfo(String includePathIdentifier, String source, - long sourceLastModified, Vector includes, Vector sysIncludes) { - if (source == null) { - throw new NullPointerException("source"); - } - if (includePathIdentifier == null) { - throw new NullPointerException("includePathIdentifier"); - } - this.source = source; - this.sourceLastModified = sourceLastModified; - this.includePathIdentifier = includePathIdentifier; - this.includes = new String[includes.size()]; - if (includes.size() == 0) { - compositeLastModified = sourceLastModified; - } else { - includes.copyInto(this.includes); - compositeLastModified = Long.MIN_VALUE; - } - this.sysIncludes = new String[sysIncludes.size()]; - sysIncludes.copyInto(this.sysIncludes); - } - /** - * Returns the latest modification date of the source or anything that it - * depends on. - * - * @returns the composite lastModified time, returns Long.MIN_VALUE if not - * set - */ - public long getCompositeLastModified() { - return compositeLastModified; - } - public String getIncludePathIdentifier() { - return includePathIdentifier; - } - public String[] getIncludes() { - String[] includesClone = (String[]) includes.clone(); - return includesClone; - } - public String getSource() { - return source; - } - public long getSourceLastModified() { - return sourceLastModified; - } - public String[] getSysIncludes() { - String[] sysIncludesClone = (String[]) sysIncludes.clone(); - return sysIncludesClone; - } - public void setCompositeLastModified(long lastMod) { - compositeLastModified = lastMod; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java deleted file mode 100644 index 3cbee7a625..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java +++ /dev/null @@ -1,609 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; -/** - * @author Curt Arnold - */ -public final class DependencyTable { - /** - * This class handles populates the TargetHistory hashtable in response to - * SAX parse events - */ - private class DependencyTableHandler extends DefaultHandler { - private File baseDir; - private final DependencyTable dependencyTable; - private String includePath; - private Vector includes; - private String source; - private long sourceLastModified; - private Vector sysIncludes; - /** - * Constructor - * - * @param history - * hashtable of TargetHistory keyed by output name - * @param outputFiles - * existing files in output directory - */ - private DependencyTableHandler(DependencyTable dependencyTable, - File baseDir) { - this.dependencyTable = dependencyTable; - this.baseDir = baseDir; - includes = new Vector(); - sysIncludes = new Vector(); - source = null; - } - public void endElement(String namespaceURI, String localName, - String qName) throws SAXException { - // - // if then - // create Dependency object and add to hashtable - // if corresponding source file exists and - // has the same timestamp - // - if (qName.equals("source")) { - if (source != null && includePath != null) { - File existingFile = new File(baseDir, source); - // - // if the file exists and the time stamp is right - // preserve the dependency info - if (existingFile.exists()) { - // - // would have expected exact matches - // but was seeing some unexpected difference by - // a few tens of milliseconds, as long - // as the times are within a second - long existingLastModified = existingFile.lastModified(); - long diff = existingLastModified - sourceLastModified; - if (diff >= -500 && diff <= 500) { - DependencyInfo dependInfo = new DependencyInfo( - includePath, source, sourceLastModified, - includes, sysIncludes); - dependencyTable.putDependencyInfo(source, - dependInfo); - } - } - source = null; - includes.setSize(0); - } - } else { - // - // this causes any elements outside the - // scope of an to be discarded - // - if (qName.equals("includePath")) { - includePath = null; - } - } - } - /** - * startElement handler - */ - public void startElement(String namespaceURI, String localName, - String qName, Attributes atts) throws SAXException { - // - // if includes, then add relative file name to vector - // - if (qName.equals("include")) { - includes.addElement(atts.getValue("file")); - } else { - if (qName.equals("sysinclude")) { - sysIncludes.addElement(atts.getValue("file")); - } else { - // - // if source then - // capture source file name, - // modification time and reset includes vector - // - if (qName.equals("source")) { - source = atts.getValue("file"); - sourceLastModified = Long.parseLong(atts - .getValue("lastModified"), 16); - includes.setSize(0); - sysIncludes.setSize(0); - } else { - if (qName.equals("includePath")) { - includePath = atts.getValue("signature"); - } - } - } - } - } - } - public abstract class DependencyVisitor { - /** - * Previews all the children of this source file. - * - * May be called multiple times as DependencyInfo's for children are - * filled in. - * - * @return true to continue towards recursion into included files - */ - public abstract boolean preview(DependencyInfo parent, - DependencyInfo[] children); - /** - * Called if the dependency depth exhausted the stack. - */ - public abstract void stackExhausted(); - /** - * Visits the dependency info. - * - * @returns true to continue towards recursion into included files - */ - public abstract boolean visit(DependencyInfo dependInfo); - } - public class TimestampChecker extends DependencyVisitor { - private boolean noNeedToRebuild; - private long outputLastModified; - private boolean rebuildOnStackExhaustion; - public TimestampChecker(final long outputLastModified, - boolean rebuildOnStackExhaustion) { - this.outputLastModified = outputLastModified; - noNeedToRebuild = true; - this.rebuildOnStackExhaustion = rebuildOnStackExhaustion; - } - public boolean getMustRebuild() { - return !noNeedToRebuild; - } - public boolean preview(DependencyInfo parent, DependencyInfo[] children) { - int withCompositeTimes = 0; - long parentCompositeLastModified = parent.getSourceLastModified(); - for (int i = 0; i < children.length; i++) { - if (children[i] != null) { - // - // expedient way to determine if a child forces us to - // rebuild - // - visit(children[i]); - long childCompositeLastModified = children[i] - .getCompositeLastModified(); - if (childCompositeLastModified != Long.MIN_VALUE) { - withCompositeTimes++; - if (childCompositeLastModified > parentCompositeLastModified) { - parentCompositeLastModified = childCompositeLastModified; - } - } - } - } - if (withCompositeTimes == children.length) { - parent.setCompositeLastModified(parentCompositeLastModified); - } - // - // may have been changed by an earlier call to visit() - // - return noNeedToRebuild; - } - public void stackExhausted() { - if (rebuildOnStackExhaustion) { - noNeedToRebuild = false; - } - } - public boolean visit(DependencyInfo dependInfo) { - if (noNeedToRebuild) { - if (dependInfo.getSourceLastModified() > outputLastModified - || dependInfo.getCompositeLastModified() > outputLastModified) { - noNeedToRebuild = false; - } - } - // - // only need to process the children if - // it has not yet been determined whether - // we need to rebuild and the composite modified time - // has not been determined for this file - return noNeedToRebuild - && dependInfo.getCompositeLastModified() == Long.MIN_VALUE; - } - } - private/* final */File baseDir; - private String baseDirPath; - /** - * a hashtable of DependencyInfo[] keyed by output file name - */ - private final Hashtable dependencies = new Hashtable(); - /** The file the cache was loaded from. */ - private/* final */File dependenciesFile; - /** Flag indicating whether the cache should be written back to file. */ - private boolean dirty; - /** - * Creates a target history table from dependencies.xml in the prject - * directory, if it exists. Otherwise, initializes the dependencies empty. - * - * @param task - * task used for logging history load errors - * @param baseDir - * output directory for task - */ - public DependencyTable(File baseDir) { - if (baseDir == null) { - throw new NullPointerException("baseDir"); - } - this.baseDir = baseDir; - try { - baseDirPath = baseDir.getCanonicalPath(); - } catch (IOException ex) { - baseDirPath = baseDir.toString(); - } - dirty = false; - // - // load any existing dependencies from file - dependenciesFile = new File(baseDir, "dependencies.xml"); - } - public void commit(CCTask task) { - // - // if not dirty, no need to update file - // - if (dirty) { - // - // walk through dependencies to get vector of include paths - // identifiers - // - Vector includePaths = getIncludePaths(); - // - // - // write dependency file - // - try { - FileOutputStream outStream = new FileOutputStream( - dependenciesFile); - OutputStreamWriter streamWriter; - // - // Early VM's may not have UTF-8 support - // fallback to default code page which - // "should" be okay unless there are - // non ASCII file names - String encodingName = "UTF-8"; - try { - streamWriter = new OutputStreamWriter(outStream, "UTF-8"); - } catch (UnsupportedEncodingException ex) { - streamWriter = new OutputStreamWriter(outStream); - encodingName = streamWriter.getEncoding(); - } - BufferedWriter writer = new BufferedWriter(streamWriter); - writer.write("\n"); - writer.write("\n"); - StringBuffer buf = new StringBuffer(); - Enumeration includePathEnum = includePaths.elements(); - while (includePathEnum.hasMoreElements()) { - writeIncludePathDependencies((String) includePathEnum - .nextElement(), writer, buf); - } - writer.write("\n"); - writer.close(); - dirty = false; - } catch (IOException ex) { - task.log("Error writing " + dependenciesFile.toString() + ":" - + ex.toString()); - } - } - } - /** - * Returns an enumerator of DependencyInfo's - */ - public Enumeration elements() { - return dependencies.elements(); - } - /** - * This method returns a DependencyInfo for the specific source file and - * include path identifier - * - */ - public DependencyInfo getDependencyInfo(String sourceRelativeName, - String includePathIdentifier) { - DependencyInfo dependInfo = null; - DependencyInfo[] dependInfos = (DependencyInfo[]) dependencies - .get(sourceRelativeName); - if (dependInfos != null) { - for (int i = 0; i < dependInfos.length; i++) { - dependInfo = dependInfos[i]; - if (dependInfo.getIncludePathIdentifier().equals( - includePathIdentifier)) { - return dependInfo; - } - } - } - return null; - } - private Vector getIncludePaths() { - Vector includePaths = new Vector(); - DependencyInfo[] dependInfos; - Enumeration dependenciesEnum = dependencies.elements(); - while (dependenciesEnum.hasMoreElements()) { - dependInfos = (DependencyInfo[]) dependenciesEnum.nextElement(); - for (int i = 0; i < dependInfos.length; i++) { - DependencyInfo dependInfo = dependInfos[i]; - boolean matchesExisting = false; - final String dependIncludePath = dependInfo - .getIncludePathIdentifier(); - Enumeration includePathEnum = includePaths.elements(); - while (includePathEnum.hasMoreElements()) { - if (dependIncludePath.equals(includePathEnum.nextElement())) { - matchesExisting = true; - break; - } - } - if (!matchesExisting) { - includePaths.addElement(dependIncludePath); - } - } - } - return includePaths; - } - public void load() throws IOException, ParserConfigurationException, - SAXException { - dependencies.clear(); - if (dependenciesFile.exists()) { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setValidating(false); - SAXParser parser = factory.newSAXParser(); - parser.parse(dependenciesFile, new DependencyTableHandler(this, - baseDir)); - dirty = false; - } - } - /** - * Determines if the specified target needs to be rebuilt. - * - * This task may result in substantial IO as files are parsed to determine - * their dependencies - */ - public boolean needsRebuild(CCTask task, TargetInfo target, - int dependencyDepth) { - // look at any files where the compositeLastModified - // is not known, but the includes are known - // - boolean mustRebuild = false; - CompilerConfiguration compiler = (CompilerConfiguration) target - .getConfiguration(); - String includePathIdentifier = compiler.getIncludePathIdentifier(); - File[] sources = target.getSources(); - DependencyInfo[] dependInfos = new DependencyInfo[sources.length]; - long outputLastModified = target.getOutput().lastModified(); - // - // try to solve problem using existing dependency info - // (not parsing any new files) - // - DependencyInfo[] stack = new DependencyInfo[50]; - boolean rebuildOnStackExhaustion = true; - if (dependencyDepth >= 0) { - if (dependencyDepth < 50) { - stack = new DependencyInfo[dependencyDepth]; - } - rebuildOnStackExhaustion = false; - } - TimestampChecker checker = new TimestampChecker(outputLastModified, - rebuildOnStackExhaustion); - for (int i = 0; i < sources.length && !mustRebuild; i++) { - File source = sources[i]; - String relative = CUtil.getRelativePath(baseDirPath, source); - DependencyInfo dependInfo = getDependencyInfo(relative, - includePathIdentifier); - if (dependInfo == null) { - task.log("Parsing " + relative, Project.MSG_VERBOSE); - dependInfo = parseIncludes(task, compiler, source); - } - walkDependencies(task, dependInfo, compiler, stack, checker); - mustRebuild = checker.getMustRebuild(); - } - return mustRebuild; - } - public DependencyInfo parseIncludes(CCTask task, - CompilerConfiguration compiler, File source) { - DependencyInfo dependInfo = compiler.parseIncludes(task, baseDir, - source); - String relativeSource = CUtil.getRelativePath(baseDirPath, source); - putDependencyInfo(relativeSource, dependInfo); - return dependInfo; - } - private void putDependencyInfo(String key, DependencyInfo dependInfo) { - // - // optimistic, add new value - // - DependencyInfo[] old = (DependencyInfo[]) dependencies.put(key, - new DependencyInfo[]{dependInfo}); - dirty = true; - // - // something was already there - // - if (old != null) { - // - // see if the include path matches a previous entry - // if so replace it - String includePathIdentifier = dependInfo - .getIncludePathIdentifier(); - for (int i = 0; i < old.length; i++) { - DependencyInfo oldDepend = old[i]; - if (oldDepend.getIncludePathIdentifier().equals( - includePathIdentifier)) { - old[i] = dependInfo; - dependencies.put(key, old); - return; - } - } - // - // no match prepend the new entry to the array - // of dependencies for the file - DependencyInfo[] combined = new DependencyInfo[old.length + 1]; - combined[0] = dependInfo; - for (int i = 0; i < old.length; i++) { - combined[i + 1] = old[i]; - } - dependencies.put(key, combined); - } - return; - } - public void walkDependencies(CCTask task, DependencyInfo dependInfo, - CompilerConfiguration compiler, DependencyInfo[] stack, - DependencyVisitor visitor) throws BuildException { - // - // visit this node - // if visit returns true then - // visit the referenced include and sysInclude dependencies - // - if (visitor.visit(dependInfo)) { - // - // find first null entry on stack - // - int stackPosition = -1; - for (int i = 0; i < stack.length; i++) { - if (stack[i] == null) { - stackPosition = i; - stack[i] = dependInfo; - break; - } else { - // - // if we have appeared early in the calling history - // then we didn't exceed the criteria - if (stack[i] == dependInfo) { - return; - } - } - } - if (stackPosition == -1) { - visitor.stackExhausted(); - return; - } - // - // locate dependency infos - // - String[] includes = dependInfo.getIncludes(); - String includePathIdentifier = compiler.getIncludePathIdentifier(); - DependencyInfo[] includeInfos = new DependencyInfo[includes.length]; - for (int i = 0; i < includes.length; i++) { - DependencyInfo includeInfo = getDependencyInfo(includes[i], - includePathIdentifier); - includeInfos[i] = includeInfo; - } - // - // preview with only the already available dependency infos - // - if (visitor.preview(dependInfo, includeInfos)) { - // - // now need to fill in the missing DependencyInfos - // - int missingCount = 0; - for (int i = 0; i < includes.length; i++) { - if (includeInfos[i] == null) { - missingCount++; - task.log("Parsing " + includes[i], Project.MSG_VERBOSE); - // If the include is part of a UNC don't go building a - // relative file name. - File src = includes[i].startsWith("\\\\") ? new File( - includes[i]) : new File(baseDir, includes[i]); - DependencyInfo includeInfo = parseIncludes(task, - compiler, src); - includeInfos[i] = includeInfo; - } - } - // - // if it passes a review the second time - // then recurse into all the children - if (missingCount == 0 - || visitor.preview(dependInfo, includeInfos)) { - // - // recurse into - // - for (int i = 0; i < includeInfos.length; i++) { - DependencyInfo includeInfo = includeInfos[i]; - walkDependencies(task, includeInfo, compiler, stack, - visitor); - } - } - } - stack[stackPosition] = null; - } - } - private void writeDependencyInfo(BufferedWriter writer, StringBuffer buf, - DependencyInfo dependInfo) throws IOException { - String[] includes = dependInfo.getIncludes(); - String[] sysIncludes = dependInfo.getSysIncludes(); - // - // if the includes have not been evaluted then - // it is not worth our time saving it - // and trying to distiguish between files with - // no dependencies and those with undetermined dependencies - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - for (int i = 0; i < includes.length; i++) { - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - } - for (int i = 0; i < sysIncludes.length; i++) { - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - } - writer.write(" \n"); - return; - } - private void writeIncludePathDependencies(String includePathIdentifier, - BufferedWriter writer, StringBuffer buf) throws IOException { - // - // include path element - // - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - Enumeration dependenciesEnum = dependencies.elements(); - while (dependenciesEnum.hasMoreElements()) { - DependencyInfo[] dependInfos = (DependencyInfo[]) dependenciesEnum - .nextElement(); - for (int i = 0; i < dependInfos.length; i++) { - DependencyInfo dependInfo = dependInfos[i]; - // - // if this is for the same include path - // then output the info - if (dependInfo.getIncludePathIdentifier().equals( - includePathIdentifier)) { - writeDependencyInfo(writer, buf, dependInfo); - } - } - } - writer.write(" \n"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java deleted file mode 100644 index ee4f656ccc..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - - -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Reference; -import java.util.Vector; - -/** - * Distributed build information (Non-functional prototype). - * - */ -public final class DistributerDef - extends DataType { - /** - * if property. - */ - private String ifCond; - - /** - * unless property. - */ - private String unlessCond; - - /** - * hosts. - * - */ - private String hosts; - - /** - * Protocol. - * - */ - private DistributerProtocolEnum protocol; - - /** - * Not sure what this is. - */ - private int tcpCork; - - /** - * user name. - */ - private String user; - - /** - * local to remote file name maps. - */ - private final Vector maps = new Vector(); - - /** - * Constructor. - * - */ - public DistributerDef() { - } - - /** - * Required by documentation generator. - */ - public void execute() { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - /** - * Returns true if the if and unless conditions (if any) are - * satisfied. - * @return true if definition is active. - */ - public boolean isActive() { - return CUtil.isActive(getProject(), ifCond, unlessCond); - } - - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(final String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - - /** - * Sets the property name for the 'if' condition. - * - * The define will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public void setIf(final String propName) { - ifCond = propName; - } - - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. If - * specified, no other attributes should be specified. - * @param r reference name - */ - public void setRefid(final Reference r) { - super.setRefid(r); - } - - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(final String propName) { - unlessCond = propName; - } - - /** - * Gets hosts. - * @return hosts, may be null. - * - */ - public String getHosts() { - if (isReference()) { - DistributerDef refDistributer = (DistributerDef) - getCheckedRef(DistributerDef.class, - "DistributerDef"); - return refDistributer.getHosts(); - } - return hosts; - } - - /** - * Gets tcp cork. - * @return TCP_CORK value. - * - */ - public int getTcpcork() { - if (isReference()) { - DistributerDef refDistributer = (DistributerDef) - getCheckedRef(DistributerDef.class, - "DistributerDef"); - return refDistributer.getTcpcork(); - } - return tcpCork; - } - - /** - * Gets protocol. - * @return protocol, may be null. - * - */ - public DistributerProtocolEnum getProtocol() { - if (isReference()) { - DistributerDef refDistributer = (DistributerDef) - getCheckedRef(DistributerDef.class, - "DistributerDef"); - return refDistributer.getProtocol(); - } - return protocol; - } - - /** - * Sets hosts. - * @param value new value - */ - public void setHosts(final String value) { - if (isReference()) { - throw tooManyAttributes(); - } - hosts = value; - } - - /** - * Sets TCP_CORK value. - * @param value new value - */ - public void setTcpcork(final int value) { - if (isReference()) { - throw tooManyAttributes(); - } - tcpCork = value; - } - - /** - * Sets protocol. - * @param value new value - */ - public void setProtocol(final DistributerProtocolEnum value) { - if (isReference()) { - throw tooManyAttributes(); - } - protocol = value; - } - - /** - * Local to remote filename maps. - * @return new map - */ - public DistributerMap createMap() { - DistributerMap map = new DistributerMap(); - map.setProject(getProject()); - maps.addElement(map); - return map; - } - - /** - * Sets remote user name. - * @param value user name - */ - public void setUser(final String value) { - user = value; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java deleted file mode 100644 index aeacf551fa..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import java.io.File; -import java.io.IOException; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.DataType; - -/** - * Local to remote filename mapping (Experimental). - * - */ -public final class DistributerMap - extends DataType { - /** - * if property. - */ - private String ifCond; - - /** - * unless property. - */ - private String unlessCond; - - /** - * local directory name. - * - */ - private File localName; - - /** - * Canonical local file name. - */ - private String canonicalPath; - - /** - * remote name. - * - */ - private String remoteName; - - /** - * Separator (/ or \) character on remote system. - */ - private char remoteSeparator = File.separatorChar; - - /** - * hosts that for which this map is valid. - * - */ - private String hosts; - - /** - * Constructor. - * - */ - public DistributerMap() { - } - - /** - * Required by documentation generator. - */ - public void execute() { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - /** - * Returns true if the if and unless conditions (if any) are - * satisfied. - * - * @return true if this object is active. - */ - public boolean isActive() { - return CUtil.isActive(getProject(), ifCond, unlessCond); - } - - /** - * Sets the property name for the 'if' condition. - * - * This object will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public void setIf(final String propName) { - ifCond = propName; - } - - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(final String propName) { - unlessCond = propName; - } - - /** - * Gets local directory. - * @return local directory, may be null. - * - */ - public File getLocal() { - return localName; - } - - /** - * Gets remote name for directory. - * @return remote name, may be null. - * - */ - public String getRemote() { - return remoteName; - } - - /** - * Converts the local file name to the remote name for the same file. - * - * @param host host - * @param localFile local file - * @return remote name for local file, null if unknown. - */ - public String toRemote(final String host, final File localFile) { - if (remoteName != null - && (hosts == null || hosts.indexOf(host) >= 0)) { - try { - String canonical = localFile.getCanonicalPath(); - if (canonical.startsWith(canonicalPath)) { - if (isActive()) { - return remoteName - + canonical.substring(canonicalPath.length()).replace(File. - separatorChar, remoteSeparator); - } - } - } catch (IOException ex) { - return null; - } - } - return null; - } - - /** - * Sets local directory for base of mapping. - * - * @param value value - */ - public void setLocal(final File value) { - if (value == null) { - throw new NullPointerException("value"); - } - if (value.exists() && !value.isDirectory()) { - throw new BuildException("local should be a directory"); - } - localName = value; - try { - canonicalPath = localName.getCanonicalPath(); - } catch (IOException ex) { - throw new BuildException(ex); - } - } - - /** - * Sets remote name for directory. - * @param value remote name for directory - */ - public void setRemote(final String value) { - remoteName = value; - } - - /** - * Sets the separator character (/ or \) for the remote system. - * @param value separator character - */ - public void setRemoteSeparator(final String value) { - if (value != null && value.length() != 1) { - throw new BuildException("remote separator must be a single character"); - } - remoteSeparator = value.charAt(0); - } - - /** - * Sets hosts for which this mapping is valid. - * - * @param value hosts - */ - public void setHosts(final String value) { - hosts = value; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java deleted file mode 100644 index 5606d47a08..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Distributer prococol names (experimental). - * - * @author Curt Arnold - * - */ -public final class DistributerProtocolEnum - extends EnumeratedAttribute { - /** - * Constructor. - * - * Set by default to "distcc" - * - * @see java.lang.Object#Object() - */ - public DistributerProtocolEnum() { - setValue("distcc"); - } - - /** - * Gets list of acceptable values. - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[] { - "distcc", - "ssh"}; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java deleted file mode 100644 index 24aef25fb6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; - -import org.apache.tools.ant.BuildException; -/** - * An abstract class implemented to walk over the fileset members of a - * ProcessorDef - */ -public interface FileVisitor { - abstract void visit(File parentDir, String filename) throws BuildException; -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java deleted file mode 100644 index d997b2f992..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; -import net.sf.antcontrib.cpptasks.gcc.GccLinker; -import net.sf.antcontrib.cpptasks.types.FlexLong; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LinkerArgument; -import net.sf.antcontrib.cpptasks.types.SystemLibrarySet; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.FlexInteger; -/** - * A linker definition. linker elements may be placed either as children of a - * cc element or the project element. A linker element with an id attribute may - * be referenced by linker elements with refid or extends attributes. - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public class LinkerDef extends ProcessorDef { - private long base; - private String entry; - private Boolean fixed; - private Boolean incremental; - private final Vector librarySets = new Vector(); - private Boolean map; - private int stack; - private final Vector sysLibrarySets = new Vector(); - private final Vector versionInfos = new Vector(); - private Boolean defaultflag = new Boolean(true); - /** - * Default constructor - * - * @see java.lang.Object#Object() - */ - public LinkerDef() { - base = -1; - stack = -1; - } - private void addActiveLibrarySet(Project project, Vector libsets, - Vector srcSets) { - Enumeration srcenum = srcSets.elements(); - while (srcenum.hasMoreElements()) { - LibrarySet set = (LibrarySet) srcenum.nextElement(); - if (set.isActive(project)) { - libsets.addElement(set); - } - } - } - private void addActiveSystemLibrarySets(Project project, Vector libsets) { - addActiveLibrarySet(project, libsets, sysLibrarySets); - } - private void addActiveUserLibrarySets(Project project, Vector libsets) { - addActiveLibrarySet(project, libsets, librarySets); - } - /** - * Adds a linker command-line arg. - */ - public void addConfiguredLinkerArg(LinkerArgument arg) { - addConfiguredProcessorArg(arg); - } - /** - * Adds a compiler command-line arg. - */ - public void addConfiguredLinkerParam(LinkerParam param) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorParam(param); - } - /** - * Adds a system library set. - */ - public void addLibset(LibrarySet libset) { - if (isReference()) { - throw super.noChildrenAllowed(); - } - if (libset == null) { - throw new NullPointerException("libset"); - } - librarySets.addElement(libset); - } - /** - * Adds a system library set. - */ - public void addSyslibset(SystemLibrarySet libset) { - if (isReference()) { - throw super.noChildrenAllowed(); - } - if (libset == null) { - throw new NullPointerException("libset"); - } - sysLibrarySets.addElement(libset); - } - - /** - * Adds desriptive version information to be included in the - * generated file. The first active version info block will - * be used. - */ - public void addConfiguredVersioninfo(VersionInfo newVersionInfo) { - if (isReference()) { - throw noChildrenAllowed(); - } - newVersionInfo.setProject(this.getProject()); - versionInfos.addElement(newVersionInfo); - } - - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform) { - // - // must combine some local context (the linkType) - // with the referenced element - // - // get a pointer to the definition (either local or referenced) - ProcessorDef thisDef = this; - if (isReference()) { - thisDef = ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")); - } - // - // find the appropriate processor (combines local linkType - // with possibly remote linker name) - Processor proc = getProcessor(); - proc = proc.getLinker(linkType); - ProcessorDef[] defaultProviders = getDefaultProviders(baseDef); - return proc.createConfiguration(task, linkType, defaultProviders, - thisDef, targetPlatform); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** - * Returns an array of active library sets for this linker definition. - */ - public LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders, - int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getActiveUserLibrarySets(defaultProviders, index); - } - Project p = getProject(); - Vector libsets = new Vector(); - for (int i = index; i < defaultProviders.length; i++) { - defaultProviders[i].addActiveUserLibrarySets(p, libsets); - defaultProviders[i].addActiveSystemLibrarySets(p, libsets); - } - addActiveUserLibrarySets(p, libsets); - addActiveSystemLibrarySets(p, libsets); - LibrarySet[] sets = new LibrarySet[libsets.size()]; - libsets.copyInto(sets); - return sets; - } - /** - * Returns an array of active library sets for this linker definition. - */ - public LibrarySet[] getActiveSystemLibrarySets( - LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getActiveUserLibrarySets(defaultProviders, index); - } - Project p = getProject(); - Vector libsets = new Vector(); - for (int i = index; i < defaultProviders.length; i++) { - defaultProviders[i].addActiveSystemLibrarySets(p, libsets); - } - addActiveSystemLibrarySets(p, libsets); - LibrarySet[] sets = new LibrarySet[libsets.size()]; - libsets.copyInto(sets); - return sets; - } - /** - * Returns an array of active library sets for this linker definition. - */ - public LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders, - int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getActiveUserLibrarySets(defaultProviders, index); - } - Project p = getProject(); - Vector libsets = new Vector(); - for (int i = index; i < defaultProviders.length; i++) { - defaultProviders[i].addActiveUserLibrarySets(p, libsets); - } - addActiveUserLibrarySets(p, libsets); - LibrarySet[] sets = new LibrarySet[libsets.size()]; - libsets.copyInto(sets); - return sets; - } - public long getBase(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getBase(defaultProviders, index); - } - if (base <= 0) { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getBase(defaultProviders, - index + 1); - } - } - return base; - } - public Boolean getFixed(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getFixed(defaultProviders, index); - } - if (fixed == null) { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getFixed(defaultProviders, - index + 1); - } - } - return fixed; - } - public boolean getIncremental(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getIncremental(defaultProviders, index); - } - if (incremental != null) { - return incremental.booleanValue(); - } - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getIncremental(defaultProviders, index + 1); - } - return false; - } - public boolean getMap(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getMap(defaultProviders, index); - } - if (map != null) { - return map.booleanValue(); - } - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getMap(defaultProviders, index + 1); - } - return false; - } - public final Boolean getDefaultflag(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, - "LinkerDef")).getDefaultflag(defaultProviders, index); - } - return defaultflag; - } - public String getEntry(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getEntry(defaultProviders, index); - } - if (entry != null) { - return entry; - } - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getEntry(defaultProviders, index + 1); - } - return null; - } - - public Processor getProcessor() { - Linker linker = (Linker) super.getProcessor(); - if (linker == null) { - linker = GccLinker.getInstance(); - } - if (getLibtool() && linker instanceof CommandLineLinker) { - CommandLineLinker cmdLineLinker = (CommandLineLinker) linker; - linker = cmdLineLinker.getLibtoolLinker(); - } - return linker; - } - public int getStack(LinkerDef[] defaultProviders, int index) { - if (isReference()) { - return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef")) - .getStack(defaultProviders, index); - } - if (stack < 0) { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getStack(defaultProviders, - index + 1); - } - } - return stack; - } - /** - * Sets the base address. May be specified in either decimal or hex. - * - * @param base - * base address - * - */ - public void setBase(FlexLong base) { - if (isReference()) { - throw tooManyAttributes(); - } - this.base = base.longValue(); - } - /** - * Sets the starting address. - * - * @param name - * function name - */ - public void setEntry(String entry) { - if (isReference()) { - throw tooManyAttributes(); - } - this.entry = entry; - } - /** - * If true, marks the file to be loaded only at its preferred address. - */ - public void setFixed(boolean fixed) { - if (isReference()) { - throw tooManyAttributes(); - } - this.fixed = booleanValueOf(fixed); - } - /** - * If true, allows incremental linking. - * - */ - public void setIncremental(boolean incremental) { - if (isReference()) { - throw tooManyAttributes(); - } - this.incremental = booleanValueOf(incremental); - } - /** - * If set to true, a map file will be produced. - */ - public void setMap(boolean map) { - if (isReference()) { - throw tooManyAttributes(); - } - this.map = booleanValueOf(map); - } - /** - * Sets linker type. - * - * - * Supported linkers - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
gccGcc Linker
g++G++ Linker
ldLd Linker
arGcc Librarian
msvcMicrosoft Linker
bccBorland Linker
dfCompaq Visual Fortran Linker
iclIntel Linker for Windows (IA-32)
eclIntel Linker for Windows (IA-64)
iccIntel Linker for Linux (IA-32)
eccIntel Linker for Linux (IA-64)
CCSun ONE Linker
aCCHP aC++ Linker
os390OS390 Linker
os390batchOS390 Linker
os400IccLinker
sunc89C89 Linker
xlCVisualAge Linker
- * - */ - public void setName(LinkerEnum name) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - Linker linker = name.getLinker(); - super.setProcessor(linker); - } - protected void setProcessor(Processor proc) throws BuildException { - Linker linker = null; - if (proc instanceof Linker) { - linker = (Linker) proc; - } else { - LinkType linkType = new LinkType(); - linker = proc.getLinker(linkType); - } - super.setProcessor(linker); - } - /** - * Sets stack size in bytes. - */ - public void setStack(FlexInteger stack) { - if (isReference()) { - throw tooManyAttributes(); - } - this.stack = stack.intValue(); - } - public void visitSystemLibraries(Linker linker, FileVisitor libraryVisitor) { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class, - "Linker")); - master.visitSystemLibraries(linker, libraryVisitor); - } else { - // - // if this linker extends another, - // visit its libraries first - // - LinkerDef extendsDef = (LinkerDef) getExtends(); - if (extendsDef != null) { - extendsDef.visitSystemLibraries(linker, libraryVisitor); - } - if (sysLibrarySets.size() > 0) { - File[] libpath = linker.getLibraryPath(); - for (int i = 0; i < sysLibrarySets.size(); i++) { - LibrarySet set = (LibrarySet) sysLibrarySets.elementAt(i); - if (set.isActive(p)) { - set.visitLibraries(p, linker, libpath, - libraryVisitor); - } - } - } - } - } - public void visitUserLibraries(Linker linker, FileVisitor libraryVisitor) { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class, - "Linker")); - master.visitUserLibraries(linker, libraryVisitor); - } else { - // - // if this linker extends another, - // visit its libraries first - // - LinkerDef extendsDef = (LinkerDef) getExtends(); - if (extendsDef != null) { - extendsDef.visitUserLibraries(linker, libraryVisitor); - } - // - // visit the user libraries - // - if (librarySets.size() > 0) { - File[] libpath = linker.getLibraryPath(); - for (int i = 0; i < librarySets.size(); i++) { - LibrarySet set = (LibrarySet) librarySets.elementAt(i); - if (set.isActive(p)) { - set.visitLibraries(p, linker, libpath, - libraryVisitor); - } - } - } - } - } - /** - * Enables or disables default flags. - * - * @param defaultflag - * if true, default flags will add to command line. - * - */ - public void setDefaultflag(boolean defaultflag) { - if (isReference()) { - throw tooManyAttributes(); - } - this.defaultflag = booleanValueOf(defaultflag); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java deleted file mode 100644 index cfe8984c23..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import net.sf.antcontrib.cpptasks.arm.ADSLinker; -import net.sf.antcontrib.cpptasks.borland.BorlandLinker; -import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranLinker; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker; -import net.sf.antcontrib.cpptasks.gcc.GccLibrarian; -import net.sf.antcontrib.cpptasks.gcc.GccLinker; -import net.sf.antcontrib.cpptasks.gcc.GppLinker; -import net.sf.antcontrib.cpptasks.gcc.LdLinker; -import net.sf.antcontrib.cpptasks.hp.aCCLinker; -import net.sf.antcontrib.cpptasks.ibm.VisualAgeLinker; -import net.sf.antcontrib.cpptasks.intel.IntelLinux32Linker; -import net.sf.antcontrib.cpptasks.intel.IntelLinux64Linker; -import net.sf.antcontrib.cpptasks.intel.IntelWin32Linker; -import net.sf.antcontrib.cpptasks.os390.OS390Linker; -import net.sf.antcontrib.cpptasks.os400.IccLinker; -import net.sf.antcontrib.cpptasks.sun.C89Linker; -import net.sf.antcontrib.cpptasks.sun.ForteCCLinker; -import net.sf.antcontrib.cpptasks.ti.ClxxLinker; -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumeration of supported linkers - * - * @author Curt Arnold - * - */ -public class LinkerEnum extends EnumeratedAttribute { - private final static ProcessorEnumValue[] linkers = new ProcessorEnumValue[]{ - new ProcessorEnumValue("gcc", GccLinker.getInstance()), - new ProcessorEnumValue("g++", GppLinker.getInstance()), - new ProcessorEnumValue("ld", LdLinker.getInstance()), - new ProcessorEnumValue("ar", GccLibrarian.getInstance()), - new ProcessorEnumValue("msvc", DevStudioLinker.getInstance()), - new ProcessorEnumValue("bcc", BorlandLinker.getInstance()), - new ProcessorEnumValue("df", CompaqVisualFortranLinker - .getInstance()), - new ProcessorEnumValue("icl", IntelWin32Linker.getInstance()), - new ProcessorEnumValue("ecl", IntelWin32Linker.getInstance()), - new ProcessorEnumValue("icc", IntelLinux32Linker.getInstance()), - new ProcessorEnumValue("ecc", IntelLinux64Linker.getInstance()), - new ProcessorEnumValue("CC", ForteCCLinker.getInstance()), - new ProcessorEnumValue("aCC", aCCLinker.getInstance()), - new ProcessorEnumValue("os390", OS390Linker.getInstance()), - new ProcessorEnumValue("os390batch", OS390Linker - .getDataSetInstance()), - new ProcessorEnumValue("os400", IccLinker.getInstance()), - new ProcessorEnumValue("sunc89", C89Linker.getInstance()), - new ProcessorEnumValue("xlC", VisualAgeLinker.getInstance()), - new ProcessorEnumValue("cl6x", ClxxLinker.getCl6xInstance()), - new ProcessorEnumValue("cl55", ClxxLinker.getCl55Instance()), - new ProcessorEnumValue("armcc", ADSLinker.getInstance()), - new ProcessorEnumValue("armcpp", ADSLinker.getInstance()), - new ProcessorEnumValue("tcc", ADSLinker.getInstance()), - new ProcessorEnumValue("tcpp", ADSLinker.getInstance()), - // gcc cross compilers - new ProcessorEnumValue( - "sparc-sun-solaris2-gcc", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccLinker - .getInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-g++", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GppLinker - .getInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-ld", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.LdLinker - .getInstance()), - new ProcessorEnumValue( - "sparc-sun-solaris2-ar", - net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccLibrarian - .getInstance()), - new ProcessorEnumValue("gcc-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccLinker - .getInstance()), - new ProcessorEnumValue("g++-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GppLinker - .getInstance()), - new ProcessorEnumValue("ld-cross", - net.sf.antcontrib.cpptasks.gcc.cross.LdLinker.getInstance()), - new ProcessorEnumValue("ar-cross", - net.sf.antcontrib.cpptasks.gcc.cross.GccLibrarian - .getInstance()),}; - public Linker getLinker() { - return (Linker) linkers[getIndex()].getProcessor(); - } - public String[] getValues() { - return ProcessorEnumValue.getValues(linkers); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java deleted file mode 100644 index 383bae55c9..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -/******************************************************************************* - * Place class description here. - * - * @author inger - * @author - * - * @since - ******************************************************************************/ -public class LinkerParam extends ProcessorParam { - public LinkerParam() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java deleted file mode 100644 index 536d9922d3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of cpu types. - * - * @author Curt Arnold - * - */ -public final class OSFamilyEnum - extends EnumeratedAttribute { - /** - * Constructor. - * - * Set by default to "pentium3" - * - * @see java.lang.Object#Object() - */ - public OSFamilyEnum() { - setValue("windows"); - } - - /** - * Gets list of acceptable values. - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[] { - "windows", - "dos", - "mac", - "unix", - "netware", - "os/2", - "tandem", - "win9x", - "z/os", - "os/400", - "openvms"}; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java deleted file mode 100644 index 3e97fa40af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.Linker; - -import org.apache.tools.ant.BuildException; -/** - * Collects object files for the link step. - * - * - */ -public final class ObjectFileCollector implements FileVisitor { - private final Vector files; - private final Linker linker; - public ObjectFileCollector(Linker linker, Vector files) { - this.linker = linker; - this.files = files; - } - public void visit(File parentDir, String filename) throws BuildException { - int bid = linker.bid(filename); - if (bid >= 1) { - files.addElement(new File(parentDir, filename)); - } - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java deleted file mode 100644 index 4a0d17953e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.EnumeratedAttribute; - -/** - * Enumeration of optimization levels (experimental). - * - * @author Curt Arnold - * - */ -public final class OptimizationEnum - extends EnumeratedAttribute { - /** - * Constructor. - * - * Set by default to "speed" - * - * @see java.lang.Object#Object() - */ - public OptimizationEnum() { - setValue("speed"); - } - - /** - * Gets list of acceptable values. - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[] { - "none", - "size", - "minimal", - "speed", - "full", - "aggressive", - "extreme", - "unsafe" - }; - } - - /** - * Is size optimized. - * @return boolean true if size is optimized. - */ - public boolean isSize() { - return "speed".equals(getValue()); - } - - /** - * Is speed optimized. - * @return boolean true if speed is optimized. - */ - public boolean isSpeed() { - return !isSize() && !isNoOptimization(); - } - - /** - * Is no optimization performed. - * @return boolean true if no optimization is performed. - */ - public boolean isNoOptimization() { - return "none".equals(getValue()); - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java deleted file mode 100644 index fb37843fbc..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumeration of supported subsystems - * - * @author Curt Arnold - * - */ -public class OutputTypeEnum extends EnumeratedAttribute { - /** - * Constructor - * - * Set by default to "executable" - * - * @see java.lang.Object#Object() - */ - public OutputTypeEnum() { - setValue("executable"); - } - /** - * Gets list of acceptable values - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[]{"executable", // executable program - "plugin", // plugin module - "shared", // dynamically linkable module - "static" // convenience library - }; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java deleted file mode 100644 index 828e2c2f48..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.types.ConditionalFileSet; - -import org.apache.tools.ant.Project; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.types.DataType; -/** - * An element that specifies a prototype file and rules for source files that - * should not use precompiled headers - * - * @author Curt Arnold - */ -public final class PrecompileDef extends DataType { - private final Vector exceptSets = new Vector(); - private String ifCond; - /** - * Directory of prototype file - */ - private File prototype = new File("stdafx.cpp"); - private String unlessCond; - /** - * Constructor - * - */ - public PrecompileDef() { - } - /** - * Method used by PrecompileExceptDef to add exception set to - * PrecompileDef. - */ - public void appendExceptFileSet(ConditionalFileSet exceptSet) { - exceptSet.setProject(getProject()); - exceptSets.addElement(exceptSet); - } - /** - * Adds filesets that specify files that should not be processed with - * precompiled headers enabled. - * - * @param exceptSet - * FileSet specify files that should not be processed with - * precompiled headers enabled. - */ - public PrecompileExceptDef createExcept() { - return new PrecompileExceptDef(this); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - public String[] getExceptFiles() { - PrecompileDef ref = getRef(); - if (ref != null) { - return ref.getExceptFiles(); - } - if (exceptSets.size() == 0) { - return new String[0]; - } - Project p = getProject(); - String[] exceptFiles = null; - Enumeration setEnum = exceptSets.elements(); - while (setEnum.hasMoreElements()) { - ConditionalFileSet exceptSet = (ConditionalFileSet) setEnum - .nextElement(); - if (exceptSet.isActive()) { - DirectoryScanner scanner = exceptSet - .getDirectoryScanner(p); - String[] scannerFiles = scanner.getIncludedFiles(); - if (exceptFiles == null) { - exceptFiles = scannerFiles; - } else { - if (scannerFiles.length > 0) { - String[] newFiles = new String[exceptFiles.length - + scannerFiles.length]; - for (int i = 0; i < exceptFiles.length; i++) { - newFiles[i] = exceptFiles[i]; - } - int index = exceptFiles.length; - for (int i = 0; i < scannerFiles.length; i++) { - newFiles[index++] = scannerFiles[i]; - } - exceptFiles = newFiles; - } - } - } - } - if (exceptFiles == null) { - exceptFiles = new String[0]; - } - return exceptFiles; - } - /** - * Gets prototype source file - * - */ - public File getPrototype() { - PrecompileDef ref = getRef(); - if (ref != null) { - return ref.getPrototype(); - } - return prototype; - } - private PrecompileDef getRef() { - if (isReference()) { - return ((PrecompileDef) getCheckedRef(PrecompileDef.class, - "PrecompileDef")); - } - return null; - } - public boolean isActive() { - boolean isActive = CUtil.isActive(getProject(), ifCond, unlessCond); - if (!isActive) { - PrecompileDef ref = getRef(); - if (ref != null) { - return ref.isActive(); - } - } - return isActive; - } - /** - * Sets a description of the current data type. - */ - public void setDescription(String desc) { - super.setDescription(desc); - } - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - /** - * Set the 'if' condition. - * - * The processor will be ignored unless the property is defined. - * - * The value of property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * isActive() is evaluated. - * - * @param propName - * name of property - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Sets file to precompile. - * - * Should be a source file that includes only one unguarded header file. - * Default value is "stdafx.cpp". - * - * @param prototype - * file path for prototype source file - */ - public void setPrototype(File prototype) { - if (isReference()) { - throw tooManyAttributes(); - } - if (prototype == null) { - throw new NullPointerException("prototype"); - } - this.prototype = prototype; - } - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. - * - * @param ref - * Reference to other element - * - */ - public void setRefid(org.apache.tools.ant.types.Reference ref) { - super.setRefid(ref); - } - /** - * Set the 'unless' condition. If named property exists at execution time, - * the processor will be ignored. - * - * Value of property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when isActive is called. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java deleted file mode 100644 index d6cdd6025f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; - -import net.sf.antcontrib.cpptasks.types.ConditionalFileSet; - -import org.apache.tools.ant.BuildException; -/** - * Specifies files that should not be compiled using precompiled headers. - * - * @author Curt Arnold - */ -public final class PrecompileExceptDef { - private ConditionalFileSet localSet = null; - /** - * Collection of contained by definition - */ - private PrecompileDef owner; - /** - * Constructor - * - */ - public PrecompileExceptDef(PrecompileDef owner) { - this.owner = owner; - } - /** - * Adds filesets that specify files that should not be processed using - * precompiled headers. - * - * @param exceptSet - * FileSet specify files that should not be processed with - * precompiled headers enabled. - */ - public void addFileset(ConditionalFileSet exceptSet) { - owner.appendExceptFileSet(exceptSet); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** - * Sets the base-directory - */ - public void setDir(File dir) throws BuildException { - if (localSet == null) { - localSet = new ConditionalFileSet(); - owner.appendExceptFileSet(localSet); - } - localSet.setDir(dir); - } - /** - * Comma or space separated list of file patterns that should not be - * compiled using precompiled headers. - * - * @param includes - * the string containing the include patterns - */ - public void setIncludes(String includes) { - if (localSet == null) { - localSet = new ConditionalFileSet(); - owner.appendExceptFileSet(localSet); - } - localSet.setIncludes(includes); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java deleted file mode 100644 index 38faf427e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java +++ /dev/null @@ -1,714 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.lang.reflect.Method; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; -import net.sf.antcontrib.cpptasks.types.ConditionalFileSet; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Environment; -import org.apache.tools.ant.types.Reference; -/** - * An abstract compiler/linker definition. - * - * @author Curt Arnold - */ -public abstract class ProcessorDef extends DataType { - /** - * Returns the equivalent Boolean object for the specified value - * - * Equivalent to Boolean.valueOf in JDK 1.4 - * - * @param val - * boolean value - * @return Boolean.TRUE or Boolean.FALSE - */ - protected static Boolean booleanValueOf(boolean val) { - if (val) { - return Boolean.TRUE; - } - return Boolean.FALSE; - } - /** - * if true, targets will be built for debugging - */ - private Boolean debug; - private Environment env = null; - /** - * Reference for "extends" processor definition - */ - private Reference extendsRef = null; - /** - * Name of property that must be present or definition will be ignored. May - * be null. - */ - private String ifProp; - /** - * if true, processor definition inherits values from containing - * element - */ - private boolean inherit; - private Boolean libtool = null; - protected boolean newEnvironment = false; - /** - * Processor. - */ - private Processor processor; - /** - * Collection of or contained by definition - */ - private final Vector processorArgs = new Vector(); - /** - * Collection of or contained by definition - */ - private final Vector processorParams = new Vector(); - /** - * if true, all targets will be unconditionally rebuilt - */ - private Boolean rebuild; - /** - * Collection of contained by definition - */ - private final Vector srcSets = new Vector(); - /** - * Name of property that if present will cause definition to be ignored. - * May be null. - */ - private String unlessProp; - /** - * Constructor - * - */ - protected ProcessorDef() throws NullPointerException { - inherit = true; - } - /** - * Adds a or - * - * @param arg - * command line argument, must not be null - * @throws NullPointerException - * if arg is null - * @throws BuildException - * if this definition is a reference - */ - protected void addConfiguredProcessorArg(CommandLineArgument arg) - throws NullPointerException, BuildException { - if (arg == null) { - throw new NullPointerException("arg"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - if(arg.getFile() == null ) { - processorArgs.addElement(arg); - } - else { - loadFile(arg.getFile()); - } - } - /** - * Add a or if specify the file attribute - * - * @param arg - * command line argument, must not be null - * @throws BuildException - * if the specify file not exist - */ - protected void loadFile(File file) - throws BuildException { - FileReader fileReader; - BufferedReader in; - String str; - if (! file.exists()){ - throw new BuildException("The file " + file + " is not existed"); - } - try { - fileReader = new FileReader(file); - in = new BufferedReader(fileReader); - while ( (str = in.readLine()) != null ){ - if(str.trim() == ""){ - continue ; - } - str = getProject().replaceProperties(str); - CommandLineArgument newarg = new CommandLineArgument(); - newarg.setValue(str.trim()); - processorArgs.addElement(newarg); - } - } - catch(Exception e){ - throw new BuildException(e.getMessage()); - } - } - /** - * Adds a or - * - * @param arg - * command line argument, must not be null - * @throws NullPointerException - * if arg is null - * @throws BuildException - * if this definition is a reference - */ - protected void addConfiguredProcessorParam(ProcessorParam param) - throws NullPointerException, BuildException { - if (param == null) { - throw new NullPointerException("param"); - } - if (isReference()) { - throw noChildrenAllowed(); - } - processorParams.addElement(param); - } - /** - * Add an environment variable to the launched process. - */ - public void addEnv(Environment.Variable var) { - if (env == null) { - env = new Environment(); - } - env.addVariable(var); - } - /** - * Adds a source file set. - * - * Files in these set will be processed by this configuration and will not - * participate in the auction. - * - * @param srcSet - * Fileset identifying files that should be processed by this - * processor - * @throws BuildException - * if processor definition is a reference - */ - public void addFileset(ConditionalFileSet srcSet) throws BuildException { - if (isReference()) { - throw noChildrenAllowed(); - } - srcSet.setProject(getProject()); - srcSets.addElement(srcSet); - } - /** - * Creates a configuration - * - * @param baseDef - * reference to def from containing element, may be null - * @return configuration - * - */ - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform) { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).createConfiguration(task, linkType, - baseDef, targetPlatform); - } - ProcessorDef[] defaultProviders = getDefaultProviders(baseDef); - Processor proc = getProcessor(); - return proc.createConfiguration(task, linkType, defaultProviders, this, targetPlatform); - } - /** - * Prepares list of processor arguments ( , ) that - * are active for the current project settings. - * - * @return active compiler arguments - */ - public CommandLineArgument[] getActiveProcessorArgs() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getActiveProcessorArgs(); - } - Vector activeArgs = new Vector(processorArgs.size()); - for (int i = 0; i < processorArgs.size(); i++) { - CommandLineArgument arg = (CommandLineArgument) processorArgs - .elementAt(i); - if (arg.isActive(p)) { - activeArgs.addElement(arg); - } - } - CommandLineArgument[] array = new CommandLineArgument[activeArgs.size()]; - activeArgs.copyInto(array); - return array; - } - /** - * Prepares list of processor arguments ( , ) that - * are active for the current project settings. - * - * @return active compiler arguments - */ - public ProcessorParam[] getActiveProcessorParams() { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException("project must be set"); - } - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getActiveProcessorParams(); - } - Vector activeParams = new Vector(processorParams.size()); - for (int i = 0; i < processorParams.size(); i++) { - ProcessorParam param = (ProcessorParam) processorParams - .elementAt(i); - if (param.isActive(p)) { - activeParams.addElement(param); - } - } - ProcessorParam[] array = new ProcessorParam[activeParams.size()]; - activeParams.copyInto(array); - return array; - } - /** - * Gets boolean indicating debug build - * - * @param defaultProviders - * array of ProcessorDef's in descending priority - * @param index - * index to first element in array that should be considered - * @return if true, built targets for debugging - */ - public boolean getDebug(ProcessorDef[] defaultProviders, int index) { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getDebug(defaultProviders, index); - } - if (debug != null) { - return debug.booleanValue(); - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getDebug(defaultProviders, - index + 1); - } - } - return false; - } - /** - * Creates an chain of objects which provide default values in descending - * order of significance. - * - * @param baseDef - * corresponding ProcessorDef from CCTask, will be last element - * in array unless inherit = false - * @return default provider array - * - */ - protected final ProcessorDef[] getDefaultProviders(ProcessorDef baseDef) { - ProcessorDef extendsDef = getExtends(); - Vector chain = new Vector(); - while (extendsDef != null && !chain.contains(extendsDef)) { - chain.addElement(extendsDef); - extendsDef = extendsDef.getExtends(); - } - if (baseDef != null && getInherit()) { - chain.addElement(baseDef); - } - ProcessorDef[] defaultProviders = new ProcessorDef[chain.size()]; - chain.copyInto(defaultProviders); - return defaultProviders; - } - /** - * Gets the ProcessorDef specified by the extends attribute - * - * @return Base ProcessorDef, null if extends is not specified - * @throws BuildException - * if reference is not same type object - */ - public ProcessorDef getExtends() throws BuildException { - if (extendsRef != null) { - Object obj = extendsRef.getReferencedObject(getProject()); - if (!getClass().isInstance(obj)) { - throw new BuildException("Referenced object " - + extendsRef.getRefId() + " not correct type, is " - + obj.getClass().getName() + " should be " - + getClass().getName()); - } - return (ProcessorDef) obj; - } - return null; - } - /** - * Gets the inherit attribute. If the inherit value is true, this processor - * definition will inherit default values from the containing element. - * - * @return if true then properties from the containing element are - * used. - */ - public final boolean getInherit() { - return inherit; - } - public boolean getLibtool() { - if (libtool != null) { - return libtool.booleanValue(); - } - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getLibtool(); - } - ProcessorDef extendsDef = getExtends(); - if (extendsDef != null) { - return extendsDef.getLibtool(); - } - return false; - } - /** - * Obtains the appropriate processor (compiler, linker) - * - * @return processor - */ - protected Processor getProcessor() { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getProcessor(); - } - // - // if a processor has not been explicitly set - // then may be set by an extended definition - if (processor == null) { - ProcessorDef extendsDef = getExtends(); - if (extendsDef != null) { - return extendsDef.getProcessor(); - } - } - return processor; - } - /** - * Gets a boolean value indicating whether all targets must be rebuilt - * regardless of dependency analysis. - * - * @param defaultProviders - * array of ProcessorDef's in descending priority - * @param index - * index to first element in array that should be considered - * @return true if all targets should be rebuilt. - */ - public boolean getRebuild(ProcessorDef[] defaultProviders, int index) { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getRebuild(defaultProviders, index); - } - if (rebuild != null) { - return rebuild.booleanValue(); - } else { - if (defaultProviders != null && index < defaultProviders.length) { - return defaultProviders[index].getRebuild(defaultProviders, - index + 1); - } - } - return false; - } - /** - * Returns true if the processor definition contains embedded file set - * definitions - * - * @return true if processor definition contains embedded filesets - */ - public boolean hasFileSets() { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).hasFileSets(); - } - return srcSets.size() > 0; - } - /** - * Determine if this def should be used. - * - * Definition will be active if the "if" variable (if specified) is set and - * the "unless" variable (if specified) is not set and that all reference - * or extended definitions are active - * - * @return true if processor is active - * @throws IllegalStateException - * if not properly initialized - * @throws BuildException - * if "if" or "unless" variable contains suspicious values - * "false" or "no" which indicates possible confusion - */ - public boolean isActive() throws BuildException, IllegalStateException { - Project project = getProject(); - if (!CUtil.isActive(project, ifProp, unlessProp)) { - return false; - } - if (isReference()) { - if (!((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).isActive()) { - return false; - } - } - // - // walk through any extended definitions - // - ProcessorDef[] defaultProviders = getDefaultProviders(null); - for (int i = 0; i < defaultProviders.length; i++) { - if (!defaultProviders[i].isActive()) { - return false; - } - } - return true; - } - /** - * Sets the class name for the adapter. Use the "name" attribute when the - * tool is supported. - * - * @param className - * full class name - * - */ - public void setClassname(String className) throws BuildException { - Object proc = null; - try { - Class implClass = ProcessorDef.class.getClassLoader().loadClass( - className); - try { - Method getInstance = implClass.getMethod("getInstance", - new Class[0]); - proc = getInstance.invoke(null, new Object[0]); - } catch (Exception ex) { - proc = implClass.newInstance(); - } - } catch (Exception ex) { - throw new BuildException(ex); - } - setProcessor((Processor) proc); - } - /** - * If set true, all targets will be built for debugging. - * - * @param debug - * true if targets should be built for debugging - * @throws BuildException - * if processor definition is a reference - */ - public void setDebug(boolean debug) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - this.debug = booleanValueOf(debug); - } - /** - * Sets a description of the current data type. - */ - public void setDescription(String desc) { - super.setDescription(desc); - } - /** - * Specifies that this element extends the element with id attribute with a - * matching value. The configuration will be constructed from the settings - * of this element, element referenced by extends, and the containing cc - * element. - * - * @param extendsRef - * Reference to the extended processor definition. - * @throws BuildException - * if this processor definition is a reference - */ - public void setExtends(Reference extendsRef) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - this.extendsRef = extendsRef; - } - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - /** - * Sets the property name for the 'if' condition. - * - * The configuration will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * name of property - */ - public void setIf(String propName) { - ifProp = propName; - } - /** - * If inherit has the default value of true, defines, includes and other - * settings from the containing element will be inherited. - * - * @param inherit - * new value - * @throws BuildException - * if processor definition is a reference - */ - public void setInherit(boolean inherit) throws BuildException { - if (isReference()) { - throw super.tooManyAttributes(); - } - this.inherit = inherit; - } - /** - * Set use of libtool. - * - * If set to true, the "libtool " will be prepended to the command line - * - * @param libtool - * If true, use libtool. - */ - public void setLibtool(boolean libtool) { - if (isReference()) { - throw tooManyAttributes(); - } - this.libtool = booleanValueOf(libtool); - } - /** - * Do not propagate old environment when new environment variables are - * specified. - */ - public void setNewenvironment(boolean newenv) { - newEnvironment = newenv; - } - /** - * Sets the processor - * - * @param processor - * processor, may not be null. - * @throws BuildException - * if ProcessorDef is a reference - * @throws NullPointerException - * if processor is null - */ - protected void setProcessor(Processor processor) throws BuildException, - NullPointerException { - if (processor == null) { - throw new NullPointerException("processor"); - } - if (isReference()) { - throw super.tooManyAttributes(); - } - if (env == null && !newEnvironment) { - this.processor = processor; - } else { - this.processor = processor.changeEnvironment(newEnvironment, env); - } - } - /** - * If set true, all targets will be unconditionally rebuilt. - * - * @param rebuild - * if true, rebuild all targets. - * @throws BuildException - * if processor definition is a reference - */ - public void setRebuild(boolean rebuild) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - this.rebuild = booleanValueOf(rebuild); - } - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. If - * specified, no other attributes or child content should be specified, - * other than "if", "unless" and "description". - * - * @param ref - * Reference to other element - * - */ - public void setRefid(org.apache.tools.ant.types.Reference ref) { - super.setRefid(ref); - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the configuration will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessProp = propName; - } - /** - * This method calls the FileVistor's visit function for every file in the - * processors definition - * - * @param visitor - * object whose visit method is called for every file - */ - public void visitFiles(FileVisitor visitor) { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException( - "project must be set before this call"); - } - if (isReference()) { - ((ProcessorDef) getCheckedRef(ProcessorDef.class, "ProcessorDef")) - .visitFiles(visitor); - } - // - // if this processor extends another, - // visit its files first - // - ProcessorDef extendsDef = getExtends(); - if (extendsDef != null) { - extendsDef.visitFiles(visitor); - } - for (int i = 0; i < srcSets.size(); i++) { - ConditionalFileSet srcSet = (ConditionalFileSet) srcSets - .elementAt(i); - if (srcSet.isActive()) { - // Find matching source files - DirectoryScanner scanner = srcSet.getDirectoryScanner(p); - // Check each source file - see if it needs compilation - String[] fileNames = scanner.getIncludedFiles(); - File parentDir = scanner.getBasedir(); - for (int j = 0; j < fileNames.length; j++) { - String currentFile = fileNames[j]; - visitor.visit(parentDir, currentFile); - } - } - } - } - public Vector getSrcSets() { - if (isReference()) { - return ((ProcessorDef) getCheckedRef(ProcessorDef.class, - "ProcessorDef")).getSrcSets(); - } - return srcSets; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java deleted file mode 100644 index d028052232..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import net.sf.antcontrib.cpptasks.compiler.Processor; -/** - * One entry in the arrays used by the CompilerEnum and LinkerEnum classes. - * - * @author Curt Arnold - * @see CompilerEnum - * @see LinkerEnum - * - */ -public class ProcessorEnumValue { - public static String[] getValues(ProcessorEnumValue[] processors) { - String[] values = new String[processors.length]; - for (int i = 0; i < processors.length; i++) { - values[i] = processors[i].getName(); - } - return values; - } - private String name; - private Processor processor; - public ProcessorEnumValue(String name, Processor processor) { - this.name = name; - this.processor = processor; - } - public String getName() { - return name; - } - public Processor getProcessor() { - return processor; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java deleted file mode 100644 index b2d47962ed..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -/******************************************************************************* - * Place class description here. - * - * @author inger - * @author - * - * @since - ******************************************************************************/ -public class ProcessorParam { - private String ifCond; - private String name; - private String unlessCond; - private String value; - public ProcessorParam() { - } - public String getName() { - return name; - } - public String getValue() { - return value; - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - */ - public boolean isActive(org.apache.tools.ant.Project p) { - if (value == null) { - return false; - } - if (ifCond != null && p.getProperty(ifCond) == null) { - return false; - } else if (unlessCond != null && p.getProperty(unlessCond) != null) { - return false; - } - return true; - } - /** - * Sets the property name for the 'if' condition. - * - * The argument will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Specifies relative location of argument on command line. "start" will - * place argument at start of command line, "mid" will place argument after - * all "start" arguments but before filenames, "end" will place argument - * after filenames. - * - */ - public void setName(String name) { - this.name = name; - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the argument will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } - /** - * Specifies the string that should appear on the command line. The - * argument will be quoted if it contains embedded blanks. Use multiple - * arguments to avoid quoting. - * - */ - public void setValue(String value) { - this.value = value; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java deleted file mode 100644 index 02da661917..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumerated attribute with the values "dynamic" and "static", - */ -public class RuntimeType extends EnumeratedAttribute { - public String[] getValues() { - return new String[]{"dynamic", "static"}; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java deleted file mode 100644 index 0c608b4d87..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.io.IOException; -/** - * The history of a source file used to build a target - * - * @author Curt Arnold - */ -public final class SourceHistory { - private/* final */long lastModified; - private/* final */String relativePath; - /** - * Constructor - */ - public SourceHistory(String relativePath, long lastModified) { - if (relativePath == null) { - throw new NullPointerException("relativePath"); - } - this.relativePath = relativePath; - this.lastModified = lastModified; - } - public String getAbsolutePath(File baseDir) { - try { - return new File(baseDir, relativePath).getCanonicalPath(); - } catch (IOException ex) { - } - return relativePath; - } - public long getLastModified() { - return lastModified; - } - public String getRelativePath() { - return relativePath; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java deleted file mode 100644 index 3dc342a38a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumeration of supported subsystems - * - * @author Curt Arnold - * - */ -public final class SubsystemEnum extends EnumeratedAttribute { - private final static String[] values = new String[]{"gui", "console", - "other"}; - public SubsystemEnum() { - setValue("gui"); - } - public String[] getValues() { - return (String[]) values.clone(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java deleted file mode 100644 index 8e46cb7c6c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Reference; - -/** - * Information on the execution platforms for the generated code. - * (Non-functional prototype) - * - */ -public final class TargetDef - extends DataType { - /** - * if property. - */ - private String ifCond; - - /** - * unless property. - */ - private String unlessCond; - - /** - * cpu. - * - */ - private CPUEnum cpu; - - /** - * architecture. - * - */ - private ArchEnum arch; - - /** - * OS Family. - * - */ - private OSFamilyEnum osFamily; - - /** - * Constructor. - * - */ - public TargetDef() { - } - - /** - * Bogus method required for documentation generation. - */ - public void execute() { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - * @return true if active - */ - public boolean isActive() { - return CUtil.isActive(getProject(), ifCond, unlessCond); - } - - /** - * Sets a description of the current data type. - * @param desc description - */ - public void setDescription(final String desc) { - super.setDescription(desc); - } - - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(final String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - - /** - * Sets the property name for the 'if' condition. - * - * The define will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public void setIf(final String propName) { - ifCond = propName; - } - - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. If - * specified, no other attributes should be specified. - * @param r id of referenced target - */ - public void setRefid(final Reference r) { - super.setRefid(r); - } - - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(final String propName) { - unlessCond = propName; - } - - /** - * Gets cpu. - * @return cpu, may be null. - * - */ - public CPUEnum getCpu() { - if (isReference()) { - TargetDef refPlatform = (TargetDef) - getCheckedRef(TargetDef.class, - "TargetDef"); - return refPlatform.getCpu(); - } - return cpu; - } - - /** - * Gets arch. - * @return arch, may be null. - * - */ - public ArchEnum getArch() { - if (isReference()) { - TargetDef refPlatform = (TargetDef) - getCheckedRef(TargetDef.class, - "TargetDef"); - return refPlatform.getArch(); - } - return arch; - } - - /** - * Gets operating system family. - * @return os family, may be null. - * - */ - public OSFamilyEnum getOsfamily() { - if (isReference()) { - TargetDef refPlatform = (TargetDef) - getCheckedRef(TargetDef.class, - "TargetDef"); - return refPlatform.getOsfamily(); - } - return osFamily; - } - - /** - * Sets preferred cpu, but does not use cpu specific instructions. - * @param value new value - */ - public void setCpu(final CPUEnum value) { - if (isReference()) { - throw tooManyAttributes(); - } - cpu = value; - } - - /** - * Sets cpu architecture, compiler may use cpu specific instructions. - * @param value new value - */ - public void setArch(final ArchEnum value) { - if (isReference()) { - throw tooManyAttributes(); - } - if (cpu != null) { - throw tooManyAttributes(); - } - arch = value; - } - - /** - * Sets operating system family. - * @param value new value - */ - public void setOsfamily(final OSFamilyEnum value) { - if (isReference()) { - throw tooManyAttributes(); - } - if (cpu != null) { - throw tooManyAttributes(); - } - osFamily = value; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java deleted file mode 100644 index 0094c8ecec..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -/** - * A description of a file built or to be built - */ -public final class TargetHistory { - private/* final */String config; - private/* final */String output; - private/* final */long outputLastModified; - private/* final */SourceHistory[] sources; - /** - * Constructor from build step - */ - public TargetHistory(String config, String output, long outputLastModified, - SourceHistory[] sources) { - if (config == null) { - throw new NullPointerException("config"); - } - if (sources == null) { - throw new NullPointerException("source"); - } - if (output == null) { - throw new NullPointerException("output"); - } - this.config = config; - this.output = output; - this.outputLastModified = outputLastModified; - this.sources = (SourceHistory[]) sources.clone(); - } - public String getOutput() { - return output; - } - public long getOutputLastModified() { - return outputLastModified; - } - public String getProcessorConfiguration() { - return config; - } - public SourceHistory[] getSources() { - SourceHistory[] clone = (SourceHistory[]) sources.clone(); - return clone; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java deleted file mode 100644 index 9fb0a7b642..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java +++ /dev/null @@ -1,426 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; - -import org.apache.tools.ant.BuildException; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; -/** - * A history of the compiler and linker settings used to build the files in the - * same directory as the history. - * - * @author Curt Arnold - */ -public final class TargetHistoryTable { - /** - * This class handles populates the TargetHistory hashtable in response to - * SAX parse events - */ - private class TargetHistoryTableHandler extends DefaultHandler { - private final File baseDir; - private String config; - private final Hashtable history; - private String output; - private long outputLastModified; - private final Vector sources = new Vector(); - /** - * Constructor - * - * @param history - * hashtable of TargetHistory keyed by output name - * @param outputFiles - * existing files in output directory - */ - private TargetHistoryTableHandler(Hashtable history, File baseDir) { - this.history = history; - config = null; - output = null; - this.baseDir = baseDir; - } - public void endElement(String namespaceURI, String localName, - String qName) throws SAXException { - // - // if then - // create TargetHistory object and add to hashtable - // if corresponding output file exists and - // has the same timestamp - // - if (qName.equals("target")) { - if (config != null && output != null) { - File existingFile = new File(baseDir, output); - // - // if the corresponding files doesn't exist or has a - // different - // modification time, then discard this record - if (existingFile.exists()) { - long existingLastModified = existingFile.lastModified(); - // - // would have expected exact time stamps - // but have observed slight differences - // in return value for multiple evaluations of - // lastModified(). Check if times are within - // a second - long diff = outputLastModified - existingLastModified; - if (diff >= -500 && diff <= 500) { - SourceHistory[] sourcesArray = new SourceHistory[sources - .size()]; - sources.copyInto(sourcesArray); - TargetHistory targetHistory = new TargetHistory( - config, output, outputLastModified, - sourcesArray); - history.put(output, targetHistory); - } - } - } - output = null; - sources.setSize(0); - } else { - // - // reset config so targets not within a processor element - // don't pick up a previous processors signature - // - if (qName.equals("processor")) { - config = null; - } - } - } - /** - * startElement handler - */ - public void startElement(String namespaceURI, String localName, - String qName, Attributes atts) throws SAXException { - // - // if sourceElement - // - if (qName.equals("source")) { - String sourceFile = atts.getValue("file"); - long sourceLastModified = Long.parseLong(atts - .getValue("lastModified"), 16); - sources.addElement(new SourceHistory(sourceFile, - sourceLastModified)); - } else { - // - // if element, - // grab file name and lastModified values - // TargetHistory object will be created in endElement - // - if (qName.equals("target")) { - sources.setSize(0); - output = atts.getValue("file"); - outputLastModified = Long.parseLong(atts - .getValue("lastModified"), 16); - } else { - // - // if element, - // grab signature attribute - // - if (qName.equals("processor")) { - config = atts.getValue("signature"); - } - } - } - } - } - /** Flag indicating whether the cache should be written back to file. */ - private boolean dirty; - /** - * a hashtable of TargetHistory's keyed by output file name - */ - private final Hashtable history = new Hashtable(); - /** The file the cache was loaded from. */ - private/* final */File historyFile; - private/* final */File outputDir; - private String outputDirPath; - /** - * Creates a target history table from history.xml in the output directory, - * if it exists. Otherwise, initializes the history table empty. - * - * @param task - * task used for logging history load errors - * @param outputDir - * output directory for task - */ - public TargetHistoryTable(CCTask task, File outputDir) - throws BuildException { - if (outputDir == null) { - throw new NullPointerException("outputDir"); - } - if (!outputDir.isDirectory()) { - throw new BuildException("Output directory is not a directory"); - } - if (!outputDir.exists()) { - throw new BuildException("Output directory does not exist"); - } - this.outputDir = outputDir; - try { - outputDirPath = outputDir.getCanonicalPath(); - } catch (IOException ex) { - outputDirPath = outputDir.toString(); - } - // - // load any existing history from file - // suppressing any records whose corresponding - // file does not exist, is zero-length or - // last modified dates differ - historyFile = new File(outputDir, "history.xml"); - if (historyFile.exists()) { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setValidating(false); - try { - SAXParser parser = factory.newSAXParser(); - parser.parse(historyFile, new TargetHistoryTableHandler( - history, outputDir)); - } catch (Exception ex) { - // - // a failure on loading this history is not critical - // but should be logged - task.log("Error reading history.xml: " + ex.toString()); - } - } else { - // - // create empty history file for identifying new files by last - // modified - // timestamp comperation (to compare with - // System.currentTimeMillis() don't work on Unix, because it - // maesure timestamps only in seconds). - // - try { - FileOutputStream outputStream = new FileOutputStream( - historyFile); - byte[] historyElement = new byte[]{0x3C, 0x68, 0x69, 0x73, - 0x74, 0x6F, 0x72, 0x79, 0x2F, 0x3E}; - outputStream.write(historyElement); - outputStream.close(); - } catch (IOException ex) { - throw new BuildException("Can't create history file", ex); - } - } - } - public void commit() throws IOException { - // - // if not dirty, no need to update file - // - if (dirty) { - // - // build (small) hashtable of config id's in history - // - Hashtable configs = new Hashtable(20); - Enumeration elements = history.elements(); - while (elements.hasMoreElements()) { - TargetHistory targetHistory = (TargetHistory) elements - .nextElement(); - String configId = targetHistory.getProcessorConfiguration(); - if (configs.get(configId) == null) { - configs.put(configId, configId); - } - } - FileOutputStream outStream = new FileOutputStream(historyFile); - OutputStreamWriter outWriter; - // - // early VM's don't support UTF-8 encoding - // try and fallback to the default encoding - // otherwise - String encodingName = "UTF-8"; - try { - outWriter = new OutputStreamWriter(outStream, "UTF-8"); - } catch (UnsupportedEncodingException ex) { - outWriter = new OutputStreamWriter(outStream); - encodingName = outWriter.getEncoding(); - } - BufferedWriter writer = new BufferedWriter(outWriter); - writer.write("\n"); - writer.write("\n"); - StringBuffer buf = new StringBuffer(200); - Enumeration configEnum = configs.elements(); - while (configEnum.hasMoreElements()) { - String configId = (String) configEnum.nextElement(); - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - elements = history.elements(); - while (elements.hasMoreElements()) { - TargetHistory targetHistory = (TargetHistory) elements - .nextElement(); - if (targetHistory.getProcessorConfiguration().equals( - configId)) { - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - SourceHistory[] sourceHistories = targetHistory - .getSources(); - for (int i = 0; i < sourceHistories.length; i++) { - buf.setLength(0); - buf.append(" \n"); - writer.write(buf.toString()); - } - writer.write(" \n"); - } - } - writer.write(" \n"); - } - writer.write("\n"); - writer.close(); - dirty = false; - } - } - public TargetHistory get(String configId, String outputName) { - TargetHistory targetHistory = (TargetHistory) history.get(outputName); - if (targetHistory != null) { - if (!targetHistory.getProcessorConfiguration().equals(configId)) { - targetHistory = null; - } - } - return targetHistory; - } - public void markForRebuild(Hashtable targetInfos) { - Enumeration targetInfoEnum = targetInfos.elements(); - while (targetInfoEnum.hasMoreElements()) { - markForRebuild((TargetInfo) targetInfoEnum.nextElement()); - } - } - public void markForRebuild(TargetInfo targetInfo) { - // - // if it must already be rebuilt, no need to check further - // - if (!targetInfo.getRebuild()) { - TargetHistory history = get(targetInfo.getConfiguration() - .toString(), targetInfo.getOutput().getName()); - if (history == null) { - targetInfo.mustRebuild(); - } else { - SourceHistory[] sourceHistories = history.getSources(); - File[] sources = targetInfo.getSources(); - if (sourceHistories.length != sources.length) { - targetInfo.mustRebuild(); - } else { - for (int i = 0; i < sourceHistories.length - && !targetInfo.getRebuild(); i++) { - // - // relative file name, must absolutize it on output - // directory - // - boolean foundMatch = false; - String historySourcePath = sourceHistories[i] - .getAbsolutePath(outputDir); - for (int j = 0; j < sources.length; j++) { - File targetSource = sources[j]; - String targetSourcePath = targetSource - .getAbsolutePath(); - if (targetSourcePath.equals(historySourcePath)) { - foundMatch = true; - if (targetSource.lastModified() != sourceHistories[i] - .getLastModified()) { - targetInfo.mustRebuild(); - break; - } - } - } - if (!foundMatch) { - targetInfo.mustRebuild(); - } - } - } - } - } - } - public void update(ProcessorConfiguration config, String[] sources) { - String configId = config.getIdentifier(); - String[] onesource = new String[1]; - String outputName; - for (int i = 0; i < sources.length; i++) { - onesource[0] = sources[i]; - outputName = config.getOutputFileName(sources[i]); - update(configId, outputName, onesource); - } - } - private void update(String configId, String outputName, String[] sources) { - File outputFile = new File(outputDir, outputName); - // - // if output file doesn't exist or predates the start of the - // compile step (most likely a compilation error) then - // do not write add a history entry - // - if (outputFile.exists() - && outputFile.lastModified() >= historyFile.lastModified()) { - dirty = true; - history.remove(outputName); - SourceHistory[] sourceHistories = new SourceHistory[sources.length]; - for (int i = 0; i < sources.length; i++) { - File sourceFile = new File(sources[i]); - long lastModified = sourceFile.lastModified(); - String relativePath = CUtil.getRelativePath(outputDirPath, - sourceFile); - sourceHistories[i] = new SourceHistory(relativePath, - lastModified); - } - TargetHistory newHistory = new TargetHistory(configId, outputName, - outputFile.lastModified(), sourceHistories); - history.put(outputName, newHistory); - } - } - public void update(TargetInfo linkTarget) { - File outputFile = linkTarget.getOutput(); - String outputName = outputFile.getName(); - // - // if output file doesn't exist or predates the start of the - // compile or link step (most likely a compilation error) then - // do not write add a history entry - // - if (outputFile.exists() - && outputFile.lastModified() >= historyFile.lastModified()) { - dirty = true; - history.remove(outputName); - SourceHistory[] sourceHistories = linkTarget - .getSourceHistories(outputDirPath); - TargetHistory newHistory = new TargetHistory(linkTarget - .getConfiguration().getIdentifier(), outputName, outputFile - .lastModified(), sourceHistories); - history.put(outputName, newHistory); - } - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java deleted file mode 100644 index 3a9dd14b16..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; - -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; -/** - * A description of a file built or to be built - */ -public final class TargetInfo { - private static final File[] emptyFileArray = new File[0]; - private/* final */ProcessorConfiguration config; - private/* final */File output; - private boolean rebuild; - private/* final */File[] sources; - private File[] sysSources; - public TargetInfo(ProcessorConfiguration config, File[] sources, - File[] sysSources, File output, boolean rebuild) { - if (config == null) { - throw new NullPointerException("config"); - } - if (sources == null) { - throw new NullPointerException("sources"); - } - if (output == null) { - throw new NullPointerException("output"); - } - this.config = config; - this.sources = (File[]) sources.clone(); - if (sysSources == null) { - this.sysSources = emptyFileArray; - } else { - this.sysSources = (File[]) sysSources.clone(); - } - this.output = output; - this.rebuild = rebuild; - // - // if the output doesn't exist, must rebuild it - // - if (!output.exists()) { - rebuild = true; - } - } - public String[] getAllSourcePaths() { - String[] paths = new String[sysSources.length + sources.length]; - for (int i = 0; i < sysSources.length; i++) { - paths[i] = sysSources[i].toString(); - } - int offset = sysSources.length; - for (int i = 0; i < sources.length; i++) { - paths[offset + i] = sources[i].toString(); - } - return paths; - } - public File[] getAllSources() { - File[] allSources = new File[sources.length + sysSources.length]; - for (int i = 0; i < sysSources.length; i++) { - allSources[i] = sysSources[i]; - } - int offset = sysSources.length; - for (int i = 0; i < sources.length; i++) { - allSources[i + offset] = sources[i]; - } - return allSources; - } - public ProcessorConfiguration getConfiguration() { - return config; - } - public File getOutput() { - return output; - } - public boolean getRebuild() { - return rebuild; - } - /** - * Returns an array of SourceHistory objects (contains relative path and - * last modified time) for the source[s] of this target - */ - public SourceHistory[] getSourceHistories(String basePath) { - SourceHistory[] histories = new SourceHistory[sources.length]; - for (int i = 0; i < sources.length; i++) { - String relativeName = CUtil.getRelativePath(basePath, sources[i]); - long lastModified = sources[i].lastModified(); - histories[i] = new SourceHistory(relativeName, lastModified); - } - return histories; - } - public String[] getSourcePaths() { - String[] paths = new String[sources.length]; - for (int i = 0; i < sources.length; i++) { - paths[i] = sources[i].toString(); - } - return paths; - } - public File[] getSources() { - File[] clone = (File[]) sources.clone(); - return clone; - } - public String[] getSysSourcePaths() { - String[] paths = new String[sysSources.length]; - for (int i = 0; i < sysSources.length; i++) { - paths[i] = sysSources[i].toString(); - } - return paths; - } - public File[] getSysSources() { - File[] clone = (File[]) sysSources.clone(); - return clone; - } - public void mustRebuild() { - this.rebuild = true; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java deleted file mode 100644 index 2574e1561f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; -import java.io.File; -import java.util.Hashtable; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.LinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration; - -import org.apache.tools.ant.BuildException; -/** - * This class matches each visited file with an appropriate compiler - * - * @author Curt Arnold - */ -public final class TargetMatcher implements FileVisitor { - private LinkerConfiguration linker; - private Vector objectFiles; - private File outputDir; - private ProcessorConfiguration[] processors; - private final File sourceFiles[] = new File[1]; - private Hashtable targets; - private CCTask task; - public TargetMatcher(CCTask task, File outputDir, - ProcessorConfiguration[] processors, LinkerConfiguration linker, - Vector objectFiles, Hashtable targets) { - this.task = task; - this.outputDir = outputDir; - this.processors = processors; - this.targets = targets; - this.linker = linker; - this.objectFiles = objectFiles; - } - public void visit(File parentDir, String filename) throws BuildException { - // - // see if any processor wants to bid - // on this one - ProcessorConfiguration selectedCompiler = null; - int bid = 0; - if (processors != null) { - for (int k = 0; k < processors.length; k++) { - int newBid = processors[k].bid(filename); - if (newBid > bid) { - bid = newBid; - selectedCompiler = processors[k]; - } - } - } - // - // no processor interested in file - // log diagnostic message - if (bid <= 0) { - if (linker != null) { - int linkerbid = linker.bid(filename); - if (linkerbid > 0) { - File objFile = new File(parentDir, filename); - objectFiles.addElement(objFile); - if (linkerbid == 1) { - task.log("Unrecognized file type " + objFile.toString() - + " will be passed to linker"); - } - } - } - } else { - // - // get output file name - // - String outputFileName = selectedCompiler - .getOutputFileName(filename); - // - // if there is some output for this task - // (that is a source file and not an header file) - // - if (outputFileName != null) { - sourceFiles[0] = new File(parentDir, filename); - // - // see if the same output file has already been registered - // - TargetInfo previousTarget = (TargetInfo) targets - .get(outputFileName); - if (previousTarget == null) { - targets.put(outputFileName, new TargetInfo( - selectedCompiler, sourceFiles, null, new File( - outputDir, outputFileName), - selectedCompiler.getRebuild())); - } else { - if (!previousTarget.getSources()[0].equals(sourceFiles[0])) { - StringBuffer builder = new StringBuffer( - "Output filename conflict: "); - builder.append(outputFileName); - builder.append(" would be produced from "); - builder.append(previousTarget.getSources()[0] - .toString()); - builder.append(" and "); - builder.append(filename); - throw new BuildException(builder.toString()); - } - } - } - } - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java deleted file mode 100644 index f55b976fef..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks; - -import java.io.IOException; -import java.io.Writer; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Reference; - -/** - * Version Information. (Non-functional prototype) - * - */ -public class VersionInfo extends DataType { - /** - * if property. - */ - private String ifCond; - /** - * unless property. - */ - private String unlessCond; - - /** - * extends property. - */ - private String extendsId; - - /** - * file version. - * - */ - private String fileVersion; - /** - * Product version. - * - */ - private String productVersion; - /** - * file language. - * - */ - private String language; - - /** - * comments. - * - */ - private String fileComments; - /** - * Company name. - * - */ - private String companyName; - /** - * Description. - * - */ - private String description; - /** - * internal name. - */ - private String internalName; - /** - * legal copyright. - * - */ - private String legalCopyright; - /** - * legal trademark. - * - */ - private String legalTrademark; - /** - * original filename. - * - */ - private String originalFilename; - /** - * private build. - * - */ - private String privateBuild; - /** - * product name. - * - */ - private String productName; - /** - * Special build - */ - private String specialBuild; - /** - * compatibility version - * - */ - private String compatibilityVersion; - - - /** - * Constructor. - * - */ - public VersionInfo() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - * - * @exception BuildException - * throws build exception if name is not set - */ - public final boolean isActive() throws BuildException { - return CUtil.isActive(getProject(), ifCond, unlessCond); - } - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - /** - * Sets the name of a version info that this info extends. - * - * @param id - * id - */ - public void setExtends(String id) { - extendsId = id; - } - - - /** - * Sets the property name for the 'if' condition. - * - * The define will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public final void setIf(String propName) { - ifCond = propName; - } - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. If - * specified, no other attributes should be specified. - * - */ - public void setRefid(Reference r) throws BuildException { - super.setRefid(r); - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public final void setUnless(String propName) { - unlessCond = propName; - } - /** - * Gets file version. - * @return file version, may be null. - * - */ - public String getFileversion() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getFileversion(); - } - return fileVersion; - } - /** - * Gets Product version. - * @return product version, may be null - */ - public String getProductversion() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getProductversion(); - } - return productVersion; - } - /** - * Gets compatibility version. - * @return compatibility version, may be null - */ - public String getCompatibilityversion() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getCompatibilityversion(); - } - return compatibilityVersion; - } - /** - * Gets file language, should be an IETF RFC 3066 identifier, for example, en-US. - * @return language, may be null. - */ - public String getLanguage() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getLanguage(); - } - return language; - } - - /** - * Gets comments. - * @return comments, may be null. - */ - public String getFilecomments() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getFilecomments(); - } - return fileComments; - } - /** - * Gets Company name. - * @return company name, may be null. - */ - public String getCompanyname() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getCompanyname(); - } - return companyName; - } - /** - * Gets Description. - * @return description, may be null. - */ - public String getDescription() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getDescription(); - } - return description; - } - /** - * Gets internal name. - * @return internal name, may be null. - */ - public String getInternalname() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getInternalname(); - } - return internalName; - } - /** - * Gets legal copyright. - * @return legal copyright, may be null. - */ - public String getLegalcopyright() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getLegalcopyright(); - } - return legalCopyright; - } - /** - * Gets legal trademark. - * @return legal trademark, may be null; - */ - public String getLegaltrademark() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getLegaltrademark(); - } - return legalTrademark; - } - /** - * Gets original filename. - * @return original filename, may be null. - */ - public String getOriginalfilename() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getOriginalfilename(); - } - return originalFilename; - } - /** - * Gets private build. - * @return private build, may be null. - */ - public String getPrivatebuild() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getPrivatebuild(); - } - return privateBuild; - } - /** - * Gets product name. - * @return product name, may be null. - */ - public String getProductname() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getProductname(); - } - return productName; - } - /** - * Special build - * @return special build, may be null. - */ - public String getSpecialbuild() { - if (isReference()) { - VersionInfo refVersion = (VersionInfo) - getCheckedRef(VersionInfo.class, - "VersionInfo"); - return refVersion.getSpecialbuild(); - } - return specialBuild; - } - - /** - * Sets file version. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setFileversion(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - fileVersion = value; - } - /** - * Sets product version. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setProductversion(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - productVersion = value; - } - /** - * Sets compatibility version. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setCompatibilityversion(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - compatibilityVersion = value; - } - /** - * Sets language. - * @param value new value, should be an IETF RFC 3066 language identifier. - * @throws BuildException if specified with refid - */ - public void setLanguage(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - language = value; - } - /** - * Sets comments. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setFilecomments(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - fileComments = value; - } - - /** - * Sets company name. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setCompanyname(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - companyName = value; - } - - - /** - * Sets internal name. Internal name will automatically be - * specified from build step, only set this value if - * intentionally overriding that value. - * - * @param value new value - * @throws BuildException if specified with refid - */ - public void setInternalname(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - internalName = value; - } - - /** - * Sets legal copyright. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setLegalcopyright(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - legalCopyright = value; - } - /** - * Sets legal trademark. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setLegaltrademark(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - legalTrademark = value; - } - /** - * Sets original name. Only set this value if - * intentionally overriding the value from the build set. - * - * @param value new value - * @throws BuildException if specified with refid - */ - public void setOriginalfilename(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - originalFilename = value; - } - /** - * Sets private build. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setPrivatebuild(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - privateBuild = value; - } - /** - * Sets product name. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setProductname(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - productName= value; - } - /** - * Sets private build. - * @param value new value - * @throws BuildException if specified with refid - */ - public void setSpecialbuild(String value) throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - specialBuild = value; - } - - /** - * Writes windows resource - * @param writer writer, may not be null. - * @param project project, may not be null - * @param executableName name of executable - */ - public void writeResource(final Writer writer, - final Project p, - final String executableName) throws IOException { - // TODO: - - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java deleted file mode 100644 index 78489b8c31..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.arm; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.OptimizationEnum; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the ARM C Compilers - * - * See Doc No: ARM DUI 0151A, Issued: Nov 2001 at - * http://www.arm.com/arm/User_Guides?OpenDocument - * - * @author Curt Arnold - * - */ -public class ADSCCompiler extends CommandLineCCompiler { - /** - * Header file extensions - */ - private static final String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - /** - * Source file extensions - */ - private static final String[] sourceExtensions = new String[]{".c", ".cc", - ".cpp", ".cxx", ".c++"}; - /** - * Singleton for ARM 32-bit C compiler - */ - private static final ADSCCompiler armcc = new ADSCCompiler("armcc", false, - null); - /** - * Singleton for ARM 32-bit C++ compiler - */ - private static final ADSCCompiler armcpp = new ADSCCompiler("armcpp", - false, null); - /** - * Singleton for ARM 16-bit C compiler - */ - private static final ADSCCompiler tcc = new ADSCCompiler("tcc", false, null); - /** - * Singleton for ARM 16-bit C++ compiler - */ - private static final ADSCCompiler tcpp = new ADSCCompiler("tcpp", false, - null); - /** - * Singleton for ARM 32-bit C compiler - */ - public static ADSCCompiler getArmCC() { - return armcc; - } - /** - * Singleton for ARM 32-bit C++ compiler - */ - public static ADSCCompiler getArmCpp() { - return armcpp; - } - /** - * Singleton for ARM 16-bit C compiler - */ - public static ADSCCompiler getThumbCC() { - return tcpp; - } - /** - * Singleton for ARM 16-bit C++ compiler - */ - public static ADSCCompiler getThumbCpp() { - return tcpp; - } - private static void quoteFile(StringBuffer buf, String outPath) { - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - } - /** - * Private constructor - * - * @param command - * executable name - * @param newEnvironment - * Change environment - * @param env - * New environment - */ - private ADSCCompiler(String command, boolean newEnvironment, Environment env) { - super(command, "-vsn", sourceExtensions, headerExtensions, ".o", false, - null, newEnvironment, env); - } - /** - * Adds command switches for generic configuration options - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addImpliedArgs(java.util.Vector, - * boolean, boolean, boolean, - * net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - protected void addImpliedArgs(Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - if (debug) { - args.addElement("-g"); - } - // - // didn't see anything about producing - // anything other than executables in the docs - if (linkType.isExecutable()) { - } else if (linkType.isSharedLibrary()) { - } - } - /** - * Adds flags that customize the warnings reported - * - * Compiler does not appear to have warning levels but ability to turn off - * specific errors by explicit switches, could fabricate levels by - * prioritizing errors. - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addWarningSwitch(java.util.Vector, - * int) - */ - protected void addWarningSwitch(Vector args, int warnings) { - } - /** - * Add command line options for preprocessor macro - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getDefineSwitch(java.lang.StringBuffer, - * java.lang.String, java.lang.String) - */ - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("-D"); - buffer.append(define); - if (value != null) { - buffer.append('='); - buffer.append(value); - } - } - /** - * ARMINC environment variable contains the default include path - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getEnvironmentIncludePath() - */ - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("ARMINC", ";"); - } - /** - * Returns command line option to specify include directory - * - */ - protected String getIncludeDirSwitch(String source) { - StringBuffer buf = new StringBuffer("-I"); - quoteFile(buf, source); - return buf.toString(); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return ADSLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return ADSLinker.getDllInstance(); - } - return ADSLinker.getInstance(); - } - /** - * Maximum command line length - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getMaximumCommandLength() - */ - public int getMaximumCommandLength() { - return 1000; - } - /* - * Adds command to undefine preprocessor macro - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getUndefineSwitch(java.lang.StringBuffer, - * java.lang.String) - */ - protected void getUndefineSwitch(StringBuffer buffer, String define) { - buffer.append("-U"); - buffer.append(define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java deleted file mode 100644 index 0ff53d309f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.arm; - -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for ARM Librarian - * - * @author Curt Arnold - */ -public class ADSLibrarian extends CommandLineLinker { - - private static final ADSLibrarian instance = new ADSLibrarian(); - - public static ADSLibrarian getInstance() { - return instance; - } - - private ADSLibrarian() - { - super("armar",null, - new String[] { ".o" }, new String[0], ".lib", false, null); - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long, java.util.Vector) - */ - protected void addBase(long base, Vector args) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean, java.util.Vector) - */ - protected void addFixed(Boolean fixed, Vector args) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean, net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector) - */ - protected void addImpliedArgs( - boolean debug, - LinkType linkType, - Vector args, - Boolean defaultflag) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean, java.util.Vector) - */ - protected void addIncremental(boolean incremental, Vector args) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean, java.util.Vector) - */ - protected void addMap(boolean map, Vector args) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int, java.util.Vector) - */ - protected void addStack(int stack, Vector args) { - // TODO Auto-generated method stub - - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String) - */ - protected String getCommandFileSwitch(String commandFile) { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath() - */ - public File[] getLibraryPath() { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[]) - */ - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return new String[0]; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType linkType) { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength() - */ - protected int getMaximumCommandLength() { - // TODO Auto-generated method stub - return 0; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String) - */ - protected String[] getOutputFileSwitch(String outputFile) { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive() - */ - public boolean isCaseSensitive() { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java deleted file mode 100644 index 042eb217ec..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.arm; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for the ARM Linker - * - * @author CurtA - */ -public class ADSLinker extends CommandLineLinker { - private static final ADSLinker dllInstance = new ADSLinker(".o"); - private static final ADSLinker instance = new ADSLinker(".axf"); - public static ADSLinker getDllInstance() { - return dllInstance; - } - public static ADSLinker getInstance() { - return instance; - } - private ADSLinker(String outputSuffix) { - super("armlink", "-vsn", new String[]{".o", ".lib", ".res"}, - new String[]{".map", ".pdb", ".lnk"}, outputSuffix, false, null); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long, - * java.util.Vector) - */ - protected void addBase(long base, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean, - * java.util.Vector) - */ - protected void addFixed(Boolean fixed, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean, - * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector) - */ - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (debug) { - args.addElement("-debug"); - } - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean, - * java.util.Vector) - */ - protected void addIncremental(boolean incremental, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean, - * java.util.Vector) - */ - protected void addMap(boolean map, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int, - * java.util.Vector) - */ - protected void addStack(int stack, Vector args) { - // TODO Auto-generated method stub - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - // TODO Auto-generated method stub - - } - - /** - * May have to make this String array return - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String) - */ - protected String getCommandFileSwitch(String commandFile) { - return "-via" + commandFile; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath() - */ - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("ARMLIB", ";"); - } - /* - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[]) - */ - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - // - // TODO: looks like bad extension - // - return new String[]{".o"}; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType linkType) { - return this; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength() - */ - protected int getMaximumCommandLength() { - return 1024; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String) - */ - protected String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-output", outputFile}; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive() - */ - public boolean isCaseSensitive() { - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java deleted file mode 100644 index 3304c9a860..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.PrecompilingCommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Borland(r) C/C++ compiler. - * - * @author Curt Arnold - */ -public class BorlandCCompiler extends PrecompilingCommandLineCCompiler { - private static final String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - private static final String[] sourceExtensions = new String[]{".c", ".cc", - ".cpp", ".cxx", ".c++"}; - private static final BorlandCCompiler instance = new BorlandCCompiler( - false, null); - public static BorlandCCompiler getInstance() { - return instance; - } - private BorlandCCompiler(boolean newEnvironment, Environment env) { - super("bcc32", "--version", sourceExtensions, headerExtensions, ".obj", false, - null, newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - args.addElement("-c"); - // - // turn off compiler autodependency since - // we do it ourselves - args.addElement("-X"); - if (exceptions) { - args.addElement("-x"); - } else { - args.addElement("-x-"); - } - if (multithreaded) { - args.addElement("-tWM"); - } - if (debug) { - args.addElement("-Od"); - args.addElement("-v"); - } else { - if (optimization != null) { - if (optimization.isSpeed()) { - args.addElement("-O1"); - } else { - if (optimization.isSpeed()) { - args.addElement("-O2"); - } else { - if (optimization.isNoOptimization()) { - args.addElement("-Od"); - } - } - } - } - } - if (rtti != null && !rtti.booleanValue()) { - args.addElement("-RT-"); - } - } - protected void addWarningSwitch(Vector args, int level) { - BorlandProcessor.addWarningSwitch(args, level); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new BorlandCCompiler(newEnvironment, env); - } - return this; - } - protected CompilerConfiguration createPrecompileGeneratingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude) { - String[] additionalArgs = new String[]{"-H=" + lastInclude, "-Hc"}; - return new CommandLineCompilerConfiguration(baseConfig, additionalArgs, - null, true); - } - protected CompilerConfiguration createPrecompileUsingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude, String[] exceptFiles) { - String[] additionalArgs = new String[]{"-Hu"}; - return new CommandLineCompilerConfiguration(baseConfig, additionalArgs, - exceptFiles, false); - } - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - BorlandProcessor.getDefineSwitch(buffer, define, value); - } - protected File[] getEnvironmentIncludePath() { - return BorlandProcessor.getEnvironmentPath("bcc32", 'I', - new String[]{"..\\include"}); - } - protected String getIncludeDirSwitch(String includeDir) { - return BorlandProcessor.getIncludeDirSwitch("-I", includeDir); - } - public Linker getLinker(LinkType type) { - return BorlandLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - protected void getUndefineSwitch(StringBuffer buffer, String define) { - BorlandProcessor.getUndefineSwitch(buffer, define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java deleted file mode 100644 index 19daedd203..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.IOException; -import java.io.Reader; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.parser.AbstractParser; -import net.sf.antcontrib.cpptasks.parser.AbstractParserState; -import net.sf.antcontrib.cpptasks.parser.LetterState; -import net.sf.antcontrib.cpptasks.parser.WhitespaceOrLetterState; -/** - * A parser that paths from a borland cfg file - * - * @author Curt Arnold - */ -public final class BorlandCfgParser extends AbstractParser { - private AbstractParserState newLineState; - private final Vector path = new Vector(); - /** - * - * - */ - public BorlandCfgParser(char switchChar) { - // - // a quoted path (-I"some path") - // doesn't end till a close quote and will be abandoned - // if a new line is encountered first - // - AbstractParserState quote = new CfgFilenameState(this, new char[]{'"'}); - // - // an unquoted path (-Ic:\borland\include) - // ends at the first space or new line - AbstractParserState unquote = new CfgFilenameState(this, new char[]{ - ' ', '\n', '\r'}); - AbstractParserState quoteBranch = new QuoteBranchState(this, quote, - unquote); - AbstractParserState toNextSwitch = new ConsumeToSpaceOrNewLine(this); - AbstractParserState switchState = new LetterState(this, switchChar, - quoteBranch, toNextSwitch); - newLineState = new WhitespaceOrLetterState(this, '-', switchState); - } - public void addFilename(String include) { - path.addElement(include); - } - public AbstractParserState getNewLineState() { - return newLineState; - } - public String[] parsePath(Reader reader) throws IOException { - path.setSize(0); - super.parse(reader); - String[] retval = new String[path.size()]; - path.copyInto(retval); - return retval; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java deleted file mode 100644 index 5fb3eb0827..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.File; -import java.io.IOException; -import java.util.Vector; -import org.apache.tools.ant.BuildException; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for the Borland(r) tlib Librarian - * - * @author Curt Arnold - */ -public class BorlandLibrarian extends CommandLineLinker { - private static final BorlandLibrarian instance = new BorlandLibrarian(); - public static BorlandLibrarian getInstance() { - return instance; - } - private BorlandLibrarian() { - super("tlib", "--version", new String[]{".obj"}, new String[0], ".lib", false, - null); - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - } - protected void addIncremental(boolean incremental, Vector args) { - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - protected String getCommandFileSwitch(String cmdFile) { - return BorlandProcessor.getCommandFileSwitch(cmdFile); - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return BorlandProcessor.getLibraryPatterns(libnames, libType); - } - public Linker getLinker(LinkType type) { - return BorlandLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - public String[] getOutputFileSwitch(String outFile) { - return BorlandProcessor.getOutputFileSwitch(outFile); - } - public boolean isCaseSensitive() { - return BorlandProcessor.isCaseSensitive(); - } - /** - * Gets identifier for the linker. - * - * TLIB will lockup when attempting to get version - * information. Since the Librarian version isn't critical - * just return a stock response. - */ - public String getIdentifier() { - return "TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation"; - } - - /** - * Prepares argument list for exec command. - * - * @param outputFile - * linker output file - * @param sourceFiles - * linker input files (.obj, .o, .res) - * @param args - * linker arguments - * @return arguments for runTask - */ - protected String[] prepareArguments( - CCTask task, - String outputDir, - String outputName, - String[] sourceFiles, - CommandLineLinkerConfiguration config) { - String[] preargs = config.getPreArguments(); - String[] endargs = config.getEndArguments(); - StringBuffer buf = new StringBuffer(); - Vector execArgs = new Vector(preargs.length + endargs.length + 10 - + sourceFiles.length); - - execArgs.addElement(this.getCommand()); - String outputFileName = new File(outputDir, outputName).toString(); - execArgs.addElement(quoteFilename(buf, outputFileName)); - - for (int i = 0; i < preargs.length; i++) { - execArgs.addElement(preargs[i]); - } - - // - // add a place-holder for page size - // - int pageSizeIndex = execArgs.size(); - execArgs.addElement(null); - - int objBytes = 0; - - for (int i = 0; i < sourceFiles.length; i++) { - String last4 = sourceFiles[i] - .substring(sourceFiles[i].length() - 4).toLowerCase(); - if (last4.equals(".def")) { - } else { - if (last4.equals(".res")) { - } else { - if (last4.equals(".lib")) { - } else { - execArgs.addElement("+" + quoteFilename(buf, sourceFiles[i])); - objBytes += new File(sourceFiles[i]).length(); - } - } - } - } - - for (int i = 0; i < endargs.length; i++) { - execArgs.addElement(endargs[i]); - } - - String[] execArguments = new String[execArgs.size()]; - execArgs.copyInto(execArguments); - - int minPageSize = objBytes >> 16; - int pageSize = 0; - for(int i = 4; i <= 15; i++) { - pageSize = 1 << i; - if (pageSize > minPageSize) break; - } - execArguments[pageSizeIndex] = "/P" + Integer.toString(pageSize); - - return execArguments; - } - - /** - * Prepares argument list to execute the linker using a response file. - * - * @param outputFile - * linker output file - * @param args - * output of prepareArguments - * @return arguments for runTask - */ - protected String[] prepareResponseFile(File outputFile, String[] args) - throws IOException { - return BorlandProcessor.prepareResponseFile(outputFile, args, " & \n"); - } - - /** - * Builds a library - * - */ - public void link(CCTask task, - File outputFile, - String[] sourceFiles, - CommandLineLinkerConfiguration config) - throws BuildException - { - // - // delete any existing library - outputFile.delete(); - // - // build a new library - super.link(task, outputFile, sourceFiles, config); - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java deleted file mode 100644 index f425c528bd..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for the Borland(r) ilink32 linker - * - * @author Curt Arnold - */ -public final class BorlandLinker extends CommandLineLinker { - private static final BorlandLinker dllLinker = new BorlandLinker(".dll"); - private static final BorlandLinker instance = new BorlandLinker(".exe"); - public static BorlandLinker getInstance() { - return instance; - } - private BorlandLinker(String outputSuffix) { - super("ilink32", "-r", new String[]{".obj", ".lib", ".res"}, - new String[]{".map", ".pdb", ".lnk"}, outputSuffix, false, null); - } - protected void addBase(long base, Vector args) { - if (base >= 0) { - String baseAddr = Long.toHexString(base); - args.addElement("-b:" + baseAddr); - } - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (linkType.isExecutable()) { - if (linkType.isSubsystemConsole()) { - args.addElement("/ap"); - } else { - if (linkType.isSubsystemGUI()) { - args.addElement("/Tpe"); - } - } - } - if (linkType.isSharedLibrary()) { - args.addElement("/Tpd"); - args.addElement("/Gi"); - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - protected void addMap(boolean map, Vector args) { - if (!map) { - args.addElement("-x"); - } - } - protected void addStack(int stack, Vector args) { - if (stack >= 0) { - String stackStr = Integer.toHexString(stack); - args.addElement("-S:" + stackStr); - } - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public String getIdentifier() { - return "Borland Linker"; - } - public File[] getLibraryPath() { - return BorlandProcessor.getEnvironmentPath("ilink32", 'L', - new String[]{"..\\lib"}); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return BorlandProcessor.getLibraryPatterns(libnames, libType); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return BorlandLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } - public int getMaximumCommandLength() { - return 1024; - } - public String[] getOutputFileSwitch(String outFile) { - return BorlandProcessor.getOutputFileSwitch(outFile); - } - protected String getStartupObject(LinkType linkType) { - if (linkType.isSharedLibrary()) { - return "c0d32.obj"; - } - if (linkType.isSubsystemGUI()) { - return "c0w32.obj"; - } - if (linkType.isSubsystemConsole()) { - return "c0x32.obj"; - } - return null; - } - public boolean isCaseSensitive() { - return BorlandProcessor.isCaseSensitive(); - } - /** - * Prepares argument list for exec command. - * - * @param outputFile - * linker output file - * @param sourceFiles - * linker input files (.obj, .o, .res) - * @param args - * linker arguments - * @return arguments for runTask - */ - protected String[] prepareArguments( - CCTask task, - String outputDir, - String outputName, - String[] sourceFiles, - CommandLineLinkerConfiguration config) { - String[] preargs = config.getPreArguments(); - String[] endargs = config.getEndArguments(); - Vector execArgs = new Vector(preargs.length + endargs.length + 10 - + sourceFiles.length); - execArgs.addElement(this.getCommand()); - for (int i = 0; i < preargs.length; i++) { - execArgs.addElement(preargs[i]); - } - for (int i = 0; i < endargs.length; i++) { - execArgs.addElement(endargs[i]); - } - // - // see if the input files have any known startup obj files - // - String startup = null; - for (int i = 0; i < sourceFiles.length; i++) { - String filename = new File(sourceFiles[i]).getName().toLowerCase(); - if (startup != null && filename.substring(0, 2).equals("c0") - && filename.substring(3, 5).equals("32") - && filename.substring(filename.length() - 4).equals(".obj")) { - startup = sourceFiles[i]; - } - } - // - // c0w32.obj, c0x32.obj or c0d32.obj depending on - // link type - if (startup == null) { - startup = config.getStartupObject(); - } - execArgs.addElement(startup); - Vector resFiles = new Vector(); - Vector libFiles = new Vector(); - String defFile = null; - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < sourceFiles.length; i++) { - String last4 = sourceFiles[i] - .substring(sourceFiles[i].length() - 4).toLowerCase(); - if (last4.equals(".def")) { - defFile = quoteFilename(buf, sourceFiles[i]); - } else { - if (last4.equals(".res")) { - resFiles.addElement(quoteFilename(buf, sourceFiles[i])); - } else { - if (last4.equals(".lib")) { - libFiles.addElement(quoteFilename(buf, sourceFiles[i])); - } else { - execArgs.addElement(quoteFilename(buf, sourceFiles[i])); - } - } - } - } - // - // output file name - // - String outputFileName = new File(outputDir, outputName).toString(); - execArgs.addElement("," + quoteFilename(buf, outputFileName)); - if (config.getMap()) { - int lastPeriod = outputFileName.lastIndexOf('.'); - String mapName; - if (lastPeriod < outputFileName.length() - 4) { - mapName = outputFileName + ".map"; - } else { - mapName = outputFileName.substring(0, lastPeriod) + ".map"; - } - execArgs.addElement("," + quoteFilename(buf, mapName) + ","); - } else { - execArgs.addElement(",,"); - } - // - // add all the libraries - // - Enumeration libEnum = libFiles.elements(); - boolean hasImport32 = false; - boolean hasCw32 = false; - while (libEnum.hasMoreElements()) { - String libName = (String) libEnum.nextElement(); - if (libName.equalsIgnoreCase("import32.lib")) { - hasImport32 = true; - } - if (libName.equalsIgnoreCase("cw32.lib")) { - hasImport32 = true; - } - execArgs.addElement(quoteFilename(buf, libName)); - } - if (!hasCw32) { - execArgs.addElement(quoteFilename(buf, "cw32.lib")); - } - if (!hasImport32) { - execArgs.addElement(quoteFilename(buf, "import32.lib")); - } - if (defFile == null) { - execArgs.addElement(",,"); - } else { - execArgs.addElement("," + quoteFilename(buf, defFile) + ","); - } - Enumeration resEnum = resFiles.elements(); - while (resEnum.hasMoreElements()) { - String resName = (String) resEnum.nextElement(); - execArgs.addElement(quoteFilename(buf, resName)); - } - String[] execArguments = new String[execArgs.size()]; - execArgs.copyInto(execArguments); - return execArguments; - } - /** - * Prepares argument list to execute the linker using a response file. - * - * @param outputFile - * linker output file - * @param args - * output of prepareArguments - * @return arguments for runTask - */ - protected String[] prepareResponseFile(File outputFile, String[] args) - throws IOException { - return BorlandProcessor.prepareResponseFile(outputFile, args, " + \n"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java deleted file mode 100644 index d53f00cc12..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.util.Vector; -import java.io.FileWriter; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -/** - * A add-in class for Borland(r) processor adapters - * - * - */ -public final class BorlandProcessor { - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w-"); - break; - case 5 : - args.addElement("-w!"); - break; - default : - args.addElement("-w"); - break; - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - quoteFile(buf, cmdFile); - return buf.toString(); - } - public static void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("-D"); - buffer.append(define); - if (value != null && value.length() > 0) { - buffer.append('='); - buffer.append(value); - } - } - /** - * This method extracts path information from the appropriate .cfg file in - * the install directory. - * - * @param toolName - * Tool name, for example, "bcc32", "brc32", "ilink32" - * @param switchChar - * Command line switch character, for example "L" for libraries - * @param defaultRelativePaths - * default paths relative to executable directory - * @return path - */ - public static File[] getEnvironmentPath(String toolName, char switchChar, - String[] defaultRelativePath) { - if (toolName == null) { - throw new NullPointerException("toolName"); - } - if (defaultRelativePath == null) { - throw new NullPointerException("defaultRelativePath"); - } - String[] path = defaultRelativePath; - File exeDir = CUtil.getExecutableLocation(toolName + ".exe"); - if (exeDir != null) { - File cfgFile = new File(exeDir, toolName + ".cfg"); - if (cfgFile.exists()) { - try { - Reader reader = new BufferedReader(new FileReader(cfgFile)); - BorlandCfgParser cfgParser = new BorlandCfgParser( - switchChar); - path = cfgParser.parsePath(reader); - reader.close(); - } catch (IOException ex) { - // - // could be logged - // - } - } - } else { - // - // if can't find the executable, - // assume current directory to resolve relative paths - // - exeDir = new File(System.getProperty("user.dir")); - } - int nonExistant = 0; - File[] resourcePath = new File[path.length]; - for (int i = 0; i < path.length; i++) { - resourcePath[i] = new File(path[i]); - if (!resourcePath[i].isAbsolute()) { - resourcePath[i] = new File(exeDir, path[i]); - } - // - // if any of the entries do not exist or are - // not directories, null them out - if (!(resourcePath[i].exists() && resourcePath[i].isDirectory())) { - resourcePath[i] = null; - nonExistant++; - } - } - // - // if there were some non-existant or non-directory - // entries in the configuration file then - // create a shorter array - if (nonExistant > 0) { - File[] culled = new File[resourcePath.length - nonExistant]; - int index = 0; - for (int i = 0; i < resourcePath.length; i++) { - if (resourcePath[i] != null) { - culled[index++] = resourcePath[i]; - } - } - resourcePath = culled; - } - return resourcePath; - } - public static String getIncludeDirSwitch(String includeOption, - String includeDir) { - StringBuffer buf = new StringBuffer(includeOption); - quoteFile(buf, includeDir); - return buf.toString(); - } - public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length]; - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(libnames[i]); - buf.append(".lib"); - patterns[i] = buf.toString(); - } - return patterns; - } - public static String[] getOutputFileSwitch(String outFile) { - return new String[0]; - } - public static void getUndefineSwitch(StringBuffer buffer, String define) { - buffer.append("-U"); - buffer.append(define); - } - public static boolean isCaseSensitive() { - return false; - } - private static void quoteFile(StringBuffer buf, String outPath) { - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - } - - /** - * Prepares argument list to execute the linker using a response file. - * - * @param outputFile - * linker output file - * @param args - * output of prepareArguments - * @return arguments for runTask - */ - public static String[] prepareResponseFile(File outputFile, - String[] args, - String continuation) - throws IOException { - String baseName = outputFile.getName(); - File commandFile = new File(outputFile.getParent(), baseName + ".lnk"); - FileWriter writer = new FileWriter(commandFile); - for (int i = 1; i < args.length - 1; i++) { - writer.write(args[i]); - // - // if either the current argument ends with - // or next argument starts with a comma then - // don't split the line - if (args[i].endsWith(",") || args[i + 1].startsWith(",")) { - writer.write(' '); - } else { - // - // split the line to make it more readable - // - writer.write(continuation); - } - } - // - // write the last argument - // - if (args.length > 1) { - writer.write(args[args.length - 1]); - } - writer.close(); - String[] execArgs = new String[2]; - execArgs[0] = args[0]; - execArgs[1] = getCommandFileSwitch(commandFile.toString()); - return execArgs; - } - - private BorlandProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java deleted file mode 100644 index 5e8609797e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.Parser; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Borland(r) brc32 Resource compiler. - * - * @author Curt Arnold - */ -public class BorlandResourceCompiler extends CommandLineCompiler { - private static final BorlandResourceCompiler instance = new BorlandResourceCompiler( - false, null); - public static BorlandResourceCompiler getInstance() { - return instance; - } - private BorlandResourceCompiler(boolean newEnvironment, Environment env) { - super("brc32", "c:\\__bogus\\__bogus.rc", new String[]{".rc"}, - new String[]{".h", ".hpp", ".inl"}, ".res", false, null, - newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - // - // compile only - // - args.addElement("-r"); - } - protected void addWarningSwitch(Vector args, int level) { - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new BorlandResourceCompiler(newEnvironment, env); - } - return this; - } - public void compile(CCTask task, File outputDir, String[] sourceFiles, - String[] args, String[] endArgs, boolean relentless, - CommandLineCompilerConfiguration config, ProgressMonitor monitor) - throws BuildException { - super.compile(task, outputDir, sourceFiles, args, endArgs, relentless, - config, monitor); - } - /** - * The include parser for C will work just fine, but we didn't want to - * inherit from CommandLineCCompiler - */ - protected Parser createParser(File source) { - return new CParser(); - } - protected int getArgumentCountPerInputFile() { - return 2; - } - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("-d"); - buffer.append(define); - if (value != null && value.length() > 0) { - buffer.append('='); - buffer.append(value); - } - } - protected File[] getEnvironmentIncludePath() { - return BorlandProcessor.getEnvironmentPath("brc32", 'i', - new String[]{"..\\include"}); - } - protected String getIncludeDirSwitch(String includeDir) { - return BorlandProcessor.getIncludeDirSwitch("-i", includeDir); - } - protected String getInputFileArgument(File outputDir, String filename, - int index) { - if (index == 0) { - String outputFileName = getOutputFileName(filename); - String fullOutputName = new File(outputDir, outputFileName) - .toString(); - return "-fo" + fullOutputName; - } - return filename; - } - public Linker getLinker(LinkType type) { - return BorlandLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - protected int getMaximumInputFilesPerCommand() { - return 1; - } - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - String arg1 = getInputFileArgument(outputDir, inputFile, 0); - String arg2 = getInputFileArgument(outputDir, inputFile, 1); - return arg1.length() + arg2.length() + 2; - } - protected void getUndefineSwitch(StringBuffer buffer, String define) { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java deleted file mode 100644 index a3651d3b25..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import net.sf.antcontrib.cpptasks.parser.AbstractParser; -import net.sf.antcontrib.cpptasks.parser.AbstractParserState; -import net.sf.antcontrib.cpptasks.parser.FilenameState; -public class CfgFilenameState extends FilenameState { - private char terminator; - public CfgFilenameState(AbstractParser parser, char[] terminators) { - super(parser, terminators); - terminator = terminators[0]; - } - public AbstractParserState consume(char ch) { - // - // if a ';' is encountered then - // close the previous filename by sending a - // recognized terminator to our super class - // and stay in this state for more filenamese - if (ch == ';') { - super.consume(terminator); - return this; - } - AbstractParserState newState = super.consume(ch); - // - // change null (consume to end of line) - // to look for next switch character - if (newState == null) { - newState = getParser().getNewLineState(); - } - return newState; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java deleted file mode 100644 index d1dd072cce..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import net.sf.antcontrib.cpptasks.parser.AbstractParser; -import net.sf.antcontrib.cpptasks.parser.AbstractParserState; -public class ConsumeToSpaceOrNewLine extends AbstractParserState { - public ConsumeToSpaceOrNewLine(AbstractParser parser) { - super(parser); - } - public AbstractParserState consume(char ch) { - if (ch == ' ' || ch == '\t' || ch == '\n') { - return getParser().getNewLineState(); - } - return this; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java deleted file mode 100644 index 89724b26e5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.borland; -import net.sf.antcontrib.cpptasks.parser.AbstractParser; -import net.sf.antcontrib.cpptasks.parser.AbstractParserState; -public class QuoteBranchState extends AbstractParserState { - private AbstractParserState quote; - private AbstractParserState unquote; - public QuoteBranchState(AbstractParser parser, AbstractParserState quote, - AbstractParserState unquote) { - super(parser); - this.quote = quote; - this.unquote = unquote; - } - public AbstractParserState consume(char ch) { - if (ch == '"') { - return quote; - } - return unquote.consume(ch); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java deleted file mode 100644 index e1d3deb8b6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compaq; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineFortranCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Compaq(r) Visual Fortran compiler. - * - * @author Curt Arnold - */ -public class CompaqVisualFortranCompiler extends CommandLineFortranCompiler { - private static final CompaqVisualFortranCompiler[] instance = new CompaqVisualFortranCompiler[]{new CompaqVisualFortranCompiler( - false, null)}; - public static CompaqVisualFortranCompiler getInstance() { - return instance[0]; - } - private CompaqVisualFortranCompiler(boolean newEnvironment, Environment env) { - super("DF", null, new String[]{".f90", ".for", ".f"}, new String[]{ - ".i", ".i90", ".fpp", ".inc", ".bak", ".exe"}, ".obj", false, - null, newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - args.addElement("/nologo"); - args.addElement("/compile_only"); - if (debug) { - args.addElement("/debug:full"); - args.addElement("/define:_DEBUG"); - } else { - args.addElement("/debug:none"); - args.addElement("/define:NDEBUG"); - } - if (multithreaded) { - args.addElement("/threads"); - args.addElement("/define:_MT"); - } else { - args.addElement("/nothreads"); - } - boolean staticRuntime = linkType.isStaticRuntime(); - if (staticRuntime) { - args.addElement("/libs:static"); - } else { - args.addElement("/libs:dll"); - } - if (linkType.isSharedLibrary()) { - args.addElement("/dll"); - args.addElement("/define:_DLL"); - } - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("/nowarn"); - break; - case 1 : - break; - case 2 : - break; - case 3 : - args.addElement("/warn:usage"); - break; - case 4 : - args.addElement("/warn:all"); - break; - case 5 : - args.addElement("/warn:errors"); - break; - } - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new CompaqVisualFortranCompiler(newEnvironment, env); - } - return this; - } - protected void getDefineSwitch(StringBuffer buf, String define, String value) { - buf.append("/define:"); - buf.append(define); - if (value != null && value.length() > 0) { - buf.append('='); - buf.append(value); - } - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ";"); - } - protected String getIncludeDirSwitch(String includeDir) { - StringBuffer buf = new StringBuffer("/include:"); - if (includeDir.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(includeDir); - buf.append('"'); - } else { - buf.append(includeDir); - } - return buf.toString(); - } - public Linker getLinker(LinkType type) { - return CompaqVisualFortranLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - protected void getUndefineSwitch(StringBuffer buf, String define) { - buf.append("/undefine:"); - buf.append(define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java deleted file mode 100644 index eb4a40769e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compaq; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioLibrarian; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioProcessor; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for the Compaq(r) Visual Fortran Librarian - * - * @author Curt Arnold - */ -public class CompaqVisualFortranLibrarian extends CommandLineLinker { - private static final CompaqVisualFortranLibrarian instance = new CompaqVisualFortranLibrarian(); - public static CompaqVisualFortranLibrarian getInstance() { - return instance; - } - private CompaqVisualFortranLibrarian() { - super("lib", "/bogus", new String[]{".obj"}, new String[0], ".lib", - false, null); - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - args.addElement("/nologo"); - } - protected void addIncremental(boolean incremental, Vector args) { - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - protected String getCommandFileSwitch(String commandFile) { - return DevStudioProcessor.getCommandFileSwitch(commandFile); - } - public File[] getLibraryPath() { - return new File[0]; - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return new String[0]; - } - public Linker getLinker(LinkType type) { - return CompaqVisualFortranLinker.getInstance().getLinker(type); - } - protected int getMaximumCommandLength() { - return DevStudioLibrarian.getInstance().getMaximumCommandLength(); - } - protected String[] getOutputFileSwitch(String outputFile) { - return DevStudioLibrarian.getInstance().getOutputFileSwitch(outputFile); - } - public boolean isCaseSensitive() { - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java deleted file mode 100644 index d83e3b213d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compaq; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLinker; -/** - * Adapter for the Compaq(r) Visual Fortran linker. - * - * @author Curt Arnold - */ -public final class CompaqVisualFortranLinker extends DevStudioCompatibleLinker { - private static final CompaqVisualFortranLinker dllLinker = new CompaqVisualFortranLinker( - ".dll"); - private static final CompaqVisualFortranLinker instance = new CompaqVisualFortranLinker( - ".exe"); - public static CompaqVisualFortranLinker getInstance() { - return instance; - } - private CompaqVisualFortranLinker(String outputSuffix) { - super("DF", "__bogus__.xxx", outputSuffix); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - args.addElement("/NOLOGO"); - boolean staticRuntime = linkType.isStaticRuntime(); - if (staticRuntime) { - args.addElement("/libs:static"); - } else { - args.addElement("/libs:dll"); - } - if (debug) { - args.addElement("/debug"); - } else { - } - if (linkType.isSharedLibrary()) { - args.addElement("/dll"); - } else { - args.addElement("/exe"); - } - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return CompaqVisualFortranLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } - public String[] getOutputFileSwitch(String outputFile) { - StringBuffer buf = new StringBuffer("/OUT:"); - if (outputFile.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(outputFile); - buf.append('"'); - } else { - buf.append(outputFile); - } - return new String[]{buf.toString()}; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java deleted file mode 100644 index 90c539c965..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import net.sf.antcontrib.cpptasks.AslcompilerDef; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; - -/** - * An abstract asl compiler implementation. - * - */ -public abstract class AbstractAslcompiler extends AbstractProcessor -implements Aslcompiler { - private String outputSuffix; - protected AbstractAslcompiler(String[] sourceExtensions, - String[] headerExtensions, String outputSuffix) { - super(sourceExtensions, headerExtensions); - this.outputSuffix = outputSuffix; - } - abstract protected AslcompilerConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - AslcompilerDef specificConfig, TargetDef targetPlatform); - - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - ProcessorDef specificConfig, TargetDef targetPlatform) { - if (specificConfig == null) { - throw new NullPointerException("specificConfig"); - } - return createConfiguration(task, linkType, baseConfigs, - (AslcompilerDef) specificConfig, targetPlatform); - } - - public String getOutputFileName(String inputFile) { - if (bid(inputFile) > 1) { - String baseName = getBaseOutputName(inputFile); - return baseName + outputSuffix; - } - return null; - } - protected String getBaseOutputName(String inputFile) { - int lastSlash = inputFile.lastIndexOf('/'); - int lastReverse = inputFile.lastIndexOf('\\'); - int lastSep = inputFile.lastIndexOf(File.separatorChar); - if (lastReverse > lastSlash) { - lastSlash = lastReverse; - } - if (lastSep > lastSlash) { - lastSlash = lastSep; - } - int lastPeriod = inputFile.lastIndexOf('.'); - if (lastPeriod < 0) { - lastPeriod = inputFile.length(); - } - return inputFile.substring(lastSlash + 1, lastPeriod); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java deleted file mode 100644 index 1d49232a05..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import net.sf.antcontrib.cpptasks.AssemblerDef; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; -/** - * An abstract assembler implementation. - * - */ -public abstract class AbstractAssembler extends AbstractProcessor -implements Assembler { - private String outputSuffix; - protected AbstractAssembler(String[] sourceExtensions, - String[] headerExtensions, String outputSuffix) { - super(sourceExtensions, headerExtensions); - this.outputSuffix = outputSuffix; - } - abstract protected AssemblerConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - AssemblerDef specificConfig, TargetDef targetPlatform); - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - ProcessorDef specificConfig, TargetDef targetPlatform) { - if (specificConfig == null) { - throw new NullPointerException("specificConfig"); - } - return createConfiguration(task, linkType, baseConfigs, - (AssemblerDef) specificConfig, targetPlatform); - } - public String getOutputFileName(String inputFile) { - if (bid(inputFile) > 1) { - String baseName = getBaseOutputName(inputFile); - return baseName + outputSuffix; - } - return null; - } - protected String getBaseOutputName(String inputFile) { - int lastSlash = inputFile.lastIndexOf('/'); - int lastReverse = inputFile.lastIndexOf('\\'); - int lastSep = inputFile.lastIndexOf(File.separatorChar); - if (lastReverse > lastSlash) { - lastSlash = lastReverse; - } - if (lastSep > lastSlash) { - lastSlash = lastSep; - } - int lastPeriod = inputFile.lastIndexOf('.'); - if (lastPeriod < 0) { - lastPeriod = inputFile.length(); - } - return inputFile.substring(lastSlash + 1, lastPeriod); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java deleted file mode 100644 index f16ec6caf3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.CompilerDef; -import net.sf.antcontrib.cpptasks.DependencyInfo; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.parser.Parser; -import net.sf.antcontrib.cpptasks.TargetDef; - -/** - * An abstract compiler implementation. - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public abstract class AbstractCompiler extends AbstractProcessor - implements - Compiler { - private static final String[] emptyIncludeArray = new String[0]; - private String outputSuffix; - protected AbstractCompiler(String[] sourceExtensions, - String[] headerExtensions, String outputSuffix) { - super(sourceExtensions, headerExtensions); - this.outputSuffix = outputSuffix; - } - /** - * Checks file name to see if parse should be attempted - * - * Default implementation returns false for files with extensions '.dll', - * 'tlb', '.res' - * - */ - protected boolean canParse(File sourceFile) { - String sourceName = sourceFile.toString(); - int lastPeriod = sourceName.lastIndexOf('.'); - if (lastPeriod >= 0 && lastPeriod == sourceName.length() - 4) { - String ext = sourceName.substring(lastPeriod).toUpperCase(); - if (ext.equals(".DLL") || ext.equals(".TLB") || ext.equals(".RES")) { - return false; - } - } - return true; - } - abstract protected CompilerConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - CompilerDef specificConfig, TargetDef targetPlatform); - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - ProcessorDef specificConfig, TargetDef targetPlatform) { - if (specificConfig == null) { - throw new NullPointerException("specificConfig"); - } - return createConfiguration(task, linkType, baseConfigs, - (CompilerDef) specificConfig, targetPlatform); - } - abstract protected Parser createParser(File sourceFile); - protected String getBaseOutputName(String inputFile) { - int lastSlash = inputFile.lastIndexOf('/'); - int lastReverse = inputFile.lastIndexOf('\\'); - int lastSep = inputFile.lastIndexOf(File.separatorChar); - if (lastReverse > lastSlash) { - lastSlash = lastReverse; - } - if (lastSep > lastSlash) { - lastSlash = lastSep; - } - int lastPeriod = inputFile.lastIndexOf('.'); - if (lastPeriod < 0) { - lastPeriod = inputFile.length(); - } - return inputFile.substring(lastSlash + 1, lastPeriod); - } - public String getOutputFileName(String inputFile) { - // - // if a recognized input file - // - if (bid(inputFile) > 1) { - String baseName = getBaseOutputName(inputFile); - return baseName + outputSuffix; - } - return null; - } - /** - * Returns dependency info for the specified source file - * - * @param task - * task for any diagnostic output - * @param source - * file to be parsed - * @param includePath - * include path to be used to resolve included files - * - * @param sysIncludePath - * sysinclude path from build file, files resolved using - * sysInclude path will not participate in dependency analysis - * - * @param envIncludePath - * include path from environment variable, files resolved with - * envIncludePath will not participate in dependency analysis - * - * @param baseDir - * used to produce relative paths in DependencyInfo - * @param includePathIdentifier - * used to distinguish DependencyInfo's from different include - * path settings - * - * @author Curt Arnold - */ - public final DependencyInfo parseIncludes(CCTask task, File source, - File[] includePath, File[] sysIncludePath, File[] envIncludePath, - File baseDir, String includePathIdentifier) { - // - // if any of the include files can not be identified - // change the sourceLastModified to Long.MAX_VALUE to - // force recompilation of anything that depends on it - long sourceLastModified = source.lastModified(); - File[] sourcePath = new File[1]; - sourcePath[0] = new File(source.getParent()); - Vector onIncludePath = new Vector(); - Vector onSysIncludePath = new Vector(); - String baseDirPath; - try { - baseDirPath = baseDir.getCanonicalPath(); - } catch (IOException ex) { - baseDirPath = baseDir.toString(); - } - String relativeSource = CUtil.getRelativePath(baseDirPath, source); - String[] includes = emptyIncludeArray; - if (canParse(source)) { - Parser parser = createParser(source); - try { - Reader reader = new BufferedReader(new FileReader(source)); - parser.parse(reader); - includes = parser.getIncludes(); - } catch (IOException ex) { - task.log("Error parsing " + source.toString() + ":" - + ex.toString()); - includes = new String[0]; - } - } - for (int i = 0; i < includes.length; i++) { - String includeName = includes[i]; - if (!resolveInclude(includeName, sourcePath, onIncludePath)) { - if (!resolveInclude(includeName, includePath, onIncludePath)) { - if (!resolveInclude(includeName, sysIncludePath, - onSysIncludePath)) { - if (!resolveInclude(includeName, envIncludePath, - onSysIncludePath)) { - // - // this should be enough to require us to reparse - // the file with the missing include for dependency - // information without forcing a rebuild - sourceLastModified++; - } - } - } - } - } - for (int i = 0; i < onIncludePath.size(); i++) { - String relativeInclude = CUtil.getRelativePath(baseDirPath, - (File) onIncludePath.elementAt(i)); - onIncludePath.setElementAt(relativeInclude, i); - } - for (int i = 0; i < onSysIncludePath.size(); i++) { - String relativeInclude = CUtil.getRelativePath(baseDirPath, - (File) onSysIncludePath.elementAt(i)); - onSysIncludePath.setElementAt(relativeInclude, i); - } - return new DependencyInfo(includePathIdentifier, relativeSource, - sourceLastModified, onIncludePath, onSysIncludePath); - } - protected boolean resolveInclude(String includeName, File[] includePath, - Vector onThisPath) { - for (int i = 0; i < includePath.length; i++) { - File includeFile = new File(includePath[i], includeName); - if (includeFile.exists()) { - onThisPath.addElement(includeFile); - return true; - } - } - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java deleted file mode 100644 index 20580e5d33..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.LinkerDef; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; - - -import org.apache.tools.ant.types.Environment; -/** - * An abstract Linker implementation. - * - * @author Adam Murdoch - */ -public abstract class AbstractLinker extends AbstractProcessor - implements - Linker { - public AbstractLinker(String[] objExtensions, String[] ignoredExtensions) { - super(objExtensions, ignoredExtensions); - } - /** - * Returns the bid of the processor for the file. - * - * A linker will bid 1 on any unrecognized file type. - * - * @param inputFile - * filename of input file - * @return bid for the file, 0 indicates no interest, 1 indicates that the - * processor recognizes the file but doesn't process it (header - * files, for example), 100 indicates strong interest - */ - public int bid(String inputFile) { - int bid = super.bid(inputFile); - switch (bid) { - // - // unrecognized extension, take the file - // - case 0 : - return 1; - // - // discard the ignored extensions - // - case 1 : - return 0; - } - return bid; - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - return this; - } - abstract protected LinkerConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - LinkerDef specificConfig, TargetDef targetPlatform); - public ProcessorConfiguration createConfiguration(CCTask task, - LinkType linkType, ProcessorDef[] baseConfigs, - ProcessorDef specificConfig, - TargetDef targetPlatform) { - if (specificConfig == null) { - throw new NullPointerException("specificConfig"); - } - return createConfiguration(task, linkType, baseConfigs, - (LinkerDef) specificConfig, targetPlatform); - } - public String getLibraryKey(File libfile) { - return libfile.getName(); - } - public abstract String getOutputFileName(String fileName); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java deleted file mode 100644 index b6456d5e3e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import org.apache.tools.ant.types.Environment; -/** - * An abstract processor (compiler/linker) implementation. - * - * @author Curt Arnold - */ -public abstract class AbstractProcessor implements Processor, Cloneable { - /** - * default bid for a file name that the processor recognizes but does not - * process and does not want to fall through to the linker - */ - public final static int DEFAULT_DISCARD_BID = 1; - /** - * default bid for a file name that the processor desires to process - */ - public final static int DEFAULT_PROCESS_BID = 100; - /** - * Determines the identification of a command line processor by capture the - * first line of its output for a specific command. - * - * @param command - * array of command line arguments starting with executable - * name. For example, { "cl" } - * @param fallback - * start of identifier if there is an error in executing the - * command - * @return identifier for the processor - */ - protected static String getIdentifier(String[] command, String fallback) { - String identifier = fallback; - try { - String[] cmdout = CaptureStreamHandler.run(command); - if (cmdout.length > 0) { - identifier = cmdout[0]; - } - } catch (Throwable ex) { - identifier = fallback + ":" + ex.toString(); - } - return identifier; - } - private final String[] headerExtensions; - private final String[] sourceExtensions; - protected AbstractProcessor(String[] sourceExtensions, - String[] headerExtensions) { - this.sourceExtensions = (String[]) sourceExtensions.clone(); - this.headerExtensions = (String[]) headerExtensions.clone(); - } - /** - * Returns the bid of the processor for the file. - * - * @param inputFile - * filename of input file - * @return bid for the file, 0 indicates no interest, 1 indicates that the - * processor recognizes the file but doesn't process it (header - * files, for example), 100 indicates strong interest - */ - public int bid(String inputFile) { - String lower = inputFile.toLowerCase(); - for (int i = 0; i < sourceExtensions.length; i++) { - if (lower.endsWith(sourceExtensions[i])) { - return DEFAULT_PROCESS_BID; - } - } - for (int i = 0; i < headerExtensions.length; i++) { - if (lower.endsWith(headerExtensions[i])) { - return DEFAULT_DISCARD_BID; - } - } - return 0; - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - return this; - } - protected Object clone() throws CloneNotSupportedException { - return super.clone(); - } - public String[] getHeaderExtensions() { - return (String[]) this.headerExtensions.clone(); - } - abstract public String getIdentifier(); - /** - * Gets the target operating system architecture - * - * @return String target operating system architecture - */ - protected String getOSArch() { - return System.getProperty("os.arch"); - } - /** - * Gets the target operating system name - * - * @return String target operating system name - */ - protected String getOSName() { - return System.getProperty("os.name"); - } - public String[] getSourceExtensions() { - return (String[]) this.sourceExtensions.clone(); - } - /** - * Returns true if the target operating system is Mac OS X or Darwin. - * - * @return boolean - */ - protected boolean isDarwin() { - String osName = getOSName(); - return "Mac OS X".equals(osName); - } - public final String toString() { - return getIdentifier(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java deleted file mode 100644 index a210e1c684..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -/** - * A asl compiler. - * - */ -public interface Aslcompiler extends Processor { -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java deleted file mode 100644 index 62ac2760c6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import org.apache.tools.ant.BuildException; -/** - * A configuration for an ASL compiler - * - */ -public interface AslcompilerConfiguration extends ProcessorConfiguration { - void aslcompiler(CCTask task, File outputDir, String[] sourceFiles) throws BuildException; -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java deleted file mode 100644 index 1b6d7b5d11..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -/** - * A assembler. - * - */ -public interface Assembler extends Processor { -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java deleted file mode 100644 index 9411551b47..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import org.apache.tools.ant.BuildException; -/** - * A configuration for an assembler - * - */ -public interface AssemblerConfiguration extends ProcessorConfiguration { - void assembler(CCTask task, File outputDir, String[] sourceFiles) throws BuildException; -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java deleted file mode 100644 index 1b89a70a58..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.util.Vector; - -import org.apache.tools.ant.taskdefs.Execute; -import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; -/** - * Implements ExecuteStreamHandler to capture the output of a Execute to an - * array of strings - * - * @author Curt Arnold - */ -public class CaptureStreamHandler implements ExecuteStreamHandler { - /** - * Runs an executable and captures the output in a String array - * - * @param cmdline - * command line arguments - * @return output of process - */ - public static String[] run(String[] cmdline) { - CaptureStreamHandler handler = new CaptureStreamHandler(); - Execute exec = new Execute(handler); - exec.setCommandline(cmdline); - try { - int status = exec.execute(); - } catch (IOException ex) { - } - return handler.getOutput(); - } - private InputStream errorStream; - private InputStream fromProcess; - public CaptureStreamHandler() { - } - public String[] getOutput() { - String[] output; - if (fromProcess != null) { - Vector lines = new Vector(10); - try { - BufferedReader reader = new BufferedReader( - new InputStreamReader(errorStream)); - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 100; j++) { - String line = reader.readLine(); - if (line == null) { - reader = new BufferedReader(new InputStreamReader( - fromProcess)); - break; - } - lines.addElement(line); - } - } - } catch (IOException ex) { - } - output = new String[lines.size()]; - lines.copyInto(output); - return output; - } - output = new String[0]; - return output; - } - /** - * Install a handler for the error stream of the subprocess. - * - * @param is - * input stream to read from the error stream from the - * subprocess - */ - public void setProcessErrorStream(InputStream is) throws IOException { - errorStream = is; - } - /** - * Install a handler for the input stream of the subprocess. - * - * @param os - * output stream to write to the standard input stream of the - * subprocess - */ - public void setProcessInputStream(OutputStream os) throws IOException { - os.close(); - } - /** - * Install a handler for the output stream of the subprocess. - * - * @param is - * input stream to read from the error stream from the - * subprocess - */ - public void setProcessOutputStream(InputStream is) throws IOException { - fromProcess = is; - } - /** - * Start handling of the streams. - */ - public void start() throws IOException { - } - /** - * Stop handling of the streams - will not be restarted. - */ - public void stop() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java deleted file mode 100644 index 88dda5796f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.AslcompilerDef; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; - -import org.apache.tools.ant.BuildException; -/** - * An abstract ASL Compiler implementation which uses an external program to - * perform the ASL compile. - * - */ -public abstract class CommandLineAslcompiler extends AbstractAslcompiler{ - - private String command; - private String identifier; - private String identifierArg; - - protected CommandLineAslcompiler(String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - String outputSuffix) { - super(sourceExtensions, headerExtensions, outputSuffix); - this.command = command; - this.identifierArg = identifierArg; - } - - abstract protected void addImpliedArgs(Vector args, boolean debug, - Boolean defaultflag); - - /** - * Compile a ACPI source file - * - */ - public void aslcompiler(CCTask task, File outputDir, String[] sourceFiles, - String[] args, String[] endArgs) throws BuildException{ - String command = getCommand(); - int baseLength = command.length() + args.length + endArgs.length; - for (int i = 0; i < args.length; i++) { - baseLength += args[i].length(); - } - for (int i = 0; i < endArgs.length; i++) { - baseLength += endArgs[i].length(); - } - if (baseLength > getMaximumCommandLength()) { - throw new BuildException( - "Command line is over maximum length without sepcifying source file"); - } - int maxInputFilesPerCommand = getMaximumInputFilesPerCommand(); - int argumentCountPerInputFile = getArgumentCountPerInputFIle(); - for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) { - int cmdLength = baseLength; - int firstFileNextExec; - for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length - && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) { - cmdLength += getTotalArgumentLengthForInputFile(outputDir, - sourceFiles[firstFileNextExec]); - if (cmdLength >= getMaximumCommandLength()) - break; - } - if (firstFileNextExec == sourceIndex) { - throw new BuildException( - "Extremely long file name, can't fit on command line"); - } - int argCount = args.length + 1 + endArgs.length - + (firstFileNextExec - sourceIndex) - * argumentCountPerInputFile; - String[] commandline = new String[argCount]; - int index = 0; - commandline[index++] = command; - for (int j = 0; j < args.length; j++) { - commandline[index++] = args[j]; - } - for (int j = sourceIndex; j < firstFileNextExec; j++) { - for (int k = 0; k < argumentCountPerInputFile; k++) { - commandline[index++] = getInputFileArgument(outputDir, - sourceFiles[j], k); - } - } - for (int j = 0; j < endArgs.length; j++) { - commandline[index++] = endArgs[j]; - } - int retval = runCommand(task, outputDir, commandline); - // if with monitor, add more code - if (retval != 0) { - throw new BuildException(this.getCommand() - + " failed with return code " + retval, - task.getLocation()); - } - sourceIndex = firstFileNextExec; - } - } - - protected AslcompilerConfiguration createConfiguration(final CCTask task, - final LinkType linkType, - final ProcessorDef[] baseDefs, - final AslcompilerDef specificDef, - final TargetDef targetPlatform) { - Vector args = new Vector(); - AslcompilerDef[] defaultProviders = new AslcompilerDef[baseDefs.length +1]; - for (int i = 0; i < baseDefs.length; i++) { - defaultProviders[i + 1] = (AslcompilerDef) baseDefs[i]; - } - defaultProviders[0] = specificDef; - Vector cmdArgs = new Vector(); - // - // add command line arguments inherited from element - // any "extends" and finally and specific AslcompilerDef - // - CommandLineArgument[] commandArgs; - for (int i = defaultProviders.length - 1; i >=0; i--){ - commandArgs = defaultProviders[i].getActiveProcessorArgs(); - for (int j = 0; j < commandArgs.length; j++) { - if (commandArgs[j].getLocation() == 0) { - args.addElement(commandArgs[j].getValue()); - } - else { - cmdArgs.addElement(commandArgs[j]); - } - } - } - // omit param - boolean debug = specificDef.getDebug(baseDefs, 0); - Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1); - this.addImpliedArgs(args, debug, defaultflag); - Enumeration argEnum = cmdArgs.elements(); - int endCount = 0; - while( argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum.nextElement(); - switch (arg.getLocation()) { - case 1 : - args.addElement(arg.getValue()); - break; - case 2 : - endCount++; - break; - } - } - String[] endArgs = new String[endCount]; - argEnum = cmdArgs.elements(); - int index = 0; - while (argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum.nextElement(); - if (arg.getLocation() == 2) { - endArgs[index++] = arg.getValue(); - } - } - String[] argArray = new String[args.size()]; - args.copyInto(argArray); - return new CommandLineAslcompilerConfiguration(this, argArray, true, endArgs); - } - - protected int getArgumentCountPerInputFile() { - return 1; - } - - public String getIdentifier() { - if (identifier == null) { - if (identifierArg == null) { - identifier = getIdentifier(new String[]{command}, command); - } - else { - identifier = getIdentifier( - new String[]{command, identifierArg}, command); - } - } - return identifier; - } - - public final String getCommand() { - return command; - } - abstract public int getMaximumCommandLength(); - public void setCommand(String command) { - this.command = command; - } - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - return inputFile.length() + 1; - } - protected int runCommand(CCTask task, File workingDir, String[] cmdline) - throws BuildException { - return CUtil.runCommand(task, workingDir, cmdline, false, null); - - } - protected int getMaximumInputFilesPerCommand(){ - return 1; - } - protected int getArgumentCountPerInputFIle(){ - return 1; - } - protected String getInputFileArgument(File outputDir, String filename, int index) { - // - // if there is an embedded space, - // must enclose in quotes - if (filename.indexOf(' ') >= 0) { - StringBuffer buf = new StringBuffer("\""); - buf.append(filename); - buf.append("\""); - return buf.toString(); - } - return filename; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java deleted file mode 100644 index 9a3457dafb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import org.apache.tools.ant.BuildException; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.ProcessorParam; - -/** - * A configuration for an ASL compiler - * - */ -public final class CommandLineAslcompilerConfiguration implements - AslcompilerConfiguration { - - private String[] args; - - private CommandLineAslcompiler acpi; - - private String[] endArgs; - - private boolean rebuild; - - public CommandLineAslcompilerConfiguration (CommandLineAslcompiler acpi, - String[] args, boolean rebuild, String[] endArgs) { - if (acpi == null) { - throw new NullPointerException("acpi"); - } - if (args == null) { - this.args = new String[0]; - } else { - this.args = (String[]) args.clone(); - } - this.acpi = acpi; - this.rebuild = rebuild; - this.endArgs = (String[]) endArgs.clone(); - } - - public int bid (String inputFile) { - int acpiBid = acpi.bid(inputFile); - return acpiBid; - } - - public void aslcompiler (CCTask task, File outputDir, String[] sourceFiles) - throws BuildException { - try { - acpi.aslcompiler(task, outputDir, sourceFiles, args, endArgs); - } catch (BuildException ex) { - throw ex; - } - } - - public String getIdentifier () { - return acpi.getCommand(); - } - - public ProcessorParam[] getParams () { - return new ProcessorParam[0]; - } - - public boolean getRebuild () { - return rebuild; - } - - public String[] getPreArguments () { - return (String[]) args.clone(); - } - - public String[] getEndArguments () { - return (String[]) endArgs.clone(); - } - - public String getOutputFileName (String inputFile) { - return acpi.getOutputFileName(inputFile); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java deleted file mode 100644 index f01fc5ee61..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.AssemblerDef; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; - -import org.apache.tools.ant.BuildException; - -/** - * An abstract Assembler implementation which uses an external program to - * perform the assemble. - * - */ -public abstract class CommandLineAssembler extends AbstractAssembler { - - private String command; - - private String identifier; - - private String identifierArg; - - protected CommandLineAssembler (String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - String outputSuffix) { - super(sourceExtensions, headerExtensions, outputSuffix); - this.command = command; - this.identifierArg = identifierArg; - } - - abstract protected void addImpliedArgs(Vector args, boolean debug, - Boolean defaultflag); - - /** - * Adds command-line arguments for include directories. - * - * If relativeArgs is not null will add corresponding relative paths include - * switches to that vector (for use in building a configuration identifier - * that is consistent between machines). - * - * @param baseDirPaths - * A vector containing the parts of the working directory, - * produced by CUtil.DecomposeFile. - * @param includeDirs - * Array of include directory paths - * @param args - * Vector of command line arguments used to execute the task - * @param relativeArgs - * Vector of command line arguments used to build the - * configuration identifier - */ - protected void addIncludes(String baseDirPath, File[] includeDirs, - Vector args, Vector relativeArgs, StringBuffer includePathId) { - for (int i = 0; i < includeDirs.length; i++) { - args.addElement(getIncludeDirSwitch(includeDirs[i] - .getAbsolutePath())); - if (relativeArgs != null) { - String relative = CUtil.getRelativePath(baseDirPath, - includeDirs[i]); - relativeArgs.addElement(getIncludeDirSwitch(relative)); - if (includePathId != null) { - if (includePathId.length() == 0) { - includePathId.append("/I"); - } else { - includePathId.append(" /I"); - } - includePathId.append(relative); - } - } - } - } - - abstract protected String getIncludeDirSwitch(String source); - - /** - * Assembles a source file - * - */ - public void assembler(CCTask task, File outputDir, String[] sourceFiles, - String[] args, String[] endArgs) throws BuildException { - String command = getCommand(); - int baseLength = command.length() + args.length + endArgs.length; - for (int i = 0; i < args.length; i++) { - baseLength += args[i].length(); - } - for (int i = 0; i < endArgs.length; i++) { - baseLength += endArgs[i].length(); - } - if (baseLength > getMaximumCommandLength()) { - throw new BuildException( - "Command line is over maximum length without sepcifying source file"); - } - int maxInputFilesPerCommand = getMaximumInputFilesPerCommand(); - int argumentCountPerInputFile = getArgumentCountPerInputFIle(); - for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) { - int cmdLength = baseLength; - int firstFileNextExec; - for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length - && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) { - cmdLength += getTotalArgumentLengthForInputFile(outputDir, - sourceFiles[firstFileNextExec]); - if (cmdLength >= getMaximumCommandLength()) - break; - } - if (firstFileNextExec == sourceIndex) { - throw new BuildException( - "Extremely long file name, can't fit on command line"); - } - int argCount = args.length + 1 + endArgs.length - + (firstFileNextExec - sourceIndex) - * argumentCountPerInputFile; - String[] commandline = new String[argCount]; - int index = 0; - commandline[index++] = command; - for (int j = 0; j < args.length; j++) { - commandline[index++] = args[j]; - } - for (int j = sourceIndex; j < firstFileNextExec; j++) { - for (int k = 0; k < argumentCountPerInputFile; k++) { - commandline[index++] = getInputFileArgument(outputDir, - sourceFiles[j], k); - } - } - for (int j = 0; j < endArgs.length; j++) { - commandline[index++] = endArgs[j]; - } - int retval = runCommand(task, outputDir, commandline); - // if with monitor, add more code - if (retval != 0) { - throw new BuildException(this.getCommand() - + " failed with return code " + retval, task - .getLocation()); - } - sourceIndex = firstFileNextExec; - } - } - - protected AssemblerConfiguration createConfiguration(final CCTask task, - final LinkType linkType, final ProcessorDef[] baseDefs, - final AssemblerDef specificDef, - final TargetDef targetPlatform) { - Vector args = new Vector(); - AssemblerDef[] defaultProviders = new AssemblerDef[baseDefs.length + 1]; - for (int i = 0; i < baseDefs.length; i++) { - defaultProviders[i + 1] = (AssemblerDef) baseDefs[i]; - } - defaultProviders[0] = specificDef; - Vector cmdArgs = new Vector(); - // - // add command line arguments inherited from element - // any "extends" and finally and specific AssemblerDef - // - CommandLineArgument[] commandArgs; - for (int i = defaultProviders.length - 1; i >= 0; i--) { - commandArgs = defaultProviders[i].getActiveProcessorArgs(); - for (int j = 0; j < commandArgs.length; j++) { - if (commandArgs[j].getLocation() == 0) { - args.addElement(commandArgs[j].getValue()); - } else { - cmdArgs.addElement(commandArgs[j]); - } - } - } - // omit param - boolean debug = specificDef.getDebug(baseDefs, 0); - Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1); - this.addImpliedArgs(args, debug, defaultflag); - // - // Want to have distinct set of arguments with relative - // path names for includes that are used to build - // the configuration identifier - // - Vector relativeArgs = (Vector) args.clone(); - // - // add all active include an - // - StringBuffer includePathIdentifier = new StringBuffer(); - File baseDir = specificDef.getProject().getBaseDir(); - String baseDirPath; - try { - baseDirPath = baseDir.getCanonicalPath(); - } catch (IOException ex) { - baseDirPath = baseDir.toString(); - } - Vector includePath = new Vector(); - Vector sysIncludePath = new Vector(); - for (int i = defaultProviders.length - 1; i >= 0; i--) { - String[] incPath = defaultProviders[i].getActiveIncludePaths(); - for (int j = 0; j < incPath.length; j++) { - includePath.addElement(incPath[j]); - } - incPath = defaultProviders[i].getActiveSysIncludePaths(); - for (int j = 0; j < incPath.length; j++) { - sysIncludePath.addElement(incPath[j]); - } - } - File[] incPath = new File[includePath.size()]; - for (int i = 0; i < includePath.size(); i++) { - incPath[i] = new File((String) includePath.elementAt(i)); - } - File[] sysIncPath = new File[sysIncludePath.size()]; - for (int i = 0; i < sysIncludePath.size(); i++) { - sysIncPath[i] = new File((String) sysIncludePath.elementAt(i)); - } - addIncludes(baseDirPath, incPath, args, relativeArgs, - includePathIdentifier); - addIncludes(baseDirPath, sysIncPath, args, null, null); - StringBuffer buf = new StringBuffer(getIdentifier()); - for (int i = 0; i < relativeArgs.size(); i++) { - buf.append(relativeArgs.elementAt(i)); - buf.append(' '); - } - buf.setLength(buf.length() - 1); - Enumeration argEnum = cmdArgs.elements(); - int endCount = 0; - while (argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum - .nextElement(); - switch (arg.getLocation()) { - case 1: - args.addElement(arg.getValue()); - break; - case 2: - endCount++; - break; - } - } - String[] endArgs = new String[endCount]; - argEnum = cmdArgs.elements(); - int index = 0; - while (argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum - .nextElement(); - if (arg.getLocation() == 2) { - endArgs[index++] = arg.getValue(); - } - } - String[] argArray = new String[args.size()]; - args.copyInto(argArray); - return new CommandLineAssemblerConfiguration(this, incPath, sysIncPath, - new File[0], argArray, true, endArgs, new String[0]); - } - - protected int getArgumentCountPerInputFile() { - return 1; - } - - protected abstract File[] getEnvironmentIncludePath(); - - public String getIdentifier() { - if (identifier == null) { - if (identifierArg == null) { - identifier = getIdentifier(new String[] { command }, command); - } else { - identifier = getIdentifier(new String[] { command, - identifierArg }, command); - } - } - return identifier; - } - - public final String getCommand() { - return command; - } - - abstract public int getMaximumCommandLength(); - - public void setCommand(String command) { - this.command = command; - } - - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - return inputFile.length() + 1; - } - - protected int runCommand(CCTask task, File workingDir, String[] cmdline) - throws BuildException { - return CUtil.runCommand(task, workingDir, cmdline, false, null); - } - - protected int getMaximumInputFilesPerCommand() { - return Integer.MAX_VALUE; - } - - protected int getArgumentCountPerInputFIle() { - return 1; - } - - protected String getInputFileArgument(File outputDir, String filename, - int index) { - // - // if there is an embedded space, - // must enclose in quotes - if (filename.indexOf(' ') >= 0) { - StringBuffer buf = new StringBuffer("\""); - buf.append(filename); - buf.append("\""); - return buf.toString(); - } - return filename; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java deleted file mode 100644 index 542d441559..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; - -import org.apache.tools.ant.BuildException; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.ProcessorParam; - -/** - * A configuration for an assember - * - */ -public final class CommandLineAssemblerConfiguration implements - AssemblerConfiguration { - - private String[] args; - - private CommandLineAssembler assembler; - - private String[] endArgs; - - // - // include path from environment variable - // not explicitly stated in Ant script - // - private File[] envIncludePath; - - private String[] exceptFiles; - - private File[] includePath; - - private boolean rebuild; - - private File[] sysIncludePath; - - public CommandLineAssemblerConfiguration (CommandLineAssembler assembler, - File[] includePath, File[] sysIncludePath, - File[] envIncludePath, String[] args, boolean rebuild, - String[] endArgs, String[] exceptFiles) { - if (assembler == null) { - throw new NullPointerException("assembler"); - } - if (args == null) { - this.args = new String[0]; - } else { - this.args = (String[]) args.clone(); - } - if (includePath == null) { - this.includePath = new File[0]; - } else { - this.includePath = (File[]) includePath.clone(); - } - if (sysIncludePath == null) { - this.sysIncludePath = new File[0]; - } else { - this.sysIncludePath = (File[]) sysIncludePath.clone(); - } - if (envIncludePath == null) { - this.envIncludePath = new File[0]; - } else { - this.envIncludePath = (File[]) envIncludePath.clone(); - } - this.assembler = assembler; - this.rebuild = rebuild; - this.endArgs = (String[]) endArgs.clone(); - this.exceptFiles = (String[]) exceptFiles.clone(); - } - - public int bid(String inputFile) { - int assembleBid = assembler.bid(inputFile); - return assembleBid; - } - - public void assembler(CCTask task, File outputDir, String[] sourceFiles) - throws BuildException { - try { - assembler.assembler(task, outputDir, sourceFiles, args, endArgs); - } catch (BuildException ex) { - throw ex; - } - } - - public String getOutputFileName(String inputFile) { - return assembler.getOutputFileName(inputFile); - } - - public String getIdentifier() { - return assembler.getCommand(); - } - - public ProcessorParam[] getParams() { - return new ProcessorParam[0]; - } - - public boolean getRebuild() { - return rebuild; - } - - public String[] getPreArguments() { - return (String[]) args.clone(); - } - - public String[] getEndArguments() { - return (String[]) endArgs.clone(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java deleted file mode 100644 index 442d6b8187..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.types.Environment; -/** - * An abstract Compiler implementation which uses an external program to - * perform the compile. - * - * @author Adam Murdoch - */ -public abstract class CommandLineCCompiler extends CommandLineCompiler { - protected CommandLineCCompiler(String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - String outputSuffix, boolean libtool, - CommandLineCCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - outputSuffix, libtool, libtoolCompiler, newEnvironment, env); - } - protected Parser createParser(File source) { - return new CParser(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java deleted file mode 100644 index 3f45ce539d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java +++ /dev/null @@ -1,435 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.CompilerDef; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.ProcessorParam; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; -import net.sf.antcontrib.cpptasks.types.UndefineArgument; -import net.sf.antcontrib.cpptasks.TargetDef; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum;; -/** - * An abstract Compiler implementation which uses an external program to - * perform the compile. - * - * @author Adam Murdoch - */ -public abstract class CommandLineCompiler extends AbstractCompiler { - private String command; - private final Environment env; - private String identifier; - private String identifierArg; - private boolean libtool; - private CommandLineCompiler libtoolCompiler; - private final boolean newEnvironment; - protected CommandLineCompiler(String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - String outputSuffix, boolean libtool, - CommandLineCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(sourceExtensions, headerExtensions, outputSuffix); - this.command = command; - if (libtool && libtoolCompiler != null) { - throw new java.lang.IllegalArgumentException( - "libtoolCompiler should be null when libtool is true"); - } - this.libtool = libtool; - this.libtoolCompiler = libtoolCompiler; - this.identifierArg = identifierArg; - this.newEnvironment = newEnvironment; - this.env = env; - } - abstract protected void addImpliedArgs(Vector args, boolean debug, - boolean multithreaded, boolean exceptions, LinkType linkType, - Boolean rtti, OptimizationEnum optimization, Boolean defaultflag); - /** - * Adds command-line arguments for include directories. - * - * If relativeArgs is not null will add corresponding relative paths - * include switches to that vector (for use in building a configuration - * identifier that is consistent between machines). - * - * @param baseDirPaths - * A vector containing the parts of the working directory, - * produced by CUtil.DecomposeFile. - * @param includeDirs - * Array of include directory paths - * @param args - * Vector of command line arguments used to execute the task - * @param relativeArgs - * Vector of command line arguments used to build the - * configuration identifier - */ - protected void addIncludes(String baseDirPath, File[] includeDirs, - Vector args, Vector relativeArgs, StringBuffer includePathId) { - for (int i = 0; i < includeDirs.length; i++) { - args.addElement(getIncludeDirSwitch(includeDirs[i] - .getAbsolutePath())); - if (relativeArgs != null) { - String relative = CUtil.getRelativePath(baseDirPath, - includeDirs[i]); - relativeArgs.addElement(getIncludeDirSwitch(relative)); - if (includePathId != null) { - if (includePathId.length() == 0) { - includePathId.append("/I"); - } else { - includePathId.append(" /I"); - } - includePathId.append(relative); - } - } - } - } - abstract protected void addWarningSwitch(Vector args, int warnings); - protected void buildDefineArguments(CompilerDef[] defs, Vector args) { - // - // assume that we aren't inheriting defines from containing - // - UndefineArgument[] merged = defs[0].getActiveDefines(); - for (int i = 1; i < defs.length; i++) { - // - // if we are inheriting, merge the specific defines with the - // containing defines - merged = UndefineArgument.merge(defs[i].getActiveDefines(), merged); - } - StringBuffer buf = new StringBuffer(30); - for (int i = 0; i < merged.length; i++) { - buf.setLength(0); - UndefineArgument current = merged[i]; - if (current.isDefine()) { - getDefineSwitch(buf, current.getName(), current.getValue()); - } else { - getUndefineSwitch(buf, current.getName()); - } - args.addElement(buf.toString()); - } - } - /** - * Compiles a source file. - * - * @author Curt Arnold - */ - public void compile(CCTask task, File outputDir, String[] sourceFiles, - String[] args, String[] endArgs, boolean relentless, - CommandLineCompilerConfiguration config, ProgressMonitor monitor) - throws BuildException { - BuildException exc = null; - // - // determine length of executable name and args - // - String command = getCommand(); - int baseLength = command.length() + args.length + endArgs.length; - if (libtool) { - baseLength += 8; - } - for (int i = 0; i < args.length; i++) { - baseLength += args[i].length(); - } - for (int i = 0; i < endArgs.length; i++) { - baseLength += endArgs[i].length(); - } - if (baseLength > getMaximumCommandLength()) { - throw new BuildException( - "Command line is over maximum length without specifying source file"); - } - // - // typically either 1 or Integer.MAX_VALUE - // - int maxInputFilesPerCommand = getMaximumInputFilesPerCommand(); - int argumentCountPerInputFile = getArgumentCountPerInputFile(); - for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) { - int cmdLength = baseLength; - int firstFileNextExec; - for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length - && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) { - cmdLength += getTotalArgumentLengthForInputFile(outputDir, - sourceFiles[firstFileNextExec]); - if (cmdLength >= getMaximumCommandLength()) - break; - } - if (firstFileNextExec == sourceIndex) { - throw new BuildException( - "Extremely long file name, can't fit on command line"); - } - int argCount = args.length + 1 + endArgs.length - + (firstFileNextExec - sourceIndex) - * argumentCountPerInputFile; - if (libtool) { - argCount++; - } - String[] commandline = new String[argCount]; - int index = 0; - if (libtool) { - commandline[index++] = "libtool"; - } - commandline[index++] = command; - for (int j = 0; j < args.length; j++) { - commandline[index++] = args[j]; - } - for (int j = sourceIndex; j < firstFileNextExec; j++) { - for (int k = 0; k < argumentCountPerInputFile; k++) { - commandline[index++] = getInputFileArgument(outputDir, - sourceFiles[j], k); - } - } - for (int j = 0; j < endArgs.length; j++) { - commandline[index++] = endArgs[j]; - } - int retval = runCommand(task, outputDir, commandline); - if (monitor != null) { - String[] fileNames = new String[firstFileNextExec - sourceIndex]; - for (int j = 0; j < fileNames.length; j++) { - fileNames[j] = sourceFiles[sourceIndex + j]; - } - monitor.progress(fileNames); - } - // - // if the process returned a failure code and - // we aren't holding an exception from an earlier - // interation - if (retval != 0 && exc == null) { - // - // construct the exception - // - exc = new BuildException(this.getCommand() - + " failed with return code " + retval, task - .getLocation()); - // - // and throw it now unless we are relentless - // - if (!relentless) { - throw exc; - } - } - sourceIndex = firstFileNextExec; - } - // - // if the compiler returned a failure value earlier - // then throw an exception - if (exc != null) { - throw exc; - } - } - protected CompilerConfiguration createConfiguration(final CCTask task, - final LinkType linkType, - final ProcessorDef[] baseDefs, - final CompilerDef specificDef, - final TargetDef targetPlatform) { - Vector args = new Vector(); - CompilerDef[] defaultProviders = new CompilerDef[baseDefs.length + 1]; - for (int i = 0; i < baseDefs.length; i++) { - defaultProviders[i + 1] = (CompilerDef) baseDefs[i]; - } - defaultProviders[0] = specificDef; - Vector cmdArgs = new Vector(); - // - // add command line arguments inherited from element - // any "extends" and finally the specific CompilerDef - CommandLineArgument[] commandArgs; - for (int i = defaultProviders.length - 1; i >= 0; i--) { - commandArgs = defaultProviders[i].getActiveProcessorArgs(); - for (int j = 0; j < commandArgs.length; j++) { - if (commandArgs[j].getLocation() == 0) { - args.addElement(commandArgs[j].getValue()); - } else { - cmdArgs.addElement(commandArgs[j]); - } - } - } - Vector params = new Vector(); - // - // add command line arguments inherited from element - // any "extends" and finally the specific CompilerDef - ProcessorParam[] paramArray; - for (int i = defaultProviders.length - 1; i >= 0; i--) { - paramArray = defaultProviders[i].getActiveProcessorParams(); - for (int j = 0; j < paramArray.length; j++) { - params.add(paramArray[j]); - } - } - paramArray = (ProcessorParam[]) (params - .toArray(new ProcessorParam[params.size()])); - boolean multithreaded = specificDef.getMultithreaded(defaultProviders, - 1); - boolean debug = specificDef.getDebug(baseDefs, 0); - boolean exceptions = specificDef.getExceptions(defaultProviders, 1); - Boolean rtti = specificDef.getRtti(defaultProviders, 1); - Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1); - OptimizationEnum optimization = specificDef.getOptimization(defaultProviders, 1); - this.addImpliedArgs(args, debug, multithreaded, exceptions, linkType, rtti, optimization, defaultflag); - // - // add all appropriate defines and undefines - // - buildDefineArguments(defaultProviders, args); - // - // Want to have distinct set of arguments with relative - // path names for includes that are used to build - // the configuration identifier - // - Vector relativeArgs = (Vector) args.clone(); - // - // add all active include and sysincludes - // - StringBuffer includePathIdentifier = new StringBuffer(); - File baseDir = specificDef.getProject().getBaseDir(); - String baseDirPath; - try { - baseDirPath = baseDir.getCanonicalPath(); - } catch (IOException ex) { - baseDirPath = baseDir.toString(); - } - Vector includePath = new Vector(); - Vector sysIncludePath = new Vector(); - for (int i = defaultProviders.length - 1; i >= 0; i--) { - String[] incPath = defaultProviders[i].getActiveIncludePaths(); - for (int j = 0; j < incPath.length; j++) { - includePath.addElement(incPath[j]); - } - incPath = defaultProviders[i].getActiveSysIncludePaths(); - for (int j = 0; j < incPath.length; j++) { - sysIncludePath.addElement(incPath[j]); - } - } - File[] incPath = new File[includePath.size()]; - for (int i = 0; i < includePath.size(); i++) { - incPath[i] = new File((String) includePath.elementAt(i)); - } - File[] sysIncPath = new File[sysIncludePath.size()]; - for (int i = 0; i < sysIncludePath.size(); i++) { - sysIncPath[i] = new File((String) sysIncludePath.elementAt(i)); - } - addIncludes(baseDirPath, incPath, args, relativeArgs, - includePathIdentifier); - addIncludes(baseDirPath, sysIncPath, args, null, null); - StringBuffer buf = new StringBuffer(getIdentifier()); - for (int i = 0; i < relativeArgs.size(); i++) { - buf.append(relativeArgs.elementAt(i)); - buf.append(' '); - } - buf.setLength(buf.length() - 1); - String configId = buf.toString(); - int warnings = specificDef.getWarnings(defaultProviders, 0); - addWarningSwitch(args, warnings); - Enumeration argEnum = cmdArgs.elements(); - int endCount = 0; - while (argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum - .nextElement(); - switch (arg.getLocation()) { - case 1 : - args.addElement(arg.getValue()); - break; - case 2 : - endCount++; - break; - } - } - String[] endArgs = new String[endCount]; - argEnum = cmdArgs.elements(); - int index = 0; - while (argEnum.hasMoreElements()) { - CommandLineArgument arg = (CommandLineArgument) argEnum - .nextElement(); - if (arg.getLocation() == 2) { - endArgs[index++] = arg.getValue(); - } - } - String[] argArray = new String[args.size()]; - args.copyInto(argArray); - boolean rebuild = specificDef.getRebuild(baseDefs, 0); - File[] envIncludePath = getEnvironmentIncludePath(); - return new CommandLineCompilerConfiguration(this, configId, incPath, - sysIncPath, envIncludePath, includePathIdentifier.toString(), - argArray, paramArray, rebuild, endArgs); - } - protected int getArgumentCountPerInputFile() { - return 1; - } - protected final String getCommand() { - return command; - } - abstract protected void getDefineSwitch(StringBuffer buffer, String define, - String value); - protected abstract File[] getEnvironmentIncludePath(); - public String getIdentifier() { - if (identifier == null) { - if (identifierArg == null) { - identifier = getIdentifier(new String[]{command}, command); - } else { - identifier = getIdentifier( - new String[]{command, identifierArg}, command); - } - } - return identifier; - } - abstract protected String getIncludeDirSwitch(String source); - protected String getInputFileArgument(File outputDir, String filename, - int index) { - // - // if there is an embedded space, - // must enclose in quotes - if (filename.indexOf(' ') >= 0) { - StringBuffer buf = new StringBuffer("\""); - buf.append(filename); - buf.append("\""); - return buf.toString(); - } - return filename; - } - protected final boolean getLibtool() { - return libtool; - } - /** - * Obtains the same compiler, but with libtool set - * - * Default behavior is to ignore libtool - */ - public final CommandLineCompiler getLibtoolCompiler() { - if (libtoolCompiler != null) { - return libtoolCompiler; - } - return this; - } - abstract public int getMaximumCommandLength(); - protected int getMaximumInputFilesPerCommand() { - return Integer.MAX_VALUE; - } - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - return inputFile.length() + 1; - } - abstract protected void getUndefineSwitch(StringBuffer buffer, String define); - /** - * This method is exposed so test classes can overload and test the - * arguments without actually spawning the compiler - */ - protected int runCommand(CCTask task, File workingDir, String[] cmdline) - throws BuildException { - return CUtil.runCommand(task, workingDir, cmdline, newEnvironment, env); - } - protected final void setCommand(String command) { - this.command = command; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java deleted file mode 100644 index 4c53df105b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CompilerParam; -import net.sf.antcontrib.cpptasks.DependencyInfo; -import net.sf.antcontrib.cpptasks.ProcessorParam; - -import org.apache.tools.ant.BuildException; -/** - * A configuration for a C++ compiler - * - * @author Curt Arnold - */ -public final class CommandLineCompilerConfiguration - implements - CompilerConfiguration { - private/* final */String[] args; - private/* final */CommandLineCompiler compiler; - private String[] endArgs; - // - // include path from environment variable not - // explicitly stated in Ant script - private/* final */File[] envIncludePath; - private String[] exceptFiles; - private/* final */String identifier; - private/* final */File[] includePath; - private/* final */String includePathIdentifier; - private boolean isPrecompiledHeaderGeneration; - private/* final */ProcessorParam[] params; - private/* final */boolean rebuild; - private/* final */File[] sysIncludePath; - public CommandLineCompilerConfiguration(CommandLineCompiler compiler, - String identifier, File[] includePath, File[] sysIncludePath, - File[] envIncludePath, String includePathIdentifier, String[] args, - ProcessorParam[] params, boolean rebuild, String[] endArgs) { - if (compiler == null) { - throw new NullPointerException("compiler"); - } - if (identifier == null) { - throw new NullPointerException("identifier"); - } - if (includePathIdentifier == null) { - throw new NullPointerException("includePathIdentifier"); - } - if (args == null) { - this.args = new String[0]; - } else { - this.args = (String[]) args.clone(); - } - if (includePath == null) { - this.includePath = new File[0]; - } else { - this.includePath = (File[]) includePath.clone(); - } - if (sysIncludePath == null) { - this.sysIncludePath = new File[0]; - } else { - this.sysIncludePath = (File[]) sysIncludePath.clone(); - } - if (envIncludePath == null) { - this.envIncludePath = new File[0]; - } else { - this.envIncludePath = (File[]) envIncludePath.clone(); - } - this.compiler = compiler; - this.params = (ProcessorParam[]) params.clone(); - this.rebuild = rebuild; - this.identifier = identifier; - this.includePathIdentifier = includePathIdentifier; - this.endArgs = (String[]) endArgs.clone(); - exceptFiles = null; - isPrecompiledHeaderGeneration = false; - } - public CommandLineCompilerConfiguration( - CommandLineCompilerConfiguration base, String[] additionalArgs, - String[] exceptFiles, boolean isPrecompileHeaderGeneration) { - compiler = base.compiler; - identifier = base.identifier; - rebuild = base.rebuild; - includePath = (File[]) base.includePath.clone(); - sysIncludePath = (File[]) base.sysIncludePath.clone(); - endArgs = (String[]) base.endArgs.clone(); - envIncludePath = (File[]) base.envIncludePath.clone(); - includePathIdentifier = base.includePathIdentifier; - if (exceptFiles != null) { - this.exceptFiles = (String[]) exceptFiles.clone(); - } - this.isPrecompiledHeaderGeneration = isPrecompileHeaderGeneration; - args = new String[base.args.length + additionalArgs.length]; - for (int i = 0; i < base.args.length; i++) { - args[i] = base.args[i]; - } - int index = base.args.length; - for (int i = 0; i < additionalArgs.length; i++) { - args[index++] = additionalArgs[i]; - } - } - public int bid(String inputFile) { - int compilerBid = compiler.bid(inputFile); - if (compilerBid > 0 && exceptFiles != null) { - for (int i = 0; i < exceptFiles.length; i++) { - if (inputFile.equals(exceptFiles[i])) { - return 0; - } - } - } - return compilerBid; - } - public void compile(CCTask task, File outputDir, String[] sourceFiles, - boolean relentless, ProgressMonitor monitor) throws BuildException { - if (monitor != null) { - monitor.start(this); - } - try { - compiler.compile(task, outputDir, sourceFiles, args, endArgs, - relentless, this, monitor); - if (monitor != null) { - monitor.finish(this, true); - } - } catch (BuildException ex) { - if (monitor != null) { - monitor.finish(this, false); - } - throw ex; - } - } - /** - * - * This method may be used to get two distinct compiler configurations, one - * for compiling the specified file and producing a precompiled header - * file, and a second for compiling other files using the precompiled - * header file. - * - * The last (preferrably only) include directive in the prototype file will - * be used to mark the boundary between pre-compiled and normally compiled - * headers. - * - * @param prototype - * A source file (for example, stdafx.cpp) that is used to build - * the precompiled header file. @returns null if precompiled - * headers are not supported or a two element array containing - * the precompiled header generation configuration and the - * consuming configuration - * - */ - public CompilerConfiguration[] createPrecompileConfigurations( - File prototype, String[] nonPrecompiledFiles) { - if (compiler instanceof PrecompilingCompiler) { - return ((PrecompilingCompiler) compiler) - .createPrecompileConfigurations(this, prototype, - nonPrecompiledFiles); - } - return null; - } - /** - * Returns a string representation of this configuration. Should be - * canonical so that equivalent configurations will have equivalent string - * representations - */ - public String getIdentifier() { - return identifier; - } - public String getIncludePathIdentifier() { - return includePathIdentifier; - } - public String getOutputFileName(String inputFile) { - return compiler.getOutputFileName(inputFile); - } - public CompilerParam getParam(String name) { - for (int i = 0; i < params.length; i++) { - if (name.equals(params[i].getName())) - return (CompilerParam) params[i]; - } - return null; - } - public ProcessorParam[] getParams() { - return params; - } - public boolean getRebuild() { - return rebuild; - } - public boolean isPrecompileGeneration() { - return isPrecompiledHeaderGeneration; - } - public DependencyInfo parseIncludes(CCTask task, File baseDir, File source) { - return compiler.parseIncludes(task, source, includePath, - sysIncludePath, envIncludePath, baseDir, - getIncludePathIdentifier()); - } - public String toString() { - return identifier; - } - public String[] getPreArguments() { - return (String[]) args.clone(); - } - public String[] getEndArguments() { - return (String[]) endArgs.clone(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java deleted file mode 100644 index d01cb9e356..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.parser.FortranParser; -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.types.Environment; -/** - * An abstract Compiler implementation which uses an external program to - * perform the compile. - * - * @author Curt Arnold - */ -public abstract class CommandLineFortranCompiler extends CommandLineCompiler { - protected CommandLineFortranCompiler(String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - String outputSuffix, boolean libtool, - CommandLineFortranCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - outputSuffix, libtool, libtoolCompiler, newEnvironment, env); - } - protected Parser createParser(File source) { - return new FortranParser(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java deleted file mode 100644 index 4161469a8f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java +++ /dev/null @@ -1,404 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.LinkerDef; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.ProcessorParam; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.TargetDef; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; - - -/** - * An abstract Linker implementation that performs the link via an external - * command. - * - * @author Adam Murdoch - */ -public abstract class CommandLineLinker extends AbstractLinker -{ - private String command; - private Environment env = null; - private String identifier; - private String identifierArg; - private boolean isLibtool; - private String[] librarySets; - private CommandLineLinker libtoolLinker; - private boolean newEnvironment = false; - private String outputSuffix; - - - /** Creates a comand line linker invocation */ - public CommandLineLinker(String command, - String identifierArg, - String[] extensions, - String[] ignoredExtensions, String outputSuffix, - boolean isLibtool, CommandLineLinker libtoolLinker) - { - super(extensions, ignoredExtensions); - this.command = command; - this.identifierArg = identifierArg; - this.outputSuffix = outputSuffix; - this.isLibtool = isLibtool; - this.libtoolLinker = libtoolLinker; - } - protected abstract void addBase(long base, Vector args); - - protected abstract void addFixed(Boolean fixed, Vector args); - - abstract protected void addImpliedArgs(boolean debug, - LinkType linkType, Vector args, Boolean defaultflag); - protected abstract void addIncremental(boolean incremental, Vector args); - - // - // Windows processors handle these through file list - // - protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets, Vector preargs, - Vector midargs, Vector endargs) { - return null; - } - protected abstract void addMap(boolean map, Vector args); - protected abstract void addStack(int stack, Vector args); - protected abstract void addEntry(String entry, Vector args); - - protected LinkerConfiguration createConfiguration( - CCTask task, - LinkType linkType, - ProcessorDef[] baseDefs, LinkerDef specificDef, TargetDef targetPlatform) { - - Vector preargs = new Vector(); - Vector midargs = new Vector(); - Vector endargs = new Vector(); - Vector[] args = new Vector[] { preargs, midargs, endargs }; - - LinkerDef[] defaultProviders = new LinkerDef[baseDefs.length+1]; - defaultProviders[0] = specificDef; - for(int i = 0; i < baseDefs.length; i++) { - defaultProviders[i+1] = (LinkerDef) baseDefs[i]; - } - // - // add command line arguments inherited from element - // any "extends" and finally the specific CompilerDef - CommandLineArgument[] commandArgs; - for(int i = defaultProviders.length-1; i >= 0; i--) { - commandArgs = defaultProviders[i].getActiveProcessorArgs(); - for(int j = 0; j < commandArgs.length; j++) { - args[commandArgs[j].getLocation()]. - addElement(commandArgs[j].getValue()); - } - } - - Vector params = new Vector(); - // - // add command line arguments inherited from element - // any "extends" and finally the specific CompilerDef - ProcessorParam[] paramArray; - for (int i = defaultProviders.length - 1; i >= 0; i--) { - paramArray = defaultProviders[i].getActiveProcessorParams(); - for (int j = 0; j < paramArray.length; j++) { - params.add(paramArray[j]); - } - } - - paramArray = (ProcessorParam[])(params.toArray(new ProcessorParam[params.size()])); - - boolean debug = specificDef.getDebug(baseDefs,0); - - - String startupObject = getStartupObject(linkType); - Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1); - addImpliedArgs(debug, linkType, preargs, defaultflag); - addIncremental(specificDef.getIncremental(defaultProviders,1), preargs); - addFixed(specificDef.getFixed(defaultProviders,1), preargs); - addMap(specificDef.getMap(defaultProviders,1), preargs); - addBase(specificDef.getBase(defaultProviders,1), preargs); - addStack(specificDef.getStack(defaultProviders,1), preargs); - addEntry(specificDef.getEntry(defaultProviders, 1), preargs); - - String[] libnames = null; - LibrarySet[] libsets = specificDef.getActiveLibrarySets(defaultProviders,1); - if (libsets.length > 0) { - libnames = addLibrarySets(task, libsets, preargs, midargs, endargs); - } - - StringBuffer buf = new StringBuffer(getIdentifier()); - for (int i = 0; i < 3; i++) { - Enumeration argenum = args[i].elements(); - while (argenum.hasMoreElements()) { - buf.append(' '); - buf.append(argenum.nextElement().toString()); - } - } - String configId = buf.toString(); - - String[][] options = new String[][] { - new String[args[0].size() + args[1].size()], - new String[args[2].size()] }; - args[0].copyInto(options[0]); - int offset = args[0].size(); - for (int i = 0; i < args[1].size(); i++) { - options[0][i+offset] = (String) args[1].elementAt(i); - } - args[2].copyInto(options[1]); - - - boolean rebuild = specificDef.getRebuild(baseDefs,0); - boolean map = specificDef.getMap(defaultProviders,1); - - //task.log("libnames:"+libnames.length, Project.MSG_VERBOSE); - return new CommandLineLinkerConfiguration(this,configId,options, - paramArray, - rebuild,map,libnames, startupObject); - } - - /** - * Allows drived linker to decorate linker option. - * Override by GccLinker to prepend a "-Wl," to - * pass option to through gcc to linker. - * - * @param buf buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg linker argument - */ - protected String decorateLinkerOption(StringBuffer buf, String arg) { - return arg; - } - - protected final String getCommand() { - return command; - } - protected abstract String getCommandFileSwitch(String commandFile); - - - public String getIdentifier() { - if(identifier == null) { - if (identifierArg == null) { - identifier = getIdentifier(new String[] { command }, command); - } else { - identifier = getIdentifier(new String[] { command, identifierArg }, - command); - } - } - return identifier; - } - public final CommandLineLinker getLibtoolLinker() { - if (libtoolLinker != null) { - return libtoolLinker; - } - return this; - } - protected abstract int getMaximumCommandLength(); - - public String getOutputFileName(String baseName) { - return baseName + outputSuffix; - } - - protected String[] getOutputFileSwitch(CCTask task, String outputFile) { - return getOutputFileSwitch(outputFile); - } - protected abstract String[] getOutputFileSwitch(String outputFile); - protected String getStartupObject(LinkType linkType) { - return null; - } - - /** - * Performs a link using a command line linker - * - */ - public void link(CCTask task, - File outputFile, - String[] sourceFiles, - CommandLineLinkerConfiguration config) - throws BuildException - { - File parentDir = new File(outputFile.getParent()); - String parentPath; - try { - parentPath = parentDir.getCanonicalPath(); - } catch(IOException ex) { - parentPath = parentDir.getAbsolutePath(); - } - String[] execArgs = prepareArguments(task, parentPath,outputFile.getName(), - sourceFiles, config); - int commandLength = 0; - for(int i = 0; i < execArgs.length; i++) { - commandLength += execArgs[i].length() + 1; - } - - // - // if command length exceeds maximum - // (1024 for Windows) then create a temporary - // file containing everything but the command name - if(commandLength >= this.getMaximumCommandLength()) { - try { - execArgs = prepareResponseFile(outputFile,execArgs); - } - catch(IOException ex) { - throw new BuildException(ex); - } - } - - int retval = runCommand(task,parentDir,execArgs); - // - // if the process returned a failure code then - // throw an BuildException - // - if(retval != 0) { - // - // construct the exception - // - throw new BuildException(this.getCommand() + " failed with return code " + retval, task.getLocation()); - } - - } - - - /** - * Prepares argument list for exec command. Will return null - * if command line would exceed allowable command line buffer. - * - * @param outputFile linker output file - * @param sourceFiles linker input files (.obj, .o, .res) - * @param args linker arguments - * @return arguments for runTask - */ - protected String[] prepareArguments( - CCTask task, - String outputDir, - String outputFile, - String[] sourceFiles, - CommandLineLinkerConfiguration config) { - - String[] preargs = config.getPreArguments(); - String[] endargs = config.getEndArguments(); - String outputSwitch[] = getOutputFileSwitch(task, outputFile); - int allArgsCount = preargs.length + 1 + outputSwitch.length + - sourceFiles.length + endargs.length; - if (isLibtool) { - allArgsCount++; - } - String[] allArgs = new String[allArgsCount]; - int index = 0; - if (isLibtool) { - allArgs[index++] = "libtool"; - } - allArgs[index++] = this.getCommand(); - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < preargs.length; i++) { - allArgs[index++] = decorateLinkerOption(buf, preargs[i]); - } - for (int i = 0; i < outputSwitch.length; i++) { - allArgs[index++] = outputSwitch[i]; - } - for (int i = 0; i < sourceFiles.length; i++) { - allArgs[index++] = prepareFilename(buf,outputDir,sourceFiles[i]); - } - for (int i = 0; i < endargs.length; i++) { - allArgs[index++] = decorateLinkerOption(buf, endargs[i]); - } - return allArgs; - } - - /** - * Processes filename into argument form - * - */ - protected String prepareFilename(StringBuffer buf, - String outputDir, String sourceFile) { - String relativePath = CUtil.getRelativePath(outputDir, - new File(sourceFile)); - return quoteFilename(buf,relativePath); - } - - /** - * Prepares argument list to execute the linker using a - * response file. - * - * @param outputFile linker output file - * @param args output of prepareArguments - * @return arguments for runTask - */ - protected String[] prepareResponseFile(File outputFile,String[] args) throws IOException - { - String baseName = outputFile.getName(); - File commandFile = new File(outputFile.getParent(),baseName + ".rsp"); - FileWriter writer = new FileWriter(commandFile); - int execArgCount = 1; - if (isLibtool) { - execArgCount++; - } - String[] execArgs = new String[execArgCount+1]; - for (int i = 0; i < execArgCount; i++) { - execArgs[i] = args[i]; - } - execArgs[execArgCount] = getCommandFileSwitch(commandFile.toString()); - for(int i = execArgCount; i < args.length; i++) { - // - // if embedded space and not quoted then - // quote argument - if (args[i].indexOf(" ") >= 0 && args[i].charAt(0) != '\"') { - writer.write('\"'); - writer.write(args[i]); - writer.write("\"\n"); - } else { - writer.write(args[i]); - writer.write('\n'); - } - } - writer.close(); - return execArgs; - } - - - protected String quoteFilename(StringBuffer buf,String filename) { - if(filename.indexOf(' ') >= 0) { - buf.setLength(0); - buf.append('\"'); - buf.append(filename); - buf.append('\"'); - return buf.toString(); - } - return filename; - } - - /** - * This method is exposed so test classes can overload - * and test the arguments without actually spawning the - * compiler - */ - protected int runCommand(CCTask task, File workingDir,String[] cmdline) - throws BuildException { - return CUtil.runCommand(task,workingDir,cmdline, newEnvironment, env); - } - - protected final void setCommand(String command) { - this.command = command; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java deleted file mode 100644 index b3a7290b00..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.ProcessorParam; -import net.sf.antcontrib.cpptasks.TargetInfo; - -import org.apache.tools.ant.BuildException; -/** - * A configuration for a command line linker - * - * @author Curt Arnold - */ -public final class CommandLineLinkerConfiguration - implements - LinkerConfiguration { - private/* final */String[][] args; - private/* final */String identifier; - private String[] libraryNames; - private/* final */CommandLineLinker linker; - private/* final */boolean map; - private/* final */ProcessorParam[] params; - private/* final */boolean rebuild; - private String startupObject; - public CommandLineLinkerConfiguration(CommandLineLinker linker, - String identifier, String[][] args, ProcessorParam[] params, - boolean rebuild, boolean map, String[] libraryNames, - String startupObject) { - if (linker == null) { - throw new NullPointerException("linker"); - } - if (args == null) { - throw new NullPointerException("args"); - } else { - this.args = (String[][]) args.clone(); - } - this.linker = linker; - this.params = (ProcessorParam[]) params.clone(); - this.rebuild = rebuild; - this.identifier = identifier; - this.map = map; - if (libraryNames == null) { - this.libraryNames = new String[0]; - } else { - this.libraryNames = (String[]) libraryNames.clone(); - } - this.startupObject = startupObject; - } - public int bid(String filename) { - return linker.bid(filename); - } - public String[] getEndArguments() { - String[] clone = (String[]) args[1].clone(); - return clone; - } - /** - * Returns a string representation of this configuration. Should be - * canonical so that equivalent configurations will have equivalent string - * representations - */ - public String getIdentifier() { - return identifier; - } - public String[] getLibraryNames() { - String[] clone = (String[]) libraryNames.clone(); - return clone; - } - public boolean getMap() { - return map; - } - public String getOutputFileName(String inputFile) { - return linker.getOutputFileName(inputFile); - } - public LinkerParam getParam(String name) { - for (int i = 0; i < params.length; i++) { - if (name.equals(params[i].getName())) - return (LinkerParam) params[i]; - } - return null; - } - public ProcessorParam[] getParams() { - return params; - } - public String[] getPreArguments() { - String[] clone = (String[]) args[0].clone(); - return clone; - } - public boolean getRebuild() { - return rebuild; - } - public String getStartupObject() { - return startupObject; - } - public void link(CCTask task, TargetInfo linkTarget) throws BuildException { - // - // AllSourcePath's include any syslibsets - // - String[] sourcePaths = linkTarget.getAllSourcePaths(); - linker.link(task, linkTarget.getOutput(), sourcePaths, this); - } - public String toString() { - return identifier; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java deleted file mode 100644 index bbb6c99c5d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -/** - * A compiler. - * - * @author Adam Murdoch - */ -public interface Compiler extends Processor { -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java deleted file mode 100644 index 72abb8b5f4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CompilerParam; -import net.sf.antcontrib.cpptasks.DependencyInfo; - -import org.apache.tools.ant.BuildException; -/** - * A configuration for a compiler - * - * @author Curt Arnold - */ -public interface CompilerConfiguration extends ProcessorConfiguration { - void compile(CCTask task, File outputDir, String[] sourceFiles, - boolean relentless, ProgressMonitor monitor) throws BuildException; - /** - * - * This method may be used to get two distinct compiler configurations, one - * for compiling the specified file and producing a precompiled header - * file, and a second for compiling other files using the precompiled - * header file. - * - * The last (preferrably only) include directive in the prototype file will - * be used to mark the boundary between pre-compiled and normally compiled - * headers. - * - * @param prototype - * A source file (for example, stdafx.cpp) that is used to build - * the precompiled header file. @returns null if precompiled - * headers are not supported or a two element array containing - * the precompiled header generation configuration and the - * consuming configuration - * - */ - CompilerConfiguration[] createPrecompileConfigurations(File prototype, - String[] nonPrecompiledFiles); - /** - * Returns an digest for the include path for the configuration. - * - * This is used to determine if cached dependency information is invalid - * because the include paths have changed - */ - String getIncludePathIdentifier(); - public CompilerParam getParam(String name); - boolean isPrecompileGeneration(); - DependencyInfo parseIncludes(CCTask task, File baseDir, File source); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java deleted file mode 100644 index 7d6041ff93..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import net.sf.antcontrib.cpptasks.OutputTypeEnum; -import net.sf.antcontrib.cpptasks.SubsystemEnum; -/** - * This class represents the target platform for the compile and link step. The - * name is an anachronism and should be changed. - * - * @author Curt Arnold - */ -public class LinkType { - private OutputTypeEnum outputType = new OutputTypeEnum(); - private boolean staticRuntime = false; - private SubsystemEnum subsystem = new SubsystemEnum(); - /** - * Constructor - * - * By default, an gui executable with a dynamically linked runtime - * - */ - public LinkType() { - } - /** - * Gets whether the link should produce an executable - * - * @return boolean - */ - public boolean isExecutable() { - String value = outputType.getValue(); - return value.equals("executable"); - } - /** - * Gets whether the link should produce a plugin module. - * - * @return boolean - */ - public boolean isPluginModule() { - String value = outputType.getValue(); - return value.equals("plugin"); - } - /** - * Gets whether the link should produce a shared library. - * - * @return boolean - */ - public boolean isSharedLibrary() { - String value = outputType.getValue(); - return value.equals("shared") || value.equals("plugin"); - } - /** - * Gets whether the link should produce a static library. - * - * @return boolean - */ - public boolean isStaticLibrary() { - String value = outputType.getValue(); - return value.equals("static"); - } - /** - * Gets whether the module should use a statically linked runtime library. - * - * @return boolean - */ - public boolean isStaticRuntime() { - return staticRuntime; - } - /** - * Gets whether the link should produce a module for a console subsystem. - * - * @return boolean - */ - public boolean isSubsystemConsole() { - String value = subsystem.getValue(); - return value.equals("console"); - } - /** - * Gets whether the link should produce a module for a graphical user - * interface subsystem. - * - * @return boolean - */ - public boolean isSubsystemGUI() { - String value = subsystem.getValue(); - return value.equals("gui"); - } - /** - * Sets the output type (execuable, shared, etc). - * - * @param outputType, - * may not be null - */ - public void setOutputType(OutputTypeEnum outputType) { - if (outputType == null) { - throw new IllegalArgumentException("outputType"); - } - this.outputType = outputType; - } - /** - * Requests use of a static runtime library. - * - * @param staticRuntime - * if true, use static runtime library if possible. - */ - public void setStaticRuntime(boolean staticRuntime) { - this.staticRuntime = staticRuntime; - } - /** - * Sets the subsystem (gui, console, etc). - * - * @param subsystem - * subsystem, may not be null - */ - public void setSubsystem(SubsystemEnum subsystem) { - if (subsystem == null) { - throw new IllegalArgumentException("subsystem"); - } - this.subsystem = subsystem; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java deleted file mode 100644 index 776a808ac7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -/** - * A linker for executables, and static and dynamic libraries. - * - * @author Adam Murdoch - */ -public interface Linker extends Processor { - /** - * Extracts the significant part of a library name to ensure there aren't - * collisions - */ - String getLibraryKey(File libname); - /** - * returns the library path for the linker - */ - File[] getLibraryPath(); - /** - * Returns a set of filename patterns corresponding to library names. - * - * For example, "advapi32" would be expanded to "advapi32.dll" by - * DevStudioLinker and to "libadvapi32.a" and "libadvapi32.so" by - * GccLinker. - * - * @param libnames - * array of library names - */ - String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libraryType); - /** - * Gets the linker for the specified link type. - * - * @return appropriate linker or null, will return this if this linker can - * handle the specified link type - */ - Linker getLinker(LinkType linkType); - /** - * Returns true if the linker is case-sensitive - */ - boolean isCaseSensitive(); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java deleted file mode 100644 index c2d62c4137..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.TargetInfo; - -import org.apache.tools.ant.BuildException; -/** - * A configuration for a linker - * - * @author Curt Arnold - */ -public interface LinkerConfiguration extends ProcessorConfiguration { - public LinkerParam getParam(String name); - void link(CCTask task, TargetInfo linkTarget) throws BuildException; -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java deleted file mode 100644 index eb64119299..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; - -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.types.Environment; -/** - * A command line C compiler that can utilize precompilation of header files - * - * @author Curt Arnold - */ -public abstract class PrecompilingCommandLineCCompiler - extends - PrecompilingCommandLineCompiler { - protected PrecompilingCommandLineCCompiler(String command, - String identifierArg, String[] sourceExtensions, - String[] headerExtensions, String outputSuffix, boolean libtool, - PrecompilingCommandLineCCompiler libtoolCompiler, - boolean newEnvironment, Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - outputSuffix, libtool, libtoolCompiler, newEnvironment, env); - } - protected Parser createParser(File source) { - return new CParser(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java deleted file mode 100644 index 6e3c145675..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; - -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -/** - * A command line C compiler that can utilize precompilation of header files - * - * @author Curt Arnold - */ -public abstract class PrecompilingCommandLineCompiler - extends - CommandLineCompiler implements PrecompilingCompiler { - protected PrecompilingCommandLineCompiler(String command, - String identifierArg, String[] sourceExtensions, - String[] headerExtensions, String outputSuffix, boolean libtool, - PrecompilingCommandLineCompiler libtoolCompiler, - boolean newEnvironment, Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - outputSuffix, libtool, libtoolCompiler, newEnvironment, env); - } - /** - * - * This method may be used to get two distinct compiler configurations, one - * for compiling the specified file and producing a precompiled header - * file, and a second for compiling other files using the precompiled - * header file. - * - * The last (preferrably only) include directive in the prototype file will - * be used to mark the boundary between pre-compiled and normally compiled - * headers. - * - * @param config - * base configuration - * @param prototype - * A source file (for example, stdafx.cpp) that is used to build - * the precompiled header file. @returns null if precompiled - * headers are not supported or a two element array containing - * the precompiled header generation configuration and the - * consuming configuration - * - */ - public CompilerConfiguration[] createPrecompileConfigurations( - CompilerConfiguration config, File prototype, String[] exceptFiles) { - // - // cast should success or someone is passing us a configuration - // that was prepared by another processor - // - CommandLineCompilerConfiguration cmdLineConfig = (CommandLineCompilerConfiguration) config; - // - // parse prototype file to determine last header - // - Parser parser = createParser(prototype); - String[] includes; - try { - Reader reader = new BufferedReader(new FileReader(prototype)); - parser.parse(reader); - includes = parser.getIncludes(); - } catch (IOException ex) { - throw new BuildException( - "Error parsing precompiled header protoype: " - + prototype.toString() + ":" + ex.toString()); - } - if (includes.length == 0) { - throw new BuildException("Precompiled header prototype: " - + prototype.toString() - + " does not contain any include directives."); - } - CompilerConfiguration[] configs = new CompilerConfiguration[2]; - configs[0] = createPrecompileGeneratingConfig(cmdLineConfig, prototype, - includes[0]); - configs[1] = createPrecompileUsingConfig(cmdLineConfig, prototype, - includes[0], exceptFiles); - return configs; - } - abstract protected CompilerConfiguration createPrecompileGeneratingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude); - abstract protected CompilerConfiguration createPrecompileUsingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude, String[] exceptFiles); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java deleted file mode 100644 index e60b1da8e6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import java.io.File; -/** - * A compiler that can utilize precompilation of header files - * - * @author Curt Arnold - */ -public interface PrecompilingCompiler { - /** - * - * This method may be used to get two distinct compiler configurations, one - * for compiling the specified file and producing a precompiled header - * file, and a second for compiling other files using the precompiled - * header file. - * - * The last (preferrably only) include directive in the prototype file will - * be used to mark the boundary between pre-compiled and normally compiled - * headers. - * - * @param config - * base configuration - * @param prototype - * A source file (for example, stdafx.cpp) that is used to build - * the precompiled header file. @returns null if precompiled - * headers are not supported or a two element array containing - * the precompiled header generation configuration and the - * consuming configuration - * - */ - CompilerConfiguration[] createPrecompileConfigurations( - CompilerConfiguration config, File prototype, - String[] nonPrecompiledFiles); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java deleted file mode 100644 index 6fb74e9ea3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.TargetDef; -import org.apache.tools.ant.types.Environment; -/** - * A processor. Base interface for Compiler and Linker - * - * @author Curt Arnold - */ -public interface Processor { - /** - * Returns a bid indicating the desire of this compiler to process the - * file. - * - * @param inputFile - * input file - * @return 0 = no interest, 100 = high interest - */ - int bid(String inputFile); - Processor changeEnvironment(boolean newEnvironment, Environment env); - /** - * Returns the compiler configuration for or element. - * - * @param defaultProviders - * When specificConfig corresponds to a or linker - * element, defaultProvider will be a zero to two element array. - * If there is an extends attribute, the first element will be - * the referenced ProcessorDef, unless inherit = false, the last - * element will be the containing element - * @param specificConfig - * A or element. - * @return resulting configuration - */ - ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType, - ProcessorDef[] defaultProviders, ProcessorDef specificConfig, - TargetDef targetPlatform); - /** - * Retrieve an identifier that identifies the specific version of the - * compiler. Compilers with the same identifier should produce the same - * output files for the same input files and command line switches. - */ - String getIdentifier(); - /** - * Gets the linker that is associated with this processors - */ - Linker getLinker(LinkType type); - /** - * Output file name (no path components) corresponding to source file - * - * @param inputFile - * input file - * @return output file name or null if no output file or name not - * determined by input file - */ - String getOutputFileName(String inputFile); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java deleted file mode 100644 index dd75483d6d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -import net.sf.antcontrib.cpptasks.ProcessorParam; -/** - * A configuration for a C++ compiler, linker or other processor - * - * @author Curt Arnold - */ -public interface ProcessorConfiguration { - /** - * An indication of how much this compiler would like to process this file - * - * @return 0 is no interest to process, 100 is strong interest to process - */ - int bid(String filename); - /** - * Returns a string representation of this configuration. Should be - * canonical so that equivalent configurations will have equivalent string - * representations - */ - String getIdentifier(); - /** - * Output file name (no path components) corresponding to source file - * - * @param inputFile - * input file - * @return output file name or null if no output file or name not - * determined by input file - */ - String getOutputFileName(String inputFile); - ProcessorParam[] getParams(); - /** - * If true, all files using this configuration should be rebuilt and any - * existing output files should be ignored - */ - boolean getRebuild(); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java deleted file mode 100644 index 2206ed874e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.compiler; -/** - * Interface to receive notification of compile progress - * - * @author Curt Arnold - */ -public interface ProgressMonitor { - public void finish(ProcessorConfiguration config, boolean normal); - /** - * Called to notify monitor of progress - * - */ - void progress(String[] sources); - public void start(ProcessorConfiguration config); -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java deleted file mode 100644 index f0be5945a3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; - -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineAslcompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; - -/** - * Adaptor for Microsoft ASL compiler. - * - */ -public final class DevStudioAslcompiler extends CommandLineAslcompiler { - private final static String[] sourceExtensions = new String[] { ".asl" }; - - private final static String[] headerExtensions = new String[] {}; - - private final static String[] defaultflags = new String[] {}; - - private static final DevStudioAslcompiler instance = new DevStudioAslcompiler( - "asl", sourceExtensions, headerExtensions, false); - - /** - * Gets asl adapter - */ - public static DevStudioAslcompiler getInstance() { - return instance; - } - - /** - * Private constructor. Use DevStudioAslcompiler.getInstance() to get - * singleton instance of this class. - */ - private DevStudioAslcompiler (String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool) { - super(command, null, sourceExtensions, headerExtensions, ".aml"); - } - - public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) { - if (defaultflag != null && defaultflag.booleanValue()) { - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - } - - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - - public Linker getLinker(LinkType linkType) { - return DevStudioLinker.getInstance().getLinker(linkType); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java deleted file mode 100644 index 23d319ecd9..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; - -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineAssembler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; - -/** - * Adaptor for Microsoft MASM - * - */ -public final class DevStudioAssembler extends CommandLineAssembler { - private final static String[] sourceExtensions = new String[] { ".asm" }; - - private final static String[] headerExtensions = new String[] { ".h", - ".inc" }; - - private final static String[] defaultflags = new String[] { "/nologo", "/c" }; - - private static final DevStudioAssembler instance = new DevStudioAssembler( - "ml", sourceExtensions, headerExtensions, false); - - /** - * Gets masm adapter - */ - public static DevStudioAssembler getInstance() { - return instance; - } - - /** - * Private constructor. Use DevStudioAssembler.getInstance() to get - * singleton instance of this class. - */ - private DevStudioAssembler (String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool) { - super(command, null, sourceExtensions, headerExtensions, ".obj"); - } - - public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) { - if (defaultflag != null && defaultflag.booleanValue()) { - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - if (debug) { - args.addElement("Zi"); - } - } - - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - - public Linker getLinker(LinkType linkType) { - return DevStudioLinker.getInstance().getLinker(linkType); - } - - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ";"); - } - - protected String getIncludeDirSwitch(String includeDir) { - return "/I" + includeDir.replace('/', '\\'); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java deleted file mode 100644 index 3bb5181250..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Microsoft(r) C/C++ Optimizing Compiler - * - * @author Adam Murdoch - */ -public final class DevStudioCCompiler extends DevStudioCompatibleCCompiler { - private static final DevStudioCCompiler instance = new DevStudioCCompiler( - "cl", false, null); - public static DevStudioCCompiler getInstance() { - return instance; - } - private DevStudioCCompiler(String command, boolean newEnvironment, - Environment env) { - super(command, "/bogus", newEnvironment, env); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new DevStudioCCompiler(getCommand(), newEnvironment, env); - } - return this; - } - public Linker getLinker(LinkType type) { - return DevStudioLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 4096; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java deleted file mode 100644 index 5e29a323c7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.PrecompilingCommandLineCCompiler; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * An abstract base class for compilers that are basically command line - * compatible with Microsoft(r) C/C++ Optimizing Compiler - * - * @author Curt Arnold - */ -public abstract class DevStudioCompatibleCCompiler - extends - PrecompilingCommandLineCCompiler { - private static String[] mflags = new String[]{ - // - // first four are single-threaded - // (runtime=static,debug=false), (..,debug=true), - // (runtime=dynamic,debug=true), (..,debug=false), (not supported) - // next four are multi-threaded, same sequence - "/ML", "/MLd", null, null, "/MT", "/MTd", "/MD", "/MDd"}; - private static String[] defaultflags = new String[]{"/nologo", "/c"}; - protected DevStudioCompatibleCCompiler(String command, - String identifierArg, boolean newEnvironment, Environment env) { - super(command, identifierArg, new String[]{".c", ".cc", ".cpp", ".cxx", - ".c++"}, new String[]{".h", ".hpp", ".inl"}, ".obj", false, - null, newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - if (defaultflag != null && defaultflag.booleanValue()) { - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - if (exceptions) { - args.addElement("/GX"); - } - int mindex = 0; - if (multithreaded) { - mindex += 4; - } - boolean staticRuntime = linkType.isStaticRuntime(); - if (!staticRuntime) { - mindex += 2; - } - if (debug) { - mindex += 1; - args.addElement("/Zi"); - args.addElement("/Od"); - args.addElement("/GZ"); - args.addElement("/D_DEBUG"); - } else { - if (optimization != null) { - if (optimization.isSize()) { - args.addElement("/O1"); - } - if (optimization.isSpeed()) { - args.addElement("/O2"); - } - } - args.addElement("/DNDEBUG"); - } - String mflag = mflags[mindex]; - if (mflag == null) { - throw new BuildException( - "multithread='false' and runtime='dynamic' not supported"); - } - args.addElement(mflag); - if (rtti != null && rtti.booleanValue()) { - args.addElement("/GR"); - } - } - protected void addWarningSwitch(Vector args, int level) { - DevStudioProcessor.addWarningSwitch(args, level); - } - protected CompilerConfiguration createPrecompileGeneratingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude) { - String[] additionalArgs = new String[]{ - "/Fp" + CUtil.getBasename(prototype) + ".pch", "/Yc"}; - return new CommandLineCompilerConfiguration(baseConfig, additionalArgs, - null, true); - } - protected CompilerConfiguration createPrecompileUsingConfig( - CommandLineCompilerConfiguration baseConfig, File prototype, - String lastInclude, String[] exceptFiles) { - String[] additionalArgs = new String[]{ - "/Fp" + CUtil.getBasename(prototype) + ".pch", - "/Yu" + lastInclude}; - return new CommandLineCompilerConfiguration(baseConfig, additionalArgs, - exceptFiles, false); - } - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - DevStudioProcessor.getDefineSwitch(buffer, define, value); - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ";"); - } - protected String getIncludeDirSwitch(String includeDir) { - return DevStudioProcessor.getIncludeDirSwitch(includeDir); - } - protected void getUndefineSwitch(StringBuffer buffer, String define) { - DevStudioProcessor.getUndefineSwitch(buffer, define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java deleted file mode 100644 index 40bef6e239..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -/** - * Abstract base adapter for librarians with command line options compatible - * with the Microsoft(r) Library Manager - * - * @author Curt Arnold - */ -public abstract class DevStudioCompatibleLibrarian extends CommandLineLinker { - private static String[] defaultflags = new String[]{"/nologo"}; - public DevStudioCompatibleLibrarian(String command, String identifierArg) { - super(command, identifierArg, new String[]{".obj"}, new String[0], - ".lib", false, null); - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, - Vector args, Boolean defaultflag) { - if(defaultflag != null && defaultflag.booleanValue()){ - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - protected String getCommandFileSwitch(String cmdFile) { - return "@" + cmdFile; - } - public File[] getLibraryPath() { - return new File[0]; - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return new String[0]; - } - public int getMaximumCommandLength() { - return 4096; - } - public String[] getOutputFileSwitch(String outFile) { - StringBuffer buf = new StringBuffer("/OUT:"); - if (outFile.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(outFile); - buf.append('"'); - } else { - buf.append(outFile); - } - return new String[]{buf.toString()}; - } - public boolean isCaseSensitive() { - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java deleted file mode 100644 index 9e156b0426..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -/** - * Abstract base class for linkers that try to mimic the command line arguments - * for the Microsoft (r) Incremental Linker - * - * @author Curt Arnold - */ -public abstract class DevStudioCompatibleLinker extends CommandLineLinker { - private static String[] defaultflags = new String[]{"/NOLOGO"}; - public DevStudioCompatibleLinker(String command, String identifierArg, - String outputSuffix) { - super(command, identifierArg, new String[]{".obj", ".lib", ".res"}, - new String[]{".map", ".pdb", ".lnk", ".dll"}, outputSuffix, - false, null); - } - protected void addBase(long base, Vector args) { - if (base >= 0) { - String baseAddr = Long.toHexString(base); - args.addElement("/BASE:0x" + baseAddr); - } - } - protected void addFixed(Boolean fixed, Vector args) { - if (fixed != null) { - if (fixed.booleanValue()) { - args.addElement("/FIXED"); - } else { - args.addElement("/FIXED:NO"); - } - } - } - protected void addImpliedArgs(boolean debug, LinkType linkType, - Vector args, Boolean defaultflag) { - if(defaultflag != null && defaultflag.booleanValue()){ - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - if (debug) { - args.addElement("/DEBUG"); - } - if (linkType.isSharedLibrary()) { - args.addElement("/DLL"); - } - /* - * if(linkType.isSubsystemGUI()) { - * args.addElement("/SUBSYSTEM:WINDOWS"); } else { - * if(linkType.isSubsystemConsole()) { - * args.addElement("/SUBSYSTEM:CONSOLE"); } } - */ - } - protected void addIncremental(boolean incremental, Vector args) { - if (incremental) { - args.addElement("/INCREMENTAL:YES"); - } else { - args.addElement("/INCREMENTAL:NO"); - } - } - protected void addMap(boolean map, Vector args) { - if (map) { - args.addElement("/MAP"); - } - } - protected void addStack(int stack, Vector args) { - if (stack >= 0) { - String stackStr = Integer.toHexString(stack); - args.addElement("/STACK:0x" + stackStr); - } - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - if (entry != null) { - args.addElement("/ENTRY:" + entry); - } - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length]; - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(libnames[i]); - buf.append(".lib"); - patterns[i] = buf.toString(); - } - return patterns; - } - public int getMaximumCommandLength() { - return 4096; - } - public String[] getOutputFileSwitch(String outputFile) { - return new String[]{"/OUT:" + outputFile}; - } - public boolean isCaseSensitive() { - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java deleted file mode 100644 index 06eac71e19..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -/** - * Adapter for the Microsoft (r) Library Manager - * - * @author Curt Arnold - */ -public final class DevStudioLibrarian extends DevStudioCompatibleLibrarian { - private static final DevStudioLibrarian instance = new DevStudioLibrarian(); - public static DevStudioLibrarian getInstance() { - return instance; - } - private DevStudioLibrarian() { - super("lib", "/bogus"); - } - public Linker getLinker(LinkType type) { - return DevStudioLinker.getInstance().getLinker(type); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java deleted file mode 100644 index 7ae0178a8b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -/** - * Adapter for the Microsoft (r) Incremental Linker - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public final class DevStudioLinker extends DevStudioCompatibleLinker { - private static final DevStudioLinker dllLinker = new DevStudioLinker(".dll"); - private static final DevStudioLinker instance = new DevStudioLinker(".exe"); - public static DevStudioLinker getInstance() { - return instance; - } - private DevStudioLinker(String outputSuffix) { - super("link", "/DLL", outputSuffix); - } - public Linker getLinker(LinkType type) { - if (type.isSharedLibrary()) { - return dllLinker; - } - if (type.isStaticLibrary()) { - return DevStudioLibrarian.getInstance(); - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java deleted file mode 100644 index 7df898b92f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.Parser; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * Adapter for the Microsoft (r) MIDL Compiler - * - * @author Curt Arnold - */ -public final class DevStudioMIDLCompiler extends CommandLineCompiler { - private static final DevStudioMIDLCompiler instance = new DevStudioMIDLCompiler( - false, null); - public static DevStudioMIDLCompiler getInstance() { - return instance; - } - private DevStudioMIDLCompiler(boolean newEnvironment, Environment env) { - super("midl", null, new String[]{".idl", ".odl"}, new String[]{}, - ".tlb", false, null, newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - } - protected void addWarningSwitch(Vector args, int level) { - DevStudioProcessor.addWarningSwitch(args, level); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new DevStudioMIDLCompiler(newEnvironment, env); - } - return this; - } - /** - * The include parser for C will work just fine, but we didn't want to - * inherit from CommandLineCCompiler - */ - protected Parser createParser(File source) { - return new CParser(); - } - protected int getArgumentCountPerInputFile() { - return 3; - } - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - DevStudioProcessor.getDefineSwitch(buffer, define, value); - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ";"); - } - protected String getIncludeDirSwitch(String includeDir) { - return DevStudioProcessor.getIncludeDirSwitch(includeDir); - } - protected String getInputFileArgument(File outputDir, String filename, - int index) { - switch (index) { - case 0 : - return "/tlb"; - case 1 : - return new File(outputDir, getOutputFileName(filename)) - .getAbsolutePath(); - } - return filename; - } - public Linker getLinker(LinkType type) { - return DevStudioLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - protected int getMaximumInputFilesPerCommand() { - return 1; - } - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - String arg1 = getInputFileArgument(outputDir, inputFile, 0); - String arg2 = getInputFileArgument(outputDir, inputFile, 1); - String arg3 = getInputFileArgument(outputDir, inputFile, 2); - return arg1.length() + arg2.length() + arg3.length() + 3; - } - protected void getUndefineSwitch(StringBuffer buffer, String define) { - DevStudioProcessor.getUndefineSwitch(buffer, define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java deleted file mode 100644 index 6b2af7ed54..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.util.Vector; -/** - * A add-in class for Microsoft Developer Studio processors - * - * - */ -public class DevStudioProcessor { - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("/W0"); - break; - case 1 : - args.addElement("/W1"); - break; - case 2 : - break; - case 3 : - args.addElement("/W3"); - break; - case 4 : - args.addElement("/W4"); - break; - case 5 : - args.addElement("/WX"); - break; - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - if (cmdFile.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(cmdFile.replace('/', '\\')); - buf.append('\"'); - } else { - buf.append(cmdFile); - } - return buf.toString(); - } - public static void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("/D"); - buffer.append(define); - if (value != null && value.length() > 0) { - buffer.append('='); - buffer.append(value); - } - } - public static String getIncludeDirSwitch(String includeDir) { - return "/I" + includeDir.replace('/', '\\'); - } - public static String[] getOutputFileSwitch(String outPath) { - StringBuffer buf = new StringBuffer("/Fo"); - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - String[] retval = new String[]{buf.toString()}; - return retval; - } - public static void getUndefineSwitch(StringBuffer buffer, String define) { - buffer.append("/U"); - buffer.append(define); - } - public static boolean isCaseSensitive() { - return false; - } - private DevStudioProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java deleted file mode 100644 index d6e2fd4442..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.devstudio; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.Parser; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Microsoft (r) Windows 32 Resource Compiler - * - * @author Curt Arnold - */ -public final class DevStudioResourceCompiler extends CommandLineCompiler { - private static final DevStudioResourceCompiler instance = new DevStudioResourceCompiler( - false, null); - public static DevStudioResourceCompiler getInstance() { - return instance; - } - private String identifier; - private DevStudioResourceCompiler(boolean newEnvironment, Environment env) { - super("rc", null, new String[]{".rc"}, new String[]{".h", ".hpp", - ".inl"}, ".res", false, null, newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - if (debug) { - args.addElement("/D_DEBUG"); - } else { - args.addElement("/DNDEBUG"); - } - } - protected void addWarningSwitch(Vector args, int level) { - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new DevStudioResourceCompiler(newEnvironment, env); - } - return this; - } - /** - * The include parser for C will work just fine, but we didn't want to - * inherit from CommandLineCCompiler - */ - protected Parser createParser(File source) { - return new CParser(); - } - protected int getArgumentCountPerInputFile() { - return 2; - } - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - DevStudioProcessor.getDefineSwitch(buffer, define, value); - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ";"); - } - protected String getIncludeDirSwitch(String includeDir) { - return DevStudioProcessor.getIncludeDirSwitch(includeDir); - } - protected String getInputFileArgument(File outputDir, String filename, - int index) { - if (index == 0) { - String outputFileName = getOutputFileName(filename); - String fullOutputName = new File(outputDir, outputFileName) - .toString(); - return "/fo" + fullOutputName; - } - return filename; - } - public Linker getLinker(LinkType type) { - return DevStudioLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } - protected int getMaximumInputFilesPerCommand() { - return 1; - } - protected int getTotalArgumentLengthForInputFile(File outputDir, - String inputFile) { - String arg1 = getInputFileArgument(outputDir, inputFile, 0); - String arg2 = getInputFileArgument(outputDir, inputFile, 1); - return arg1.length() + arg2.length() + 2; - } - protected void getUndefineSwitch(StringBuffer buffer, String define) { - DevStudioProcessor.getUndefineSwitch(buffer, define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java deleted file mode 100644 index f7bb2eab95..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -import org.apache.tools.ant.BuildException; -/** - * Adapter for the "ar" tool - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public abstract class AbstractArLibrarian extends CommandLineLinker { - private/* final */ - String outputPrefix; - private static String[] defaultflags = new String[]{}; - protected AbstractArLibrarian(String command, String identificationArg, - String[] inputExtensions, String[] ignoredExtensions, - String outputPrefix, String outputExtension, boolean isLibtool, - AbstractArLibrarian libtoolLibrarian) { - super(command, identificationArg, inputExtensions, ignoredExtensions, - outputExtension, isLibtool, libtoolLibrarian); - this.outputPrefix = outputPrefix; - } - public void addBase(long base, Vector args) { - } - public void addFixed(Boolean fixed, Vector args) { - } - public void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if(defaultflag != null && defaultflag.booleanValue()){ - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - } - public void addIncremental(boolean incremental, Vector args) { - } - public void addMap(boolean map, Vector args) { - } - public void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return null; - } - public File[] getLibraryPath() { - return new File[0]; - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return new String[0]; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public String getOutputFileName(String baseName) { - return outputPrefix + super.getOutputFileName(baseName); - } - public String[] getOutputFileSwitch(String outputFile) { - return GccProcessor.getOutputFileSwitch("rvs", outputFile); - } - public boolean isCaseSensitive() { - return true; - } - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - // - // if there is an existing library then - // we must delete it before executing "ar" - if (outputFile.exists()) { - if (!outputFile.delete()) { - throw new BuildException("Unable to delete " - + outputFile.getAbsolutePath()); - } - } - // - // delegate to CommandLineLinker - // - super.link(task, outputFile, sourceFiles, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java deleted file mode 100644 index f6e376643f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java +++ /dev/null @@ -1,323 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Abstract adapter for ld-like linkers - * - * @author Curt Arnold - */ -public abstract class AbstractLdLinker extends CommandLineLinker { - private String outputPrefix; - private static String[] defaultflags = new String[]{}; - protected AbstractLdLinker(String command, String identifierArg, - String[] extensions, String[] ignoredExtensions, - String outputPrefix, String outputSuffix, boolean isLibtool, - AbstractLdLinker libtoolLinker) { - super(command, identifierArg, extensions, ignoredExtensions, - outputSuffix, isLibtool, libtoolLinker); - this.outputPrefix = outputPrefix; - } - public void addBase(long base, Vector args) { - if (base >= 0) { - args.addElement("--image-base"); - args.addElement(Long.toHexString(base)); - } - } - public void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if(defaultflag != null && defaultflag.booleanValue()){ - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - if (debug) { - args.addElement("-g"); - } - if (isDarwin()) { - if (linkType.isPluginModule()) { - args.addElement("-bundle"); - } else { - if (linkType.isSharedLibrary()) { - args.addElement("-prebind"); - args.addElement("-dynamiclib"); - } - } - } else { - if (linkType.isStaticRuntime()) { - args.addElement("-static"); - } - if (linkType.isPluginModule()) { - args.addElement("-shared"); - } else { - if (linkType.isSharedLibrary()) { - args.addElement("-shared"); - } - } - } - } - public void addIncremental(boolean incremental, Vector args) { - if (incremental) { - args.addElement("-i"); - } - } - protected int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - Vector libnames = new Vector(); - super.addLibrarySets(task, libsets, preargs, midargs, endargs); - LibraryTypeEnum previousLibraryType = null; - for (int i = 0; i < libsets.length; i++) { - LibrarySet set = libsets[i]; - File libdir = set.getDir(null); - String[] libs = set.getLibs(); - if (libdir != null) { - if (set.getType() != null && - "framework".equals(set.getType().getValue()) && - isDarwin()) { - endargs.addElement("-F" + libdir.getAbsolutePath()); - } else { - endargs.addElement("-L" + libdir.getAbsolutePath()); - } - } - // - // if there has been a change of library type - // - if (set.getType() != previousLibraryType) { - if (set.getType() != null && "static".equals(set.getType().getValue())) { - endargs.addElement("-Bstatic"); - previousLibraryType = set.getType(); - } else { - if (set.getType() == null || - !"framework".equals(set.getType().getValue()) || - !isDarwin()) { - endargs.addElement("-Bdynamic"); - previousLibraryType = set.getType(); - } - } - } - StringBuffer buf = new StringBuffer("-l"); - if (set.getType() != null && - "framework".equals(set.getType().getValue()) && - isDarwin()) { - buf.setLength(0); - buf.append("-framework "); - } - int initialLength = buf.length(); - for (int j = 0; j < libs.length; j++) { - // - // reset the buffer to just "-l" - // - buf.setLength(initialLength); - // - // add the library name - buf.append(libs[j]); - libnames.addElement(libs[j]); - // - // add the argument to the list - endargs.addElement(buf.toString()); - } - } - String rc[] = new String[libnames.size()]; - for (int i = 0; i < libnames.size(); i++) { - rc[i] = (String) libnames.elementAt(i); - } - return rc; - } - public void addMap(boolean map, Vector args) { - if (map) { - args.addElement("-M"); - } - } - public void addStack(int stack, Vector args) { - if (stack > 0) { - args.addElement("--stack"); - args.addElement(Integer.toString(stack)); - } - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - if (entry != null) { - args.addElement("-e"); - args.addElement(entry); - } - } - - public String getCommandFileSwitch(String commandFile) { - throw new IllegalStateException("ld does not support command files"); - } - /** - * Returns library path. - * - */ - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("LIB", ":"); - } - public String getLibraryKey(File libfile) { - String libname = libfile.getName(); - int lastDot = libname.lastIndexOf('.'); - if (lastDot >= 0) { - return libname.substring(0, lastDot); - } - return libname; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - return new File[0]; - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - int patternCount = libnames.length; - if (libType == null) { - patternCount *= 2; - } - String[] patterns = new String[patternCount]; - int offset = 0; - if (libType == null || "static".equals(libType.getValue())) { - offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - } - if (libType != null && "framework".equals(libType.getValue()) && isDarwin()) { - for(int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(libnames[i]); - buf.append(".framework/"); - buf.append(libnames[i]); - patterns[offset++] = buf.toString(); - } - } else { - if (libType == null || !"static".equals(libType.getValue())) { - if (isHPUX()) { - offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns, - offset); - } else { - offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns, - offset); - } - } - } - return patterns; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public String getOutputFileName(String baseName) { - return outputPrefix + super.getOutputFileName(baseName); - } - public String[] getOutputFileSwitch(String outputFile) { - return GccProcessor.getOutputFileSwitch("-o", outputFile); - } - public boolean isCaseSensitive() { - return true; - } - protected boolean isHPUX() { - String osname = System.getProperty("os.name").toLowerCase(); - if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) { - return true; - } - return false; - } - /** - * Prepares argument list for exec command. Will return null if command - * line would exceed allowable command line buffer. - * - * @param outputFile - * linker output file - * @param sourceFiles - * linker input files (.obj, .o, .res) - * @param args - * linker arguments - * @return arguments for runTask - */ - public String[] prepareArguments(CCTask task, String outputDir, - String outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) { - // - // need to suppress sources that correspond to - // library set entries since they are already - // in the argument list - String[] libnames = config.getLibraryNames(); - if (libnames == null || libnames.length == 0) { - return super.prepareArguments(task, outputDir, outputFile, - sourceFiles, config); - } - // - // - // null out any sources that correspond to library names - // - String[] localSources = (String[]) sourceFiles.clone(); - int extra = 0; - for (int i = 0; i < libnames.length; i++) { - String libname = libnames[i]; - for (int j = 0; j < localSources.length; j++) { - if (localSources[j] != null - && localSources[j].indexOf(libname) > 0 - && localSources[j].indexOf("lib") > 0) { - String filename = new File(localSources[j]).getName(); - if (filename.startsWith("lib") - && filename.substring(3).startsWith(libname)) { - String extension = filename - .substring(libname.length() + 3); - if (extension.equals(".a") || extension.equals(".so") - || extension.equals(".sl")) { - localSources[j] = null; - extra++; - } - } - } - } - } - if (extra == 0) { - return super.prepareArguments(task, outputDir, outputFile, - sourceFiles, config); - } - String[] finalSources = new String[localSources.length - extra]; - int index = 0; - for (int i = 0; i < localSources.length; i++) { - if (localSources[i] != null) { - finalSources[index++] = localSources[i]; - } - } - return super.prepareArguments(task, outputDir, outputFile, - finalSources, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java deleted file mode 100644 index 412bffa847..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; - -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineAssembler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; - -/** - * Adapter for gcc assemble - * - */ -public final class GccAssembler extends CommandLineAssembler { - private final static String[] sourceExtensions = new String[] { ".asm" }; - - private final static String[] headerExtensions = new String[] { ".h", - ".inc" }; - - private static final GccAssembler instance = new GccAssembler("gas", - sourceExtensions, headerExtensions, false); - - /** - * Gets gcc adapter - */ - public static GccAssembler getInstance() { - return instance; - } - - /** - * Private constructor. Use GccAssembler.getInstance() to get singleton - * instance of this class. - */ - private GccAssembler (String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool) { - super(command, null, sourceExtensions, headerExtensions, - isLibtool ? ".fo" : ".o"); - } - - public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) { - - } - - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - - public Linker getLinker(LinkType linkType) { - return GccLinker.getInstance().getLinker(linkType); - } - - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - - protected String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java deleted file mode 100644 index af3b26b134..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.FortranParser; -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * Adapter for the GCC C/C++ compiler - * - * @author Adam Murdoch - */ -public final class GccCCompiler extends GccCompatibleCCompiler { - private final static String[] sourceExtensions = new String[]{".c", /* C */ - ".cc", /* C++ */ - ".cpp", /* C++ */ - ".cxx", /* C++ */ - ".c++", /* C++ */ - ".i", /* preprocessed C */ - ".ii", /* preprocessed C++ */ - ".f", /* FORTRAN */ - ".for", /* FORTRAN */ - ".m", /* Objective-C */ - ".mm", /* Objected-C++ */ - ".s" /* Assembly */ - }; - private final static String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - private static final GccCCompiler cppInstance = new GccCCompiler("c++", - sourceExtensions, headerExtensions, false, - new GccCCompiler("c++", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler g77Instance = new GccCCompiler("g77", - sourceExtensions, headerExtensions, false, - new GccCCompiler("g77", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler gppInstance = new GccCCompiler("g++", - sourceExtensions, headerExtensions, false, - new GccCCompiler("g++", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler instance = new GccCCompiler("gcc", - sourceExtensions, headerExtensions, false, - new GccCCompiler("gcc", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - /** - * Gets c++ adapter - */ - public static GccCCompiler getCppInstance() { - return cppInstance; - } - /** - * Gets g77 adapter - */ - public static GccCCompiler getG77Instance() { - return g77Instance; - } - /** - * Gets gpp adapter - */ - public static GccCCompiler getGppInstance() { - return gppInstance; - } - /** - * Gets gcc adapter - */ - public static GccCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - private boolean isPICMeaningful = true; - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - private GccCCompiler(String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool, - GccCCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(command, null, sourceExtensions, headerExtensions, isLibtool, - libtoolCompiler, newEnvironment, env); - isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0; - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - super.addImpliedArgs(args, debug, multithreaded, - exceptions, linkType, rtti, optimization, defaultflag); - if (isPICMeaningful && linkType.isSharedLibrary()) { - args.addElement("-fPIC"); - } - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new GccCCompiler(getCommand(), this.getSourceExtensions(), - this.getHeaderExtensions(), this.getLibtool(), - (GccCCompiler) this.getLibtoolCompiler(), newEnvironment, - env); - } - return this; - } - /** - * Create parser to determine dependencies. - * - * Will create appropriate parser (C++, FORTRAN) based on file extension. - * - */ - protected Parser createParser(File source) { - if (source != null) { - String sourceName = source.getName(); - int lastDot = sourceName.lastIndexOf('.'); - if (lastDot >= 0 && lastDot + 1 < sourceName.length()) { - char afterDot = sourceName.charAt(lastDot + 1); - if (afterDot == 'f' || afterDot == 'F') { - return new FortranParser(); - } - } - } - return new CParser(); - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - // - // construct default include path from machine id and version id - // - String[] defaultInclude = new String[1]; - StringBuffer buf = new StringBuffer("/lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - buf.append("/include"); - defaultInclude[0] = buf.toString(); - // - // read specs file and look for -istart and -idirafter - // - String[] specs = GccProcessor.getSpecs(); - String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:", - new String[]{"-isystem ", "-idirafter "}); - // - // if no entries were found, then use a default path - // - if (optionValues[0].length == 0 && optionValues[1].length == 0) { - optionValues[0] = new String[]{"/usr/local/include", - "/usr/include", "/usr/include/win32api"}; - } - // - // remove mingw entries. - // For MinGW compiles this will mean the - // location of the sys includes will be - // wrong in dependencies.xml - // but that should have no significant effect - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j].indexOf("mingw") > 0) { - optionValues[i][j] = null; - } - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(optionValues[0]); - GccProcessor.convertCygwinFilenames(optionValues[1]); - GccProcessor.convertCygwinFilenames(defaultInclude); - } - int count = CUtil.checkDirectoryArray(optionValues[0]); - count += CUtil.checkDirectoryArray(optionValues[1]); - count += CUtil.checkDirectoryArray(defaultInclude); - includePath = new File[count]; - int index = 0; - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j] != null) { - includePath[index++] = new File(optionValues[i][j]); - } - } - } - for (int i = 0; i < defaultInclude.length; i++) { - if (defaultInclude[i] != null) { - includePath[index++] = new File(defaultInclude[i]); - } - } - } - return (File[]) includePath.clone(); - } - public String getIdentifier() throws BuildException { - if (identifier == null) { - StringBuffer buf; - if (getLibtool()) { - buf = new StringBuffer("libtool "); - } else { - buf = new StringBuffer(' '); - } - buf.append(getCommand()); - buf.append(' '); - buf.append(GccProcessor.getVersion()); - buf.append(' '); - buf.append(GccProcessor.getMachine()); - identifier = buf.toString(); - } - return identifier; - } - public Linker getLinker(LinkType linkType) { - return GccLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java deleted file mode 100644 index 98f086ed61..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * Abstract base class for compilers that attempt to be command line compatible - * with GCC - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public abstract class GccCompatibleCCompiler extends CommandLineCCompiler { - private final static String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - private final static String[] sourceExtensions = new String[]{".c", ".cc", - ".cpp", ".cxx", ".c++", ".i", ".f", ".for"}; - private final static String[] defaultflags = new String[]{"-c"}; - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - protected GccCompatibleCCompiler(String command, String identifierArg, - boolean libtool, GccCompatibleCCompiler libtoolCompiler, - boolean newEnvironment, Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - libtool ? ".fo" : ".o", libtool, libtoolCompiler, - newEnvironment, env); - } - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - protected GccCompatibleCCompiler(String command, String identifierArg, - String[] sourceExtensions, String[] headerExtensions, - boolean libtool, GccCompatibleCCompiler libtoolCompiler, - boolean newEnvironment, Environment env) { - super(command, identifierArg, sourceExtensions, headerExtensions, - libtool ? ".fo" : ".o", libtool, libtoolCompiler, - newEnvironment, env); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - // - // -fPIC is too much trouble - // users have to manually add it for - // operating systems that make sense - // - if (defaultflag != null && defaultflag.booleanValue()) { - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - if (debug) { - args.addElement("-g"); - } else { - if (optimization != null) { - if (optimization.isSize()) { - args.addElement("-Os"); - } else if (optimization.isSpeed()) { - if ("full".equals(optimization.getValue())) { - args.addElement("-O2"); - } else { - if ("speed".equals(optimization.getValue())) { - args.addElement("-O1"); - } else { - args.addElement("-O3"); - } - } - } - } - } - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - if (rtti != null && !rtti.booleanValue()) { - args.addElement("-fno-rtti"); - } - - } - /** - * Adds an include path to the command. - */ - public void addIncludePath(String path, Vector cmd) { - cmd.addElement("-I" + path); - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 5 : - args.addElement("-Werror"); - /* nobreak */ - case 4 : - args.addElement("-W"); - /* nobreak */ - case 3 : - args.addElement("-Wall"); - break; - } - } - public void getDefineSwitch(StringBuffer buffer, String define, String value) { - buffer.append("-D"); - buffer.append(define); - if (value != null && value.length() > 0) { - buffer.append('='); - buffer.append(value); - } - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - public String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } - public void getUndefineSwitch(StringBuffer buffer, String define) { - buffer.append("-U"); - buffer.append(define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java deleted file mode 100644 index 62500021cf..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -/** - * Adapter for the 'ar' archiver - * - * @author Adam Murdoch - */ -public final class GccLibrarian extends AbstractArLibrarian { - private static String[] objFileExtensions = new String[]{".o"}; - private static GccLibrarian instance = new GccLibrarian("ar", - objFileExtensions, false, new GccLibrarian("ar", objFileExtensions, - true, null)); - public static GccLibrarian getInstance() { - return instance; - } - private GccLibrarian(String command, String[] inputExtensions, - boolean isLibtool, GccLibrarian libtoolLibrarian) { - super(command, "V", inputExtensions, new String[0], "lib", ".a", - isLibtool, libtoolLibrarian); - } - public Linker getLinker(LinkType type) { - return GccLinker.getInstance().getLinker(type); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java deleted file mode 100644 index f37f55092a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -/** - * Adapter for the GCC linker - * - * @author Adam Murdoch - */ -public class GccLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", - "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s", - "-static", "-shared", "-symbolic", "-Xlinker", - "--export-all-symbols", "-static-libgcc",}; - private static final GccLinker dllLinker = new GccLinker("gcc", objFiles, - discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles, - discardFiles, "lib", ".so", true, null)); - private static final GccLinker instance = new GccLinker("gcc", objFiles, - discardFiles, "", "", false, null); - private static final GccLinker machBundleLinker = new GccLinker("gcc", - objFiles, discardFiles, "lib", ".bundle", false, null); - private static final GccLinker machDllLinker = new GccLinker("gcc", - objFiles, discardFiles, "lib", ".dylib", false, null); - public static GccLinker getInstance() { - return instance; - } - private File[] libDirs; - protected GccLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - } - /** - * Allows drived linker to decorate linker option. Override by GccLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - case 'v' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - // - // construct gcc lib path from machine and version - // - StringBuffer buf = new StringBuffer("/lib/gcc-lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - // - // build default path from gcc and system /lib and /lib/w32api - // - String[] impliedLibPath = new String[]{buf.toString(), - "/lib/w32api", "/lib"}; - // - // read gcc specs file for other library paths - // - String[] specs = GccProcessor.getSpecs(); - String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:", - new String[]{"%q"}); - String[] libpath; - if (libpaths[0].length > 0) { - libpath = new String[libpaths[0].length + 3]; - int i = 0; - for (; i < libpaths[0].length; i++) { - libpath[i] = libpaths[0][i]; - } - libpath[i++] = buf.toString(); - libpath[i++] = "/lib/w32api"; - libpath[i++] = "/lib"; - } else { - // - // if a failure to find any matches then - // use some default values for lib path entries - libpath = new String[]{"/usr/local/lib/mingw", - "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw", - "/usr/lib", buf.toString(), "/lib/w32api", "/lib"}; - } - for (int i = 0; i < libpath.length; i++) { - if (libpath[i].indexOf("mingw") >= 0) { - libpath[i] = null; - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(libpath); - } - // - // check that remaining entries are actual directories - // - int count = CUtil.checkDirectoryArray(libpath); - // - // populate return array with remaining entries - // - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; i++) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (isDarwin()) { - return machBundleLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (isDarwin()) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java deleted file mode 100644 index 236969f5e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; -/** - * A add-in class for Gcc processors - * - * - */ -public class GccProcessor { - // the results from gcc -dumpmachine - private static String machine; - private static String[] specs; - // the results from gcc -dumpversion - private static String version; - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - /** - * Converts absolute Cygwin file or directory names to the corresponding - * Win32 name. - * - * @param names - * array of names, some elements may be null, will be changed in - * place. - */ - public static void convertCygwinFilenames(String[] names) { - if (names == null) { - throw new NullPointerException("names"); - } - File gccDir = CUtil.getExecutableLocation("gcc.exe"); - if (gccDir != null) { - String prefix = gccDir.getAbsolutePath() + "/.."; - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - if (name != null && name.length() > 1 && name.charAt(0) == '/') { - buf.setLength(0); - buf.append(prefix); - buf.append(name); - names[i] = buf.toString(); - } - } - } - } - public static String[] getLibraryPatterns(String[] libnames) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length * 2]; - int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - if (isHPUX()) { - offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns, - offset); - } else { - offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns, - offset); - } - return patterns; - } - public static String getMachine() { - if (machine == null) { - String[] args = new String[]{"gcc", "-dumpmachine"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - machine = "nomachine"; - } else { - machine = cmdout[0]; - } - } - return machine; - } - public static String[] getOutputFileSwitch(String letter, String outputFile) { - StringBuffer buf = new StringBuffer(); - if (outputFile.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(outputFile.replace('\\', '/')); - buf.append('"'); - } else { - buf.append(outputFile.replace('\\', '/')); - } - String[] retval = new String[]{letter, buf.toString()}; - return retval; - } - /** - * Returns the contents of the gcc specs file. - * - * The implementation locates gcc.exe in the executable path and then - * builds a relative path name from the results of -dumpmachine and - * -dumpversion. Attempts to use gcc -dumpspecs to provide this information - * resulted in stalling on the Execute.run - * - * @returns contents of the specs file - */ - public static String[] getSpecs() { - if (specs == null) { - File gccParent = CUtil.getExecutableLocation("gcc.exe"); - if (gccParent != null) { - // - // build a relative path like - // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs - // - StringBuffer buf = new StringBuffer("../lib/gcc-lib/"); - buf.append(getMachine()); - buf.append('/'); - buf.append(getVersion()); - buf.append("/specs"); - // - // resolve it relative to the location of gcc.exe - // - String relativePath = buf.toString(); - File specsFile = new File(gccParent, relativePath); - // - // found the specs file - // - try { - // - // read the lines in the file - // - BufferedReader reader = new BufferedReader(new FileReader( - specsFile)); - Vector lines = new Vector(100); - String line = reader.readLine(); - while (line != null) { - lines.addElement(line); - line = reader.readLine(); - } - specs = new String[lines.size()]; - lines.copyInto(specs); - } catch (IOException ex) { - } - } - } - if (specs == null) { - specs = new String[0]; - } - return specs; - } - public static String getVersion() { - if (version == null) { - String[] args = new String[]{"gcc", "-dumpversion"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - version = "noversion"; - } else { - version = cmdout[0]; - } - } - return version; - } - public static boolean isCaseSensitive() { - return true; - } - /** - * Determines if task is running with cygwin - * - * @return true if cygwin was detected - */ - public static boolean isCygwin() { - return getMachine().indexOf("cygwin") > 0; - } - private static boolean isHPUX() { - String osname = System.getProperty("os.name").toLowerCase(); - if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) { - return true; - } - return false; - } - /** - * - * Parses the results of the specs file for a specific processor and - * options - * - * @param specsContent - * Contents of specs file as returned from getSpecs - * @param specSectionStart - * start of spec section, for example "*cpp:" - * @param options - * command line switches such as "-istart" - */ - public static String[][] parseSpecs(String[] specsContent, - String specSectionStart, String[] options) { - if (specsContent == null) { - throw new NullPointerException("specsContent"); - } - if (specSectionStart == null) { - throw new NullPointerException("specSectionStart"); - } - if (options == null) { - throw new NullPointerException("option"); - } - String[][] optionValues = new String[options.length][]; - StringBuffer optionValue = new StringBuffer(40); - for (int i = 0; i < specsContent.length; i++) { - String specLine = specsContent[i]; - // - // if start of section then start paying attention - // - if (specLine.startsWith(specSectionStart)) { - Vector[] optionVectors = new Vector[options.length]; - for (int j = 0; j < options.length; j++) { - optionVectors[j] = new Vector(10); - } - // - // go to next line and examine contents - // and repeat until end of file - // - for (i++; i < specsContent.length; i++) { - specLine = specsContent[i]; - for (int j = 0; j < options.length; j++) { - int optionStart = specLine.indexOf(options[j]); - while (optionStart >= 0) { - optionValue.setLength(0); - // - // walk rest of line looking for first non - // whitespace - // and then next space - boolean hasNonBlank = false; - int k = optionStart + options[j].length(); - for (; k < specLine.length(); k++) { - // - // either a blank or a "}" (close of - // conditional) - // section will end the path - // - if (specLine.charAt(k) == ' ' - || specLine.charAt(k) == '}') { - if (hasNonBlank) { - break; - } - } else { - hasNonBlank = true; - optionValue.append(specLine.charAt(k)); - } - } - // - // transition back to whitespace - // value is over, add it to vector - if (hasNonBlank) { - optionVectors[j].addElement(optionValue - .toString()); - } - // - // find next occurance on line - // - optionStart = specLine.indexOf(options[j], k); - } - } - } - // - // copy vectors over to option arrays - // - for (int j = 0; j < options.length; j++) { - optionValues[j] = new String[optionVectors[j].size()]; - optionVectors[j].copyInto(optionValues[j]); - } - } - } - // - // fill in any missing option values with - // a zero-length string array - for (int i = 0; i < optionValues.length; i++) { - String[] zeroLenArray = new String[0]; - if (optionValues[i] == null) { - optionValues[i] = zeroLenArray; - } - } - return optionValues; - } - private GccProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java deleted file mode 100644 index e7036abe16..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -/** - * Adapter for the g++ variant of the GCC linker - * - * @author Stephen M. Webb - */ -public class GppLinker extends AbstractLdLinker { - protected static final String[] discardFiles = new String[0]; - protected static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final GppLinker dllLinker = new GppLinker("gcc", objFiles, - discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles, - discardFiles, "lib", ".so", true, null)); - private final static String libPrefix = "libraries: ="; - protected static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", "-dylib", - "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib", - "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"}; - private static final GppLinker instance = new GppLinker("gcc", objFiles, - discardFiles, "", "", false, null); - private static final GppLinker machDllLinker = new GppLinker("gcc", - objFiles, discardFiles, "lib", ".dylib", false, null); - private static final GppLinker machPluginLinker = new GppLinker("gcc", - objFiles, discardFiles, "lib", ".bundle", false, null); - public static GppLinker getInstance() { - return instance; - } - private File[] libDirs; - private String runtimeLibrary; - protected GppLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - if (linkType.isStaticRuntime()) { - String[] cmdin = new String[]{"g++", "-print-file-name=libstdc++.a"}; - String[] cmdout = CaptureStreamHandler.run(cmdin); - if (cmdout.length > 0) { - runtimeLibrary = cmdout[0]; - } else { - runtimeLibrary = null; - } - } else { - runtimeLibrary = "-lstdc++"; - } - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - String[] rs = super.addLibrarySets(task, libsets, preargs, midargs, - endargs); - if (runtimeLibrary != null) { - endargs.addElement(runtimeLibrary); - } - return rs; - } - /** - * Allows drived linker to decorate linker option. Override by GppLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - Vector dirs = new Vector(); - // Ask GCC where it will look for its libraries. - String[] args = new String[]{"g++", "-print-search-dirs"}; - String[] cmdout = CaptureStreamHandler.run(args); - for (int i = 0; i < cmdout.length; ++i) { - int prefixIndex = cmdout[i].indexOf(libPrefix); - if (prefixIndex >= 0) { - // Special case DOS-type GCCs like MinGW or Cygwin - int s = prefixIndex + libPrefix.length(); - int t = cmdout[i].indexOf(';', s); - while (t > 0) { - dirs.addElement(cmdout[i].substring(s, t)); - s = t + 1; - t = cmdout[i].indexOf(';', s); - } - dirs.addElement(cmdout[i].substring(s)); - ++i; - for (; i < cmdout.length; ++i) { - dirs.addElement(cmdout[i]); - } - } - } - // Eliminate all but actual directories. - String[] libpath = new String[dirs.size()]; - dirs.copyInto(libpath); - int count = CUtil.checkDirectoryArray(libpath); - // Build return array. - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; ++i) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machPluginLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java deleted file mode 100644 index e05fa5b2db..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc; -import java.io.File; - -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -/** - * Adapter for the 'ld' linker - * - * @author Curt Arnold - */ -public final class LdLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final LdLinker dllLinker = new LdLinker("ld", objFiles, - discardFiles, "lib", ".so", false, new LdLinker("ld", objFiles, - discardFiles, "lib", ".so", true, null)); - private static final LdLinker instance = new LdLinker("ld", objFiles, - discardFiles, "", "", false, null); - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - public static LdLinker getInstance() { - return instance; - } - private File[] libDirs; - private LdLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) { - super(command, "-version", extensions, ignoredExtensions, outputPrefix, - outputSuffix, isLibtool, libtoolLinker); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java deleted file mode 100644 index 6a5697eb80..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java +++ /dev/null @@ -1,273 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.CompilerParam; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.FortranParser; -import net.sf.antcontrib.cpptasks.parser.Parser; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * Adapter for the GCC C/C++ compiler - * - * @author Adam Murdoch - */ -public final class GccCCompiler extends GccCompatibleCCompiler { - private final static String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - private final static String[] sourceExtensions = new String[]{".c", /* C */ - ".cc", /* C++ */ - ".cpp", /* C++ */ - ".cxx", /* C++ */ - ".c++", /* C++ */ - ".i", /* preprocessed C */ - ".ii", /* preprocessed C++ */ - ".f", /* FORTRAN */ - ".for", /* FORTRAN */ - ".m", /* Objective-C */ - ".mm", /* Objected-C++ */ - ".s" /* Assembly */ - }; - private static final GccCCompiler cppInstance = new GccCCompiler("c++", - sourceExtensions, headerExtensions, false, - new GccCCompiler("c++", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler g77Instance = new GccCCompiler("g77", - sourceExtensions, headerExtensions, false, - new GccCCompiler("g77", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler gppInstance = new GccCCompiler("g++", - sourceExtensions, headerExtensions, false, - new GccCCompiler("g++", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - private static final GccCCompiler instance = new GccCCompiler("gcc", - sourceExtensions, headerExtensions, false, - new GccCCompiler("gcc", sourceExtensions, headerExtensions, true, - null, false, null), false, null); - /** - * Gets c++ adapter - */ - public static GccCCompiler getCppInstance() { - return cppInstance; - } - /** - * Gets g77 adapter - */ - public static GccCCompiler getG77Instance() { - return g77Instance; - } - /** - * Gets gpp adapter - */ - public static GccCCompiler getGppInstance() { - return gppInstance; - } - /** - * Gets gcc adapter - */ - public static GccCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - private boolean isPICMeaningful = true; - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - private GccCCompiler(String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool, - GccCCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(command, null, sourceExtensions, headerExtensions, isLibtool, - libtoolCompiler, newEnvironment, env); - isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0; - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - super.addImpliedArgs(args, debug, multithreaded, - exceptions, linkType, rtti, optimization, defaultflag); - if (isPICMeaningful && linkType.isSharedLibrary()) { - args.addElement("-fPIC"); - } - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new GccCCompiler(getCommand(), this.getSourceExtensions(), - this.getHeaderExtensions(), this.getLibtool(), - (GccCCompiler) this.getLibtoolCompiler(), newEnvironment, - env); - } - return this; - } - protected Object clone() throws CloneNotSupportedException { - GccCCompiler clone = (GccCCompiler) super.clone(); - return clone; - } - public void compile(CCTask task, File outputDir, String[] sourceFiles, - String[] args, String[] endArgs, boolean relentless, - CommandLineCompilerConfiguration config, ProgressMonitor monitor) - throws BuildException { - try { - GccCCompiler clone = (GccCCompiler) this.clone(); - CompilerParam param = config.getParam("target"); - if (param != null) - clone.setCommand(param.getValue() + "-" + this.getCommand()); - clone.supercompile(task, outputDir, sourceFiles, args, endArgs, - relentless, config, monitor); - } catch (CloneNotSupportedException e) { - supercompile(task, outputDir, sourceFiles, args, endArgs, - relentless, config, monitor); - } - } - /** - * Create parser to determine dependencies. - * - * Will create appropriate parser (C++, FORTRAN) based on file extension. - * - */ - protected Parser createParser(File source) { - if (source != null) { - String sourceName = source.getName(); - int lastDot = sourceName.lastIndexOf('.'); - if (lastDot >= 0 && lastDot + 1 < sourceName.length()) { - char afterDot = sourceName.charAt(lastDot + 1); - if (afterDot == 'f' || afterDot == 'F') { - return new FortranParser(); - } - } - } - return new CParser(); - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - // - // construct default include path from machine id and version id - // - String[] defaultInclude = new String[1]; - StringBuffer buf = new StringBuffer("/lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - buf.append("/include"); - defaultInclude[0] = buf.toString(); - // - // read specs file and look for -istart and -idirafter - // - String[] specs = GccProcessor.getSpecs(); - String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:", - new String[]{"-isystem ", "-idirafter "}); - // - // if no entries were found, then use a default path - // - if (optionValues[0].length == 0 && optionValues[1].length == 0) { - optionValues[0] = new String[]{"/usr/local/include", - "/usr/include", "/usr/include/win32api"}; - } - // - // remove mingw entries. - // For MinGW compiles this will mean the - // location of the sys includes will be - // wrong in dependencies.xml - // but that should have no significant effect - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j].indexOf("mingw") > 0) { - optionValues[i][j] = null; - } - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(optionValues[0]); - GccProcessor.convertCygwinFilenames(optionValues[1]); - GccProcessor.convertCygwinFilenames(defaultInclude); - } - int count = CUtil.checkDirectoryArray(optionValues[0]); - count += CUtil.checkDirectoryArray(optionValues[1]); - count += CUtil.checkDirectoryArray(defaultInclude); - includePath = new File[count]; - int index = 0; - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j] != null) { - includePath[index++] = new File(optionValues[i][j]); - } - } - } - for (int i = 0; i < defaultInclude.length; i++) { - if (defaultInclude[i] != null) { - includePath[index++] = new File(defaultInclude[i]); - } - } - } - return (File[]) includePath.clone(); - } - public String getIdentifier() throws BuildException { - if (identifier == null) { - StringBuffer buf; - if (getLibtool()) { - buf = new StringBuffer("libtool "); - } else { - buf = new StringBuffer(' '); - } - buf.append(getCommand()); - buf.append(' '); - buf.append(GccProcessor.getVersion()); - buf.append(' '); - buf.append(GccProcessor.getMachine()); - identifier = buf.toString(); - } - return identifier; - } - public Linker getLinker(LinkType linkType) { - return GccLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - private void supercompile(CCTask task, File outputDir, - String[] sourceFiles, String[] args, String[] endArgs, - boolean relentless, CommandLineCompilerConfiguration config, - ProgressMonitor monitor) throws BuildException { - super.compile(task, outputDir, sourceFiles, args, endArgs, relentless, - config, monitor); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java deleted file mode 100644 index ea2278a6e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractArLibrarian; - -import org.apache.tools.ant.BuildException; -/** - * Adapter for the 'ar' archiver - * - * @author Adam Murdoch - */ -public final class GccLibrarian extends AbstractArLibrarian { - private static String[] objFileExtensions = new String[]{".o"}; - private static GccLibrarian instance = new GccLibrarian("ar", - objFileExtensions, false, new GccLibrarian("ar", objFileExtensions, - true, null)); - public static GccLibrarian getInstance() { - return instance; - } - private GccLibrarian(String command, String[] inputExtensions, - boolean isLibtool, GccLibrarian libtoolLibrarian) { - super(command, "V", inputExtensions, new String[0], "lib", ".a", - isLibtool, libtoolLibrarian); - } - protected Object clone() throws CloneNotSupportedException { - GccLibrarian clone = (GccLibrarian) super.clone(); - return clone; - } - public Linker getLinker(LinkType type) { - return GccLinker.getInstance().getLinker(type); - } - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - try { - GccLibrarian clone = (GccLibrarian) this.clone(); - LinkerParam param = config.getParam("target"); - if (param != null) - clone.setCommand(param.getValue() + "-" + this.getCommand()); - clone.superlink(task, outputFile, sourceFiles, config); - } catch (CloneNotSupportedException e) { - superlink(task, outputFile, sourceFiles, config); - } - } - private void superlink(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - super.link(task, outputFile, sourceFiles, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java deleted file mode 100644 index 3293829d13..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.File; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import org.apache.tools.ant.BuildException; -/** - * Adapter for the GCC linker - * - * @author Adam Murdoch - */ -public class GccLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final GccLinker dllLinker = new GccLinker("gcc", objFiles, - discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles, - discardFiles, "lib", ".so", true, null)); - private static final GccLinker instance = new GccLinker("gcc", objFiles, - discardFiles, "", "", false, null); - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", - "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s", - "-static", "-shared", "-symbolic", "-Xlinker", - "--export-all-symbols", "-static-libgcc",}; - private static final GccLinker machBundleLinker = new GccLinker("gcc", - objFiles, discardFiles, "lib", ".bundle", false, null); - private static final GccLinker machDllLinker = new GccLinker("gcc", - objFiles, discardFiles, "lib", ".dylib", false, null); - public static GccLinker getInstance() { - return instance; - } - private File[] libDirs; - protected GccLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - } - protected Object clone() throws CloneNotSupportedException { - GccLinker clone = (GccLinker) super.clone(); - return clone; - } - /** - * Allows drived linker to decorate linker option. Override by GccLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - case 'v' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - // - // construct gcc lib path from machine and version - // - StringBuffer buf = new StringBuffer("/lib/gcc-lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - // - // build default path from gcc and system /lib and /lib/w32api - // - String[] impliedLibPath = new String[]{buf.toString(), - "/lib/w32api", "/lib"}; - // - // read gcc specs file for other library paths - // - String[] specs = GccProcessor.getSpecs(); - String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:", - new String[]{"%q"}); - String[] libpath; - if (libpaths[0].length > 0) { - libpath = new String[libpaths[0].length + 3]; - int i = 0; - for (; i < libpaths[0].length; i++) { - libpath[i] = libpaths[0][i]; - } - libpath[i++] = buf.toString(); - libpath[i++] = "/lib/w32api"; - libpath[i++] = "/lib"; - } else { - // - // if a failure to find any matches then - // use some default values for lib path entries - libpath = new String[]{"/usr/local/lib/mingw", - "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw", - "/usr/lib", buf.toString(), "/lib/w32api", "/lib"}; - } - for (int i = 0; i < libpath.length; i++) { - if (libpath[i].indexOf("mingw") >= 0) { - libpath[i] = null; - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(libpath); - } - // - // check that remaining entries are actual directories - // - int count = CUtil.checkDirectoryArray(libpath); - // - // populate return array with remaining entries - // - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; i++) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (isDarwin()) { - return machBundleLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (isDarwin()) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - try { - GccLinker clone = (GccLinker) this.clone(); - LinkerParam param = config.getParam("target"); - if (param != null) - clone.setCommand(param.getValue() + "-" + this.getCommand()); - clone.superlink(task, outputFile, sourceFiles, config); - } catch (CloneNotSupportedException e) { - superlink(task, outputFile, sourceFiles, config); - } - } - private void superlink(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - super.link(task, outputFile, sourceFiles, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java deleted file mode 100644 index 283df63314..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java +++ /dev/null @@ -1,288 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; - -/** - * A add-in class for Gcc processors - * - * - */ -public class GccProcessor { - // the results from gcc -dumpmachine - private static String machine; - private static String[] specs; - // the results from gcc -dumpversion - private static String version; - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - /** - * Converts absolute Cygwin file or directory names to the corresponding - * Win32 name. - * - * @param names - * array of names, some elements may be null, will be changed in - * place. - */ - public static void convertCygwinFilenames(String[] names) { - if (names == null) { - throw new NullPointerException("names"); - } - File gccDir = CUtil.getExecutableLocation("gcc.exe"); - if (gccDir != null) { - String prefix = gccDir.getAbsolutePath() + "/.."; - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - if (name != null && name.length() > 1 && name.charAt(0) == '/') { - buf.setLength(0); - buf.append(prefix); - buf.append(name); - names[i] = buf.toString(); - } - } - } - } - - public static String getMachine() { - if (machine == null) { - String[] args = new String[]{"gcc", "-dumpmachine"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - machine = "nomachine"; - } else { - machine = cmdout[0]; - } - } - return machine; - } - public static String[] getOutputFileSwitch(String letter, String outputFile) { - StringBuffer buf = new StringBuffer(); - if (outputFile.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(outputFile.replace('\\', '/')); - buf.append('"'); - } else { - buf.append(outputFile.replace('\\', '/')); - } - String[] retval = new String[]{letter, buf.toString()}; - return retval; - } - /** - * Returns the contents of the gcc specs file. - * - * The implementation locates gcc.exe in the executable path and then - * builds a relative path name from the results of -dumpmachine and - * -dumpversion. Attempts to use gcc -dumpspecs to provide this information - * resulted in stalling on the Execute.run - * - * @returns contents of the specs file - */ - public static String[] getSpecs() { - if (specs == null) { - File gccParent = CUtil.getExecutableLocation("gcc.exe"); - if (gccParent != null) { - // - // build a relative path like - // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs - // - StringBuffer buf = new StringBuffer("../lib/gcc-lib/"); - buf.append(getMachine()); - buf.append('/'); - buf.append(getVersion()); - buf.append("/specs"); - // - // resolve it relative to the location of gcc.exe - // - String relativePath = buf.toString(); - File specsFile = new File(gccParent, relativePath); - // - // found the specs file - // - try { - // - // read the lines in the file - // - BufferedReader reader = new BufferedReader(new FileReader( - specsFile)); - Vector lines = new Vector(100); - String line = reader.readLine(); - while (line != null) { - lines.addElement(line); - line = reader.readLine(); - } - specs = new String[lines.size()]; - lines.copyInto(specs); - } catch (IOException ex) { - } - } - } - if (specs == null) { - specs = new String[0]; - } - return specs; - } - public static String getVersion() { - if (version == null) { - String[] args = new String[]{"gcc", "-dumpversion"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - version = "noversion"; - } else { - version = cmdout[0]; - } - } - return version; - } - public static boolean isCaseSensitive() { - return true; - } - /** - * Determines if task is running with cygwin - * - * @return true if cygwin was detected - */ - public static boolean isCygwin() { - return getMachine().indexOf("cygwin") > 0; - } - private static boolean isHPUX() { - String osname = System.getProperty("os.name").toLowerCase(); - if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) { - return true; - } - return false; - } - /** - * - * Parses the results of the specs file for a specific processor and - * options - * - * @param specsContent - * Contents of specs file as returned from getSpecs - * @param specSectionStart - * start of spec section, for example "*cpp:" - * @param options - * command line switches such as "-istart" - */ - public static String[][] parseSpecs(String[] specsContent, - String specSectionStart, String[] options) { - if (specsContent == null) { - throw new NullPointerException("specsContent"); - } - if (specSectionStart == null) { - throw new NullPointerException("specSectionStart"); - } - if (options == null) { - throw new NullPointerException("option"); - } - String[][] optionValues = new String[options.length][]; - StringBuffer optionValue = new StringBuffer(40); - for (int i = 0; i < specsContent.length; i++) { - String specLine = specsContent[i]; - // - // if start of section then start paying attention - // - if (specLine.startsWith(specSectionStart)) { - Vector[] optionVectors = new Vector[options.length]; - for (int j = 0; j < options.length; j++) { - optionVectors[j] = new Vector(10); - } - // - // go to next line and examine contents - // and repeat until end of file - // - for (i++; i < specsContent.length; i++) { - specLine = specsContent[i]; - for (int j = 0; j < options.length; j++) { - int optionStart = specLine.indexOf(options[j]); - while (optionStart >= 0) { - optionValue.setLength(0); - // - // walk rest of line looking for first non - // whitespace - // and then next space - boolean hasNonBlank = false; - int k = optionStart + options[j].length(); - for (; k < specLine.length(); k++) { - // - // either a blank or a "}" (close of - // conditional) - // section will end the path - // - if (specLine.charAt(k) == ' ' - || specLine.charAt(k) == '}') { - if (hasNonBlank) { - break; - } - } else { - hasNonBlank = true; - optionValue.append(specLine.charAt(k)); - } - } - // - // transition back to whitespace - // value is over, add it to vector - if (hasNonBlank) { - optionVectors[j].addElement(optionValue - .toString()); - } - // - // find next occurance on line - // - optionStart = specLine.indexOf(options[j], k); - } - } - } - // - // copy vectors over to option arrays - // - for (int j = 0; j < options.length; j++) { - optionValues[j] = new String[optionVectors[j].size()]; - optionVectors[j].copyInto(optionValues[j]); - } - } - } - // - // fill in any missing option values with - // a zero-length string array - for (int i = 0; i < optionValues.length; i++) { - String[] zeroLenArray = new String[0]; - if (optionValues[i] == null) { - optionValues[i] = zeroLenArray; - } - } - return optionValues; - } - private GccProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java deleted file mode 100644 index 3ba8f06bf8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; - -import org.apache.tools.ant.BuildException; -/** - * Adapter for the g++ variant of the GCC linker - * - * @author Stephen M. Webb - */ -public class GppLinker extends AbstractLdLinker { - protected static final String[] discardFiles = new String[0]; - protected static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final GppLinker dllLinker = new GppLinker("gcc", objFiles, - discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles, - discardFiles, "lib", ".so", true, null)); - private final static String libPrefix = "libraries: ="; - protected static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", "-dylib", - "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib", - "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"}; - private static final GppLinker instance = new GppLinker("gcc", objFiles, - discardFiles, "", "", false, null); - private static final GppLinker machDllLinker = new GppLinker("gcc", - objFiles, discardFiles, "lib", ".dylib", false, null); - private static final GppLinker machPluginLinker = new GppLinker("gcc", - objFiles, discardFiles, "lib", ".bundle", false, null); - public static GppLinker getInstance() { - return instance; - } - private File[] libDirs; - private String runtimeLibrary; - protected GppLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - if (linkType.isStaticRuntime()) { - String[] cmdin = new String[]{"g++", "-print-file-name=libstdc++.a"}; - String[] cmdout = CaptureStreamHandler.run(cmdin); - if (cmdout.length > 0) { - runtimeLibrary = cmdout[0]; - } else { - runtimeLibrary = null; - } - } else { - runtimeLibrary = "-lstdc++"; - } - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - String[] rs = super.addLibrarySets(task, libsets, preargs, midargs, - endargs); - if (runtimeLibrary != null) { - endargs.addElement(runtimeLibrary); - } - return rs; - } - protected Object clone() throws CloneNotSupportedException { - GppLinker clone = (GppLinker) super.clone(); - return clone; - } - /** - * Allows drived linker to decorate linker option. Override by GppLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - Vector dirs = new Vector(); - // Ask GCC where it will look for its libraries. - String[] args = new String[]{"g++", "-print-search-dirs"}; - String[] cmdout = CaptureStreamHandler.run(args); - for (int i = 0; i < cmdout.length; ++i) { - int prefixIndex = cmdout[i].indexOf(libPrefix); - if (prefixIndex >= 0) { - // Special case DOS-type GCCs like MinGW or Cygwin - int s = prefixIndex + libPrefix.length(); - int t = cmdout[i].indexOf(';', s); - while (t > 0) { - dirs.addElement(cmdout[i].substring(s, t)); - s = t + 1; - t = cmdout[i].indexOf(';', s); - } - dirs.addElement(cmdout[i].substring(s)); - ++i; - for (; i < cmdout.length; ++i) { - dirs.addElement(cmdout[i]); - } - } - } - // Eliminate all but actual directories. - String[] libpath = new String[dirs.size()]; - dirs.copyInto(libpath); - int count = CUtil.checkDirectoryArray(libpath); - // Build return array. - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; ++i) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machPluginLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - try { - GppLinker clone = (GppLinker) this.clone(); - LinkerParam param = config.getParam("target"); - if (param != null) - clone.setCommand(param.getValue() + "-" + this.getCommand()); - clone.superlink(task, outputFile, sourceFiles, config); - } catch (CloneNotSupportedException e) { - superlink(task, outputFile, sourceFiles, config); - } - } - private void superlink(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - super.link(task, outputFile, sourceFiles, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java deleted file mode 100644 index 8ac0cf82a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.LinkerParam; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; - -import org.apache.tools.ant.BuildException; -/** - * Adapter for the 'ld' linker - * - * @author Curt Arnold - */ -public final class LdLinker extends AbstractLdLinker { - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final String[] discardFiles = new String[0]; - private static final LdLinker dllLinker = new LdLinker("ld", objFiles, - discardFiles, "lib", ".so", false, new LdLinker("ld", objFiles, - discardFiles, "lib", ".so", true, null)); - private static final LdLinker instance = new LdLinker("ld", objFiles, - discardFiles, "", "", false, null); - public static LdLinker getInstance() { - return instance; - } - private File[] libDirs; - private LdLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) { - super(command, "-version", extensions, ignoredExtensions, outputPrefix, - outputSuffix, isLibtool, libtoolLinker); - } - protected Object clone() throws CloneNotSupportedException { - LdLinker clone = (LdLinker) super.clone(); - return clone; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - try { - LdLinker clone = (LdLinker) this.clone(); - LinkerParam param = config.getParam("target"); - if (param != null) - clone.setCommand(param.getValue() + "-" + this.getCommand()); - clone.superlink(task, outputFile, sourceFiles, config); - } catch (CloneNotSupportedException e) { - superlink(task, outputFile, sourceFiles, config); - } - } - private void superlink(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - super.link(task, outputFile, sourceFiles, config); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java deleted file mode 100644 index 62d65b910c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.parser.CParser; -import net.sf.antcontrib.cpptasks.parser.FortranParser; -import net.sf.antcontrib.cpptasks.parser.Parser; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.Environment; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -/** - * Adapter for the GCC C/C++ compiler - * - * @author Adam Murdoch - */ -public final class GccCCompiler extends GccCompatibleCCompiler { - private final static String[] sourceExtensions = new String[]{".c", /* C */ - ".cc", /* C++ */ - ".cpp", /* C++ */ - ".cxx", /* C++ */ - ".c++", /* C++ */ - ".i", /* preprocessed C */ - ".ii", /* preprocessed C++ */ - ".f", /* FORTRAN */ - ".for", /* FORTRAN */ - ".m", /* Objective-C */ - ".mm", /* Objected-C++ */ - ".s" /* Assembly */ - }; - private final static String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - public static final String CMD_PREFIX = "sparc-sun-solaris2-"; - private static final GccCCompiler cppInstance = new GccCCompiler(CMD_PREFIX - + "c++", sourceExtensions, headerExtensions, false, - new GccCCompiler(CMD_PREFIX + "c++", sourceExtensions, - headerExtensions, true, null, false, null), false, null); - private static final GccCCompiler g77Instance = new GccCCompiler(CMD_PREFIX - + "g77", sourceExtensions, headerExtensions, false, - new GccCCompiler(CMD_PREFIX + "g77", sourceExtensions, - headerExtensions, true, null, false, null), false, null); - private static final GccCCompiler gppInstance = new GccCCompiler(CMD_PREFIX - + "g++", sourceExtensions, headerExtensions, false, - new GccCCompiler(CMD_PREFIX + "g++", sourceExtensions, - headerExtensions, true, null, false, null), false, null); - private static final GccCCompiler instance = new GccCCompiler(CMD_PREFIX - + "gcc", sourceExtensions, headerExtensions, false, - new GccCCompiler(CMD_PREFIX + "gcc", sourceExtensions, - headerExtensions, true, null, false, null), false, null); - /** - * Gets c++ adapter - */ - public static GccCCompiler getCppInstance() { - return cppInstance; - } - /** - * Gets g77 adapter - */ - public static GccCCompiler getG77Instance() { - return g77Instance; - } - /** - * Gets gpp adapter - */ - public static GccCCompiler getGppInstance() { - return gppInstance; - } - /** - * Gets gcc adapter - */ - public static GccCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - private boolean isPICMeaningful = true; - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - private GccCCompiler(String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool, - GccCCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super(command, null, sourceExtensions, headerExtensions, isLibtool, - libtoolCompiler, newEnvironment, env); - isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0; - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - super.addImpliedArgs(args, debug, multithreaded, - exceptions, linkType, rtti, optimization, defaultflag); - if (isPICMeaningful && linkType.isSharedLibrary()) { - args.addElement("-fPIC"); - } - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new GccCCompiler(getCommand(), this.getSourceExtensions(), - this.getHeaderExtensions(), this.getLibtool(), - (GccCCompiler) this.getLibtoolCompiler(), newEnvironment, - env); - } - return this; - } - /** - * Create parser to determine dependencies. - * - * Will create appropriate parser (C++, FORTRAN) based on file extension. - * - */ - protected Parser createParser(File source) { - if (source != null) { - String sourceName = source.getName(); - int lastDot = sourceName.lastIndexOf('.'); - if (lastDot >= 0 && lastDot + 1 < sourceName.length()) { - char afterDot = sourceName.charAt(lastDot + 1); - if (afterDot == 'f' || afterDot == 'F') { - return new FortranParser(); - } - } - } - return new CParser(); - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - // - // construct default include path from machine id and version id - // - String[] defaultInclude = new String[1]; - StringBuffer buf = new StringBuffer("/lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - buf.append("/include"); - defaultInclude[0] = buf.toString(); - // - // read specs file and look for -istart and -idirafter - // - String[] specs = GccProcessor.getSpecs(); - String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:", - new String[]{"-isystem ", "-idirafter "}); - // - // if no entries were found, then use a default path - // - if (optionValues[0].length == 0 && optionValues[1].length == 0) { - optionValues[0] = new String[]{"/usr/local/include", - "/usr/include", "/usr/include/win32api"}; - } - // - // remove mingw entries. - // For MinGW compiles this will mean the - // location of the sys includes will be - // wrong in dependencies.xml - // but that should have no significant effect - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j].indexOf("mingw") > 0) { - optionValues[i][j] = null; - } - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(optionValues[0]); - GccProcessor.convertCygwinFilenames(optionValues[1]); - GccProcessor.convertCygwinFilenames(defaultInclude); - } - int count = CUtil.checkDirectoryArray(optionValues[0]); - count += CUtil.checkDirectoryArray(optionValues[1]); - count += CUtil.checkDirectoryArray(defaultInclude); - includePath = new File[count]; - int index = 0; - for (int i = 0; i < optionValues.length; i++) { - for (int j = 0; j < optionValues[i].length; j++) { - if (optionValues[i][j] != null) { - includePath[index++] = new File(optionValues[i][j]); - } - } - } - for (int i = 0; i < defaultInclude.length; i++) { - if (defaultInclude[i] != null) { - includePath[index++] = new File(defaultInclude[i]); - } - } - } - return (File[]) includePath.clone(); - } - public String getIdentifier() throws BuildException { - if (identifier == null) { - StringBuffer buf; - if (getLibtool()) { - buf = new StringBuffer("libtool "); - } else { - buf = new StringBuffer(' '); - } - buf.append(getCommand()); - buf.append(' '); - buf.append(GccProcessor.getVersion()); - buf.append(' '); - buf.append(GccProcessor.getMachine()); - identifier = buf.toString(); - } - return identifier; - } - public Linker getLinker(LinkType linkType) { - return GccLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java deleted file mode 100644 index bb243879af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractArLibrarian; -/** - * Adapter for the 'ar' archiver - * - * @author Adam Murdoch - */ -public final class GccLibrarian extends AbstractArLibrarian { - private static String[] objFileExtensions = new String[]{".o"}; - private static GccLibrarian instance = new GccLibrarian( - GccCCompiler.CMD_PREFIX + "ar", objFileExtensions, false, - new GccLibrarian(GccCCompiler.CMD_PREFIX + "ar", objFileExtensions, - true, null)); - public static GccLibrarian getInstance() { - return instance; - } - private GccLibrarian(String command, String[] inputExtensions, - boolean isLibtool, GccLibrarian libtoolLibrarian) { - super(command, "V", inputExtensions, new String[0], "lib", ".a", - isLibtool, libtoolLibrarian); - } - public Linker getLinker(LinkType type) { - return GccLinker.getInstance().getLinker(type); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java deleted file mode 100644 index 914da34439..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -/** - * Adapter for the GCC linker - * - * @author Adam Murdoch - */ -public class GccLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", - "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s", - "-static", "-shared", "-symbolic", "-Xlinker", - "--export-all-symbols", "-static-libgcc",}; - private static final GccLinker dllLinker = new GccLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".so", false, new GccLinker(GccCCompiler.CMD_PREFIX + "gcc", - objFiles, discardFiles, "lib", ".so", true, null)); - private static final GccLinker instance = new GccLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "", "", - false, null); - private static final GccLinker machBundleLinker = new GccLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".bundle", false, null); - private static final GccLinker machDllLinker = new GccLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".dylib", false, null); - public static GccLinker getInstance() { - return instance; - } - private File[] libDirs; - protected GccLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - } - /** - * Allows drived linker to decorate linker option. Override by GccLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - case 'v' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - // - // construct gcc lib path from machine and version - // - StringBuffer buf = new StringBuffer("/lib/gcc-lib/"); - buf.append(GccProcessor.getMachine()); - buf.append('/'); - buf.append(GccProcessor.getVersion()); - // - // build default path from gcc and system /lib and /lib/w32api - // - String[] impliedLibPath = new String[]{buf.toString(), - "/lib/w32api", "/lib"}; - // - // read gcc specs file for other library paths - // - String[] specs = GccProcessor.getSpecs(); - String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:", - new String[]{"%q"}); - String[] libpath; - if (libpaths[0].length > 0) { - libpath = new String[libpaths[0].length + 3]; - int i = 0; - for (; i < libpaths[0].length; i++) { - libpath[i] = libpaths[0][i]; - } - libpath[i++] = buf.toString(); - libpath[i++] = "/lib/w32api"; - libpath[i++] = "/lib"; - } else { - // - // if a failure to find any matches then - // use some default values for lib path entries - libpath = new String[]{"/usr/local/lib/mingw", - "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw", - "/usr/lib", buf.toString(), "/lib/w32api", "/lib"}; - } - for (int i = 0; i < libpath.length; i++) { - if (libpath[i].indexOf("mingw") >= 0) { - libpath[i] = null; - } - } - // - // if cygwin then - // we have to prepend location of gcc32 - // and .. to start of absolute filenames to - // have something that will exist in the - // windows filesystem - if (GccProcessor.isCygwin()) { - GccProcessor.convertCygwinFilenames(libpath); - } - // - // check that remaining entries are actual directories - // - int count = CUtil.checkDirectoryArray(libpath); - // - // populate return array with remaining entries - // - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; i++) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (isDarwin()) { - return machBundleLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (isDarwin()) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java deleted file mode 100644 index 599d6a8013..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * A add-in class for Gcc processors - * - * - */ -public class GccProcessor { - // the results from gcc -dumpmachine - private static String machine; - private static String[] specs; - // the results from gcc -dumpversion - private static String version; - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - /** - * Converts absolute Cygwin file or directory names to the corresponding - * Win32 name. - * - * @param names - * array of names, some elements may be null, will be changed in - * place. - */ - public static void convertCygwinFilenames(String[] names) { - if (names == null) { - throw new NullPointerException("names"); - } - File gccDir = CUtil.getExecutableLocation(GccCCompiler.CMD_PREFIX - + "gcc.exe"); - if (gccDir != null) { - String prefix = gccDir.getAbsolutePath() + "/.."; - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - if (name != null && name.length() > 1 && name.charAt(0) == '/') { - buf.setLength(0); - buf.append(prefix); - buf.append(name); - names[i] = buf.toString(); - } - } - } - } - public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length * 2]; - int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - if (isHPUX()) { - offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns, - offset); - } else { - offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns, - offset); - } - return patterns; - } - public static String getMachine() { - if (machine == null) { - String[] args = new String[]{GccCCompiler.CMD_PREFIX + "gcc", - "-dumpmachine"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - machine = "nomachine"; - } else { - machine = cmdout[0]; - } - } - return machine; - } - public static String[] getOutputFileSwitch(String letter, String outputFile) { - StringBuffer buf = new StringBuffer(); - if (outputFile.indexOf(' ') >= 0) { - buf.append('"'); - buf.append(outputFile.replace('\\', '/')); - buf.append('"'); - } else { - buf.append(outputFile.replace('\\', '/')); - } - String[] retval = new String[]{letter, buf.toString()}; - return retval; - } - /** - * Returns the contents of the gcc specs file. - * - * The implementation locates gcc.exe in the executable path and then - * builds a relative path name from the results of -dumpmachine and - * -dumpversion. Attempts to use gcc -dumpspecs to provide this information - * resulted in stalling on the Execute.run - * - * @returns contents of the specs file - */ - public static String[] getSpecs() { - if (specs == null) { - File gccParent = CUtil - .getExecutableLocation(GccCCompiler.CMD_PREFIX + "gcc.exe"); - if (gccParent != null) { - // - // build a relative path like - // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs - // - StringBuffer buf = new StringBuffer("../lib/gcc-lib/"); - buf.append(getMachine()); - buf.append('/'); - buf.append(getVersion()); - buf.append("/specs"); - // - // resolve it relative to the location of gcc.exe - // - String relativePath = buf.toString(); - File specsFile = new File(gccParent, relativePath); - // - // found the specs file - // - try { - // - // read the lines in the file - // - BufferedReader reader = new BufferedReader(new FileReader( - specsFile)); - Vector lines = new Vector(100); - String line = reader.readLine(); - while (line != null) { - lines.addElement(line); - line = reader.readLine(); - } - specs = new String[lines.size()]; - lines.copyInto(specs); - } catch (IOException ex) { - } - } - } - if (specs == null) { - specs = new String[0]; - } - return specs; - } - public static String getVersion() { - if (version == null) { - String[] args = new String[]{GccCCompiler.CMD_PREFIX + "gcc", - "-dumpversion"}; - String[] cmdout = CaptureStreamHandler.run(args); - if (cmdout.length == 0) { - version = "noversion"; - } else { - version = cmdout[0]; - } - } - return version; - } - public static boolean isCaseSensitive() { - return true; - } - /** - * Determines if task is running with cygwin - * - * @return true if cygwin was detected - */ - public static boolean isCygwin() { - return getMachine().indexOf("cygwin") > 0; - } - private static boolean isHPUX() { - String osname = System.getProperty("os.name").toLowerCase(); - if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) { - return true; - } - return false; - } - /** - * - * Parses the results of the specs file for a specific processor and - * options - * - * @param specsContent - * Contents of specs file as returned from getSpecs - * @param specSectionStart - * start of spec section, for example "*cpp:" - * @param options - * command line switches such as "-istart" - */ - public static String[][] parseSpecs(String[] specsContent, - String specSectionStart, String[] options) { - if (specsContent == null) { - throw new NullPointerException("specsContent"); - } - if (specSectionStart == null) { - throw new NullPointerException("specSectionStart"); - } - if (options == null) { - throw new NullPointerException("option"); - } - String[][] optionValues = new String[options.length][]; - StringBuffer optionValue = new StringBuffer(40); - for (int i = 0; i < specsContent.length; i++) { - String specLine = specsContent[i]; - // - // if start of section then start paying attention - // - if (specLine.startsWith(specSectionStart)) { - Vector[] optionVectors = new Vector[options.length]; - for (int j = 0; j < options.length; j++) { - optionVectors[j] = new Vector(10); - } - // - // go to next line and examine contents - // and repeat until end of file - // - for (i++; i < specsContent.length; i++) { - specLine = specsContent[i]; - for (int j = 0; j < options.length; j++) { - int optionStart = specLine.indexOf(options[j]); - while (optionStart >= 0) { - optionValue.setLength(0); - // - // walk rest of line looking for first non - // whitespace - // and then next space - boolean hasNonBlank = false; - int k = optionStart + options[j].length(); - for (; k < specLine.length(); k++) { - // - // either a blank or a "}" (close of - // conditional) - // section will end the path - // - if (specLine.charAt(k) == ' ' - || specLine.charAt(k) == '}') { - if (hasNonBlank) { - break; - } - } else { - hasNonBlank = true; - optionValue.append(specLine.charAt(k)); - } - } - // - // transition back to whitespace - // value is over, add it to vector - if (hasNonBlank) { - optionVectors[j].addElement(optionValue - .toString()); - } - // - // find next occurance on line - // - optionStart = specLine.indexOf(options[j], k); - } - } - } - // - // copy vectors over to option arrays - // - for (int j = 0; j < options.length; j++) { - optionValues[j] = new String[optionVectors[j].size()]; - optionVectors[j].copyInto(optionValues[j]); - } - } - } - // - // fill in any missing option values with - // a zero-length string array - for (int i = 0; i < optionValues.length; i++) { - String[] zeroLenArray = new String[0]; - if (optionValues[i] == null) { - optionValues[i] = zeroLenArray; - } - } - return optionValues; - } - private GccProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java deleted file mode 100644 index 6a4c0ab14b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * - * Copyright 2003-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -/** - * Adapter for the g++ variant of the GCC linker - * - * @author Stephen M. Webb - */ -public class GppLinker extends AbstractLdLinker { - protected static final String[] discardFiles = new String[0]; - protected static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private final static String libPrefix = "libraries: ="; - protected static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static String[] linkerOptions = new String[]{"-bundle", "-dylib", - "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib", - "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"}; - private static final GppLinker dllLinker = new GppLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".so", false, new GppLinker(GccCCompiler.CMD_PREFIX + "gcc", - objFiles, discardFiles, "lib", ".so", true, null)); - private static final GppLinker instance = new GppLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "", "", - false, null); - private static final GppLinker machDllLinker = new GppLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".dylib", false, null); - private static final GppLinker machPluginLinker = new GppLinker( - GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib", - ".bundle", false, null); - public static GppLinker getInstance() { - return instance; - } - private File[] libDirs; - private String runtimeLibrary; - protected GppLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) { - super(command, "-dumpversion", extensions, ignoredExtensions, - outputPrefix, outputSuffix, isLibtool, libtoolLinker); - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - super.addImpliedArgs(debug, linkType, args, defaultflag); - if (getIdentifier().indexOf("mingw") >= 0) { - if (linkType.isSubsystemConsole()) { - args.addElement("-mconsole"); - } - if (linkType.isSubsystemGUI()) { - args.addElement("-mwindows"); - } - } - if (linkType.isStaticRuntime()) { - String[] cmdin = new String[]{GccCCompiler.CMD_PREFIX + "g++", - "-print-file-name=libstdc++.a"}; - String[] cmdout = CaptureStreamHandler.run(cmdin); - if (cmdout.length > 0) { - runtimeLibrary = cmdout[0]; - } else { - runtimeLibrary = null; - } - } else { - runtimeLibrary = "-lstdc++"; - } - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - String[] rs = super.addLibrarySets(task, libsets, preargs, midargs, - endargs); - if (runtimeLibrary != null) { - endargs.addElement(runtimeLibrary); - } - return rs; - } - /** - * Allows drived linker to decorate linker option. Override by GppLinker to - * prepend a "-Wl," to pass option to through gcc to linker. - * - * @param buf - * buffer that may be used and abused in the decoration process, - * must not be null. - * @param arg - * linker argument - */ - public String decorateLinkerOption(StringBuffer buf, String arg) { - String decoratedArg = arg; - if (arg.length() > 1 && arg.charAt(0) == '-') { - switch (arg.charAt(1)) { - // - // passed automatically by GCC - // - case 'g' : - case 'f' : - case 'F' : - /* Darwin */ - case 'm' : - case 'O' : - case 'W' : - case 'l' : - case 'L' : - case 'u' : - break; - default : - boolean known = false; - for (int i = 0; i < linkerOptions.length; i++) { - if (linkerOptions[i].equals(arg)) { - known = true; - break; - } - } - if (!known) { - buf.setLength(0); - buf.append("-Wl,"); - buf.append(arg); - decoratedArg = buf.toString(); - } - break; - } - } - return decoratedArg; - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - Vector dirs = new Vector(); - // Ask GCC where it will look for its libraries. - String[] args = new String[]{GccCCompiler.CMD_PREFIX + "g++", - "-print-search-dirs"}; - String[] cmdout = CaptureStreamHandler.run(args); - for (int i = 0; i < cmdout.length; ++i) { - int prefixIndex = cmdout[i].indexOf(libPrefix); - if (prefixIndex >= 0) { - // Special case DOS-type GCCs like MinGW or Cygwin - int s = prefixIndex + libPrefix.length(); - int t = cmdout[i].indexOf(';', s); - while (t > 0) { - dirs.addElement(cmdout[i].substring(s, t)); - s = t + 1; - t = cmdout[i].indexOf(';', s); - } - dirs.addElement(cmdout[i].substring(s)); - ++i; - for (; i < cmdout.length; ++i) { - dirs.addElement(cmdout[i]); - } - } - } - // Eliminate all but actual directories. - String[] libpath = new String[dirs.size()]; - dirs.copyInto(libpath); - int count = CUtil.checkDirectoryArray(libpath); - // Build return array. - libDirs = new File[count]; - int index = 0; - for (int i = 0; i < libpath.length; ++i) { - if (libpath[i] != null) { - libDirs[index++] = new File(libpath[i]); - } - } - } - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isPluginModule()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machPluginLinker; - } else { - return dllLinker; - } - } - if (type.isSharedLibrary()) { - if (GccProcessor.getMachine().indexOf("darwin") >= 0) { - return machDllLinker; - } else { - return dllLinker; - } - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java deleted file mode 100644 index fc7761e87c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2; -import java.io.File; - -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -/** - * Adapter for the 'ld' linker - * - * @author Curt Arnold - */ -public final class LdLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final LdLinker dllLinker = new LdLinker( - GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "lib", - ".so", false, new LdLinker(GccCCompiler.CMD_PREFIX + "ld", - objFiles, discardFiles, "lib", ".so", true, null)); - private static final LdLinker instance = new LdLinker( - GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "", "", - false, null); - public static LdLinker getInstance() { - return instance; - } - private File[] libDirs; - private LdLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, - String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) { - super(command, "-version", extensions, ignoredExtensions, outputPrefix, - outputSuffix, isLibtool, libtoolLinker); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java deleted file mode 100644 index 951bfc1a75..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.hp; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the HP aC++ C++ compiler - * - * @author Curt Arnold - */ -public final class aCCCompiler extends GccCompatibleCCompiler { - private static final aCCCompiler instance = new aCCCompiler("aCC", false, - null); - /** - * Gets singleton instance of this class - */ - public static aCCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use GccCCompiler.getInstance() to get singleton - * instance of this class. - */ - private aCCCompiler(String command, boolean newEnvironment, Environment env) { - super(command, "-help", false, null, newEnvironment, env); - } - public void addImpliedArgs(Vector args, boolean debug, - boolean multithreaded, boolean exceptions, LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - /* - * if (multithreaded) { args.addElement("-mt"); } - */ - if (linkType.isSharedLibrary()) { - args.addElement("+z"); - } - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - case 2 : - args.addElement("+w"); - break; - /* - * case 3: case 4: case 5: args.addElement("+w2"); break; - */ - } - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - File ccLoc = CUtil.getExecutableLocation("aCC"); - if (ccLoc != null) { - File compilerIncludeDir = new File( - new File(ccLoc, "../include").getAbsolutePath()); - if (compilerIncludeDir.exists()) { - includePath = new File[2]; - includePath[0] = compilerIncludeDir; - } - } - if (includePath == null) { - includePath = new File[1]; - } - includePath[includePath.length - 1] = new File("/usr/include"); - } - return includePath; - } - public Linker getLinker(LinkType linkType) { - return aCCLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java deleted file mode 100644 index 86b22e0522..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.hp; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -/** - * Adapter for Sun (r) Forte(tm) C++ Linker - * - * @author Curt Arnold - */ -public final class aCCLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final aCCLinker arLinker = new aCCLinker("aCC", objFiles, - discardFiles, "", ".a"); - private static final aCCLinker dllLinker = new aCCLinker("aCC", objFiles, - discardFiles, "lib", ".sl"); - private static final aCCLinker instance = new aCCLinker("aCC", objFiles, - discardFiles, "", ""); - public static aCCLinker getInstance() { - return instance; - } - private File[] libDirs; - private aCCLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, String outputSuffix) { - super(command, "-help", extensions, ignoredExtensions, outputPrefix, - outputSuffix, false, null); - } - public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - if (debug) { - args.addElement("-g"); - } - /* - * if(linkType.isStaticRuntime()) { args.addElement("-static"); } - */ - if (linkType.isSharedLibrary()) { - args.addElement("-b"); - } - /* - * if (linkType.isStaticLibrary()) { args.addElement("-Wl,-noshared"); } - */ - } - public void addIncremental(boolean incremental, Vector args) { - /* - * if (incremental) { args.addElement("-xidlon"); } else { - * args.addElement("-xidloff"); } - */ - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - File CCloc = CUtil.getExecutableLocation("aCC"); - if (CCloc != null) { - File compilerLib = new File(new File(CCloc, "../lib") - .getAbsolutePath()); - if (compilerLib.exists()) { - libDirs = new File[2]; - libDirs[0] = compilerLib; - } - } - if (libDirs == null) { - libDirs = new File[1]; - } - } - libDirs[libDirs.length - 1] = new File("/usr/lib"); - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return arLinker; - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java deleted file mode 100644 index f181c0e3af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ibm; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the IBM(r) Visual Age(tm) C++ compiler for AIX(tm) - * - * @author Curt Arnold - */ -public final class VisualAgeCCompiler extends GccCompatibleCCompiler { - private static final VisualAgeCCompiler instance = new VisualAgeCCompiler( - "xlC", false, null); - /** - * Gets singleton instance of this class - */ - public static VisualAgeCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use getInstance() to get singleton instance of this - * class. - */ - private VisualAgeCCompiler(String command, boolean newEnvironment, - Environment env) { - super(command, "-help", false, null, newEnvironment, env); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-fpic"); - } - if (rtti != null) { - if (rtti.booleanValue()) { - args.addElement("-qrtti=all"); - } else { - args.addElement("-qnortti"); - } - } - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - args.addElement("-qflag=s:s"); - break; - case 2 : - args.addElement("-qflag=e:e"); - break; - case 3 : - args.addElement("-qflag=w:w"); - break; - case 4 : - args.addElement("-qflag=i:i"); - break; - case 5 : - args.addElement("-qhalt=w:w"); - break; - } - } - public Linker getLinker(LinkType linkType) { - return VisualAgeLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - /** - * Gets identifier for the compiler. - * - * Initial attempt at extracting version information - * would lock up. Using a stock response. - */ - public String getIdentifier() { - return "VisualAge compiler - unidentified version"; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java deleted file mode 100644 index f0a811b4ea..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ibm; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import net.sf.antcontrib.cpptasks.gcc.GccLibrarian; -/** - * Adapter for IBM(r) Visual Age(tm) Linker for AIX(tm) - * - * @author Curt Arnold - */ -public final class VisualAgeLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[]{}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final VisualAgeLinker dllLinker = new VisualAgeLinker( - "makeC++SharedLib", objFiles, discardFiles, "lib", ".so"); - private static final VisualAgeLinker instance = new VisualAgeLinker("xlC", - objFiles, discardFiles, "", ""); - public static VisualAgeLinker getInstance() { - return instance; - } - private VisualAgeLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, String outputSuffix) { - // - // just guessing that -? might display something useful - // - super(command, "-?", extensions, ignoredExtensions, outputPrefix, - outputSuffix, false, null); - } - public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - if (debug) { - //args.addElement("-g"); - } - if (linkType.isSharedLibrary()) { - //args.addElement("-G"); - } - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } - /** - * Gets identifier for the compiler. - * - * Initial attempt at extracting version information - * would lock up. Using a stock response. - */ - public String getIdentifier() { - return "VisualAge linker - unidentified version"; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java deleted file mode 100644 index 65402f41fb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Intel (r) C/C++ compiler for IA-32 Linux (r) - * - * The Intel (r) C/C++ compiler for IA32 Linux mimics the command options for - * gcc compiler. - * - * @author Curt Arnold - */ -public final class IntelLinux32CCompiler extends GccCompatibleCCompiler { - private static final IntelLinux32CCompiler instance = new IntelLinux32CCompiler( - false, new IntelLinux32CCompiler(true, null, false, null), false, - null); - public static IntelLinux32CCompiler getInstance() { - return instance; - } - private IntelLinux32CCompiler(boolean isLibtool, - IntelLinux32CCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super("icc", "-V", isLibtool, libtoolCompiler, newEnvironment, env); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new IntelLinux32CCompiler(getLibtool(), - (IntelLinux32CCompiler) getLibtoolCompiler(), - newEnvironment, env); - } - return this; - } - public Linker getLinker(LinkType type) { - return IntelLinux32Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java deleted file mode 100644 index 268f490ff3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import net.sf.antcontrib.cpptasks.gcc.GccLibrarian; -/** - * Adapter for the Intel (r) Linker for Linux (r) for IA-32 - * - * @author Curt Arnold - */ -public final class IntelLinux32Linker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final IntelLinux32Linker dllLinker = new IntelLinux32Linker( - "lib", ".so", false, new IntelLinux32Linker("lib", ".so", true, - null)); - private static final IntelLinux32Linker instance = new IntelLinux32Linker( - "", "", false, null); - public static IntelLinux32Linker getInstance() { - return instance; - } - private IntelLinux32Linker(String outputPrefix, String outputSuffix, - boolean isLibtool, IntelLinux32Linker libtoolLinker) { - super("icc", "-V", objFiles, discardFiles, outputPrefix, outputSuffix, - isLibtool, libtoolLinker); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java deleted file mode 100644 index 5a506e0d85..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Intel (r) C/C++ compiler for IA-64 Linux (r) - * - * The Intel C/C++ compiler for IA-64 Linux mimics the command options for gcc - * compiler. - * - * @author Curt Arnold - */ -public final class IntelLinux64CCompiler extends GccCompatibleCCompiler { - private static final IntelLinux64CCompiler instance = new IntelLinux64CCompiler( - false, new IntelLinux64CCompiler(true, null, false, null), false, - null); - public static IntelLinux64CCompiler getInstance() { - return instance; - } - private IntelLinux64CCompiler(boolean isLibtool, - IntelLinux64CCompiler libtoolCompiler, boolean newEnvironment, - Environment env) { - super("ecc", "-V", isLibtool, libtoolCompiler, newEnvironment, env); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new IntelLinux64CCompiler(getLibtool(), - (IntelLinux64CCompiler) this.getLibtoolCompiler(), - newEnvironment, env); - } - return this; - } - public Linker getLinker(LinkType type) { - return IntelLinux64Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java deleted file mode 100644 index f381403510..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -import net.sf.antcontrib.cpptasks.gcc.GccLibrarian; -/** - * Adapter for the Intel (r) linker for Linux for IA-64 - * - * @author Curt Arnold - */ -public final class IntelLinux64Linker extends AbstractLdLinker { - private static final String[] discardFiles = new String[0]; - private static final String[] libtoolObjFiles = new String[]{".fo", ".a", - ".lib", ".dll", ".so", ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib", - ".dll", ".so", ".sl"}; - private static final IntelLinux64Linker dllLinker = new IntelLinux64Linker( - "lib", ".so", false, new IntelLinux64Linker("lib", ".so", true, - null)); - private static final IntelLinux64Linker instance = new IntelLinux64Linker( - "", "", false, null); - public static IntelLinux64Linker getInstance() { - return instance; - } - private IntelLinux64Linker(String outputPrefix, String outputSuffix, - boolean isLibtool, IntelLinux64Linker libtoolLinker) { - super("ecc", "-V", objFiles, discardFiles, outputPrefix, outputSuffix, - isLibtool, libtoolLinker); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return GccLibrarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java deleted file mode 100644 index d1b4eafec5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.devstudio.DevStudioProcessor; -/** - * A add-in class for Intel (r) compilers and linkers - * - * - */ -public class IntelProcessor { - public static void addWarningSwitch(Vector args, int level) { - DevStudioProcessor.addWarningSwitch(args, level); - } - public static String getCommandFileSwitch(String cmdFile) { - return DevStudioProcessor.getCommandFileSwitch(cmdFile); - } - public static void getDefineSwitch(StringBuffer buffer, String define, - String value) { - DevStudioProcessor.getDefineSwitch(buffer, define, value); - } - public static String getIncludeDirSwitch(String includeDir) { - return DevStudioProcessor.getIncludeDirSwitch(includeDir); - } - public static String[] getOutputFileSwitch(String outPath) { - return DevStudioProcessor.getOutputFileSwitch(outPath); - } - public static void getUndefineSwitch(StringBuffer buffer, String define) { - DevStudioProcessor.getUndefineSwitch(buffer, define); - } - public static boolean isCaseSensitive() { - return false; - } - private IntelProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java deleted file mode 100644 index 5255cb90ce..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; - -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineAslcompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker; -/** - * Adapter for Intel ASL compiler - * - */ -public final class IntelWin32Aslcompiler extends CommandLineAslcompiler{ - private final static String[] sourceExtensions = new String[]{".asl"}; - private final static String[] headerExtensions = new String[]{}; - private final static String[] defaultflags = new String[]{}; - private static final IntelWin32Aslcompiler instance = new IntelWin32Aslcompiler("iasl", - sourceExtensions, headerExtensions, false); - - /** - * Gets gcc adapter - */ - public static IntelWin32Aslcompiler getInstance() { - return instance; - } - - /** - * Private constructor. Use GccAssembler.getInstance() to get singleton - * instance of this class. - */ - private IntelWin32Aslcompiler(String command, String[] sourceExtensions, - String[] headerExtensions, boolean isLibtool){ - super(command, null, sourceExtensions, headerExtensions, - ".aml"); - } - public void addImpliedArgs(Vector args, boolean debug, - Boolean defaultflag){ - if (defaultflag != null && defaultflag.booleanValue()) { - for (int i = 0; i < defaultflags.length; i++) { - args.addElement(defaultflags[i]); - } - } - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public Linker getLinker(LinkType linkType) { - return DevStudioLinker.getInstance().getLinker(linkType); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java deleted file mode 100644 index 7aef79999f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleCCompiler; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Intel (r) C++ compiler for 32-bit applications - * - * The Intel (r) C++ compiler for IA32 Windows mimics the command options for - * the Microsoft (r) C++ compiler. - * - * @author Curt Arnold - */ -public final class IntelWin32CCompiler extends DevStudioCompatibleCCompiler { - private static final IntelWin32CCompiler instance = new IntelWin32CCompiler( - false, null); - public static IntelWin32CCompiler getInstance() { - return instance; - } - private IntelWin32CCompiler(boolean newEnvironment, Environment env) { - super("icl", null, newEnvironment, env); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new IntelWin32CCompiler(newEnvironment, env); - } - return this; - } - public Linker getLinker(LinkType type) { - return IntelWin32Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java deleted file mode 100644 index e83da1ce0b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLibrarian; -/** - * Adapter for the xilib from the Intel(r) C++ Compiler for IA-32 or IA-64 - * systems running Microsoft (r) operating systems - * - * @author Curt Arnold - */ -public class IntelWin32Librarian extends DevStudioCompatibleLibrarian { - private static final IntelWin32Librarian instance = new IntelWin32Librarian(); - public static IntelWin32Librarian getInstance() { - return instance; - } - protected IntelWin32Librarian() { - super("xilib", "/bogus"); - } - public Linker getLinker(LinkType type) { - return IntelWin32Linker.getInstance().getLinker(type); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java deleted file mode 100644 index 51258e23ca..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLinker; -/** - * Adapter for the Intel (r) linker for 32-bit applications - * - * @author Curt Arnold - */ -public final class IntelWin32Linker extends DevStudioCompatibleLinker { - private static final IntelWin32Linker dllLinker = new IntelWin32Linker( - ".dll"); - private static final IntelWin32Linker instance = new IntelWin32Linker( - ".exe"); - public static IntelWin32Linker getInstance() { - return instance; - } - private IntelWin32Linker(String outputSuffix) { - super("xilink", "/bogus", outputSuffix); - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return IntelWin32Librarian.getInstance(); - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java deleted file mode 100644 index 9b8d2c9db4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.intel; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleCCompiler; - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Intel C++ compiler for Itanium(TM) Applications - * - * @author Curt Arnold - */ -public final class IntelWin64CCompiler extends DevStudioCompatibleCCompiler { - private static final IntelWin64CCompiler instance = new IntelWin64CCompiler( - false, null); - public static IntelWin64CCompiler getInstance() { - return instance; - } - private IntelWin64CCompiler(boolean newEnvironment, Environment env) { - super("ecl", null, newEnvironment, env); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new IntelWin64CCompiler(newEnvironment, env); - } - return this; - } - public Linker getLinker(LinkType type) { - // - // currently the Intel Win32 and Win64 linkers - // are command line equivalent - return IntelWin32Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return 1024; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java deleted file mode 100644 index 633b55ec0c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os390; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.CompilerDef; -import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.types.DefineArgument; -import net.sf.antcontrib.cpptasks.types.UndefineArgument; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the IBM (R) OS/390 (tm) C++ Compiler - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class OS390CCompiler extends CommandLineCCompiler { - private static final AbstractCompiler instance = new OS390CCompiler(false, - null); - public static AbstractCompiler getInstance() { - return instance; - } - private OS390CCompiler(boolean newEnvironment, Environment env) { - super("cxx", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++", - ".s"}, new String[]{".h", ".hpp"}, ".o", false, null, - newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - // Specifies that only compilations and assemblies be done. - // Link-edit is not done - args.addElement("-c"); - args.addElement("-W"); - args.addElement("c,NOEXPMAC,NOSHOWINC"); - /* - * if (exceptions) { args.addElement("/GX"); } - */ - if (debug) { - args.addElement("-g"); - args.addElement("-D"); - args.addElement("_DEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MTd"); } else { args.addElement("/MDd"); - * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); } - */ - } else { - args.addElement("-D"); - args.addElement("NEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MT"); } else { args.addElement("/MD"); - * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); } - */ - } - } - protected void addWarningSwitch(Vector args, int level) { - OS390Processor.addWarningSwitch(args, level); - } - /** - * The buildDefineArguments implementation CommandLineCCompiler is not good - * for us because os390 defines are give by -D definex instead of - * /Ddefinex, 2 args not 1! since we implement this ourslefs, we do not - * have to implement the getDefineSwitch() and the getUndefineSwitch(). - */ - protected void buildDefineArguments(CompilerDef[] defs, Vector args) { - // - // assume that we aren't inheriting defines from containing - // - UndefineArgument[] merged = defs[0].getActiveDefines(); - for (int i = 1; i < defs.length; i++) { - // - // if we are inheriting, merge the specific defines with the - // containing defines - merged = DefineArgument.merge(defs[i].getActiveDefines(), merged); - } - StringBuffer buf = new StringBuffer(30); - for (int i = 0; i < merged.length; i++) { - buf.setLength(0); - UndefineArgument current = merged[i]; - if (current.isDefine()) { - args.addElement("-D"); - buf.append(current.getName()); - if (current.getValue() != null - && current.getValue().length() > 0) { - buf.append('='); - buf.append(current.getValue()); - } - args.addElement(buf.toString()); - } else { - args.addElement("-U"); - args.addElement(current.getName()); - } - } - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new OS390CCompiler(newEnvironment, env); - } - return this; - } - /* - * @see CommandLineCompiler#getDefineSwitch(StringBuffer, String, String) - */ - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - protected String getIncludeDirSwitch(String includeDir) { - return OS390Processor.getIncludeDirSwitch(includeDir); - } - public Linker getLinker(LinkType type) { - return OS390Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - /* Only compile one file at time for now */ - protected int getMaximumInputFilesPerCommand() { - return Integer.MAX_VALUE; - } - /* - * @see CommandLineCompiler#getUndefineSwitch(StringBuffer, String) - */ - protected void getUndefineSwitch(StringBuffer buffer, String define) { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java deleted file mode 100644 index f6653b7be4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os390; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -import org.apache.tools.ant.BuildException; -/** - * Adapter for the IBM (R) OS/390 (tm) Linker - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public final class OS390Linker extends CommandLineLinker { - private static final OS390Linker datasetLinker = new OS390Linker(); - private static final OS390Linker dllLinker = new OS390Linker("", ".dll"); - private static final OS390Linker instance = new OS390Linker("", ""); - public static OS390Linker getDataSetInstance() { - return datasetLinker; - } - public static OS390Linker getInstance() { - return instance; - } - private boolean isADatasetLinker; - File outputFile; - private String outputPrefix; - CCTask task; - private OS390Linker() { - super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".xds"}, - new String[]{".dll", ".x"}, ".xds", false, null); - this.outputPrefix = ""; - this.isADatasetLinker = true; - } - private OS390Linker(String outputPrefix, String outputSuffix) { - super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".x"}, - new String[]{".dll"}, outputSuffix, false, null); - this.outputPrefix = outputPrefix; - this.isADatasetLinker = false; - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (linkType.isSharedLibrary()) { - args.addElement("-W"); - args.addElement("l,DLL"); - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - /* - * @see CommandLineLinker#addLibrarySets(LibrarySet[], Vector, Vector, - * Vector) - */ - protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - // If yo want to link against a library sitting in a dataset and - // not in the HFS, you can just use the //'dataset' notation - // to specify it. e.g: - // - // - // We have to have special handling here because the file is not - // on the normal filesystem so the task will not noramly include it - // as part of the link command. - if (libsets != null) { - for (int i = 0; i < libsets.length; i++) { - String libs[] = libsets[i].getLibs(); - for (int j = 0; j < libs.length; j++) { - if (libs[j].startsWith("//")) { - endargs.addElement("-l"); - endargs.addElement(libs[j]); - } else if (libsets[i].getDataset() != null) { - String ds = libsets[i].getDataset(); - endargs.addElement("//'" + ds + "(" + libs[j] + ")'"); - } - } - } - } - return super.addLibrarySets(task, libsets, preargs, midargs, endargs); - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length * 3]; - int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - offset = addLibraryPatterns(libnames, buf, "", ".x", patterns, offset); - offset = addLibraryPatterns(libnames, buf, "", ".o", patterns, offset); - return patterns; - } - - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - - public Linker getLinker(LinkType linkType) { - if (this == datasetLinker) - return datasetLinker; - if (linkType.isSharedLibrary()) - return dllLinker; - return instance; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public String getOutputFileName(String baseName) { - return outputPrefix + super.getOutputFileName(baseName); - } - protected String[] getOutputFileSwitch(CCTask task, String outputFile) { - if (isADatasetLinker && task.getDataset() != null) { - String ds = task.getDataset(); - outputFile = "//'" + ds + "(" + outputFile + ")'"; - } - return getOutputFileSwitch(outputFile); - } - public String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - public boolean isCaseSensitive() { - return OS390Processor.isCaseSensitive(); - } - /* - * @see CommandLineLinker#link(Task, File, String[], - * CommandLineLinkerConfiguration) - */ - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - this.task = task; - this.outputFile = outputFile; - if (isADatasetLinker) { - int p = outputFile.getName().indexOf("."); - if (p >= 0) { - String newname = outputFile.getName().substring(0, p); - outputFile = new File(outputFile.getParent(), newname); - } - } - super.link(task, outputFile, sourceFiles, config); - } - /* - * @see CommandLineLinker#runCommand(Task, File, String[]) - */ - protected int runCommand(CCTask task, File workingDir, String[] cmdline) - throws BuildException { - int rc = super.runCommand(task, workingDir, cmdline); - // create the .xds file if everything was ok. - if (rc == 0) { - try { - outputFile.delete(); - new FileOutputStream(outputFile).close(); - } catch (IOException e) { - throw new BuildException(e.getMessage()); - } - } - return rc; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java deleted file mode 100644 index 2c209dd6bb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os390; -import java.util.Vector; -/** - * A add-in class for IBM (r) OS/390 compilers and linkers - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class OS390Processor { - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - /* - * case 0: args.addElement("/W0"); break; - * - * case 1: args.addElement("/W1"); break; - * - * case 2: break; - * - * case 3: args.addElement("/W3"); break; - * - * case 4: args.addElement("/W4"); break; - */ - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - if (cmdFile.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(cmdFile); - buf.append('\"'); - } else { - buf.append(cmdFile); - } - return buf.toString(); - } - public static String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } - public static String[] getOutputFileSwitch(String outPath) { - StringBuffer buf = new StringBuffer("-o "); - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - String[] retval = new String[]{buf.toString()}; - return retval; - } - public static boolean isCaseSensitive() { - return true; - } - private OS390Processor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java deleted file mode 100644 index f40858f71b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os400; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the IBM (R) OS/390 (tm) C++ Compiler - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class IccCompiler extends CommandLineCCompiler { - private static final AbstractCompiler instance = new IccCompiler(false, - null); - public static AbstractCompiler getInstance() { - return instance; - } - private IccCompiler(boolean newEnvironment, Environment env) { - super("icc", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++", - ".s"}, new String[]{".h", ".hpp"}, ".o", false, null, - newEnvironment, env); - } - protected void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - // Specifies that only compilations and assemblies be done. - // Link-edit is not done - args.addElement("-c"); - /* - * if (exceptions) { args.addElement("/GX"); } - */ - if (debug) { - args.addElement("-g"); - /* - * args.addElement("-D"); args.addElement("_DEBUG"); if - * (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MTd"); } else { args.addElement("/MDd"); - * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); } - */ - } else { - /* - * args.addElement("-D"); args.addElement("NEBUG"); if - * (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MT"); } else { args.addElement("/MD"); - * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); } - */ - } - } - protected void addWarningSwitch(Vector args, int level) { - IccProcessor.addWarningSwitch(args, level); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new IccCompiler(newEnvironment, env); - } - return this; - } - /* - * @see CommandLineCompiler#getDefineSwitch(StringBuffer, String, String) - */ - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("-q"); - buffer.append(define); - if (value != null && value.length() > 0) { - buffer.append('='); - buffer.append(value); - } - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - protected String getIncludeDirSwitch(String includeDir) { - return IccProcessor.getIncludeDirSwitch(includeDir); - } - public Linker getLinker(LinkType type) { - return IccLinker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - /* Only compile one file at time for now */ - protected int getMaximumInputFilesPerCommand() { - return 1; - //return Integer.MAX_VALUE; - } - /* - * @see CommandLineCompiler#getUndefineSwitch(StringBuffer, String) - */ - protected void getUndefineSwitch(StringBuffer buffer, String define) { - /* - * buffer.addElement("-q"); buf.append(define); - */ - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java deleted file mode 100644 index 5e4e2f229a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os400; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -import org.apache.tools.ant.BuildException; -/** - * Adapter for the IBM (R) OS/390 (tm) Linker - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public final class IccLinker extends CommandLineLinker { - private static final IccLinker datasetLinker = new IccLinker(); - private static final IccLinker dllLinker = new IccLinker("", ".dll"); - private static final IccLinker instance = new IccLinker("", ""); - public static IccLinker getDataSetInstance() { - return datasetLinker; - } - public static IccLinker getInstance() { - return instance; - } - private boolean isADatasetLinker; - File outputFile; - private String outputPrefix; - CCTask task; - private IccLinker() { - super("icc", "/bogus", new String[]{".o", ".a", ".lib", ".xds"}, - new String[]{".dll", ".x"}, ".xds", false, null); - this.outputPrefix = ""; - this.isADatasetLinker = true; - } - private IccLinker(String outputPrefix, String outputSuffix) { - super("icc", "/bogus", new String[]{".o", ".a", ".lib", ".x"}, - new String[]{".dll"}, outputSuffix, false, null); - this.outputPrefix = outputPrefix; - this.isADatasetLinker = false; - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (linkType.isSharedLibrary()) { - args.addElement("-W"); - args.addElement("l,DLL"); - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - /* - * @see CommandLineLinker#addLibrarySets(LibrarySet[], Vector, Vector, - * Vector) - */ - protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - // If yo want to link against a library sitting in a dataset and - // not in the HFS, you can just use the //'dataset' notation - // to specify it. e.g: - // - // - // We have to have special handling here because the file is not - // on the normal filesystem so the task will not noramly include it - // as part of the link command. - if (libsets != null) { - for (int i = 0; i < libsets.length; i++) { - String libs[] = libsets[i].getLibs(); - for (int j = 0; j < libs.length; j++) { - if (libs[j].startsWith("//")) { - endargs.addElement("-l"); - endargs.addElement(libs[j]); - } else if (libsets[i].getDataset() != null) { - String ds = libsets[i].getDataset(); - endargs.addElement("//'" + ds + "(" + libs[j] + ")'"); - } - } - } - } - return super.addLibrarySets(task, libsets, preargs, midargs, endargs); - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length * 3]; - int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - offset = addLibraryPatterns(libnames, buf, "", ".x", patterns, offset); - offset = addLibraryPatterns(libnames, buf, "", ".o", patterns, offset); - return patterns; - } - - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - - - public Linker getLinker(LinkType linkType) { - if (this == datasetLinker) - return datasetLinker; - if (linkType.isSharedLibrary()) - return dllLinker; - return instance; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - protected String[] getOutputFileSwitch(CCTask task, String outputFile) { - if (isADatasetLinker && task.getDataset() != null) { - String ds = task.getDataset(); - outputFile = "//'" + ds + "(" + outputFile + ")'"; - } - return getOutputFileSwitch(outputFile); - } - public String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - public boolean isCaseSensitive() { - return IccProcessor.isCaseSensitive(); - } - /* - * @see CommandLineLinker#link(Task, File, String[], - * CommandLineLinkerConfiguration) - */ - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { - this.task = task; - this.outputFile = outputFile; - if (isADatasetLinker) { - int p = outputFile.getName().indexOf("."); - if (p >= 0) { - String newname = outputFile.getName().substring(0, p); - outputFile = new File(outputFile.getParent(), newname); - } - } - super.link(task, outputFile, sourceFiles, config); - } - /* - * @see CommandLineLinker#runCommand(Task, File, String[]) - */ - protected int runCommand(CCTask task, File workingDir, String[] cmdline) - throws BuildException { - int rc = super.runCommand(task, workingDir, cmdline); - // create the .xds file if everything was ok. - if (rc == 0) { - try { - outputFile.delete(); - new FileOutputStream(outputFile).close(); - } catch (IOException e) { - throw new BuildException(e.getMessage()); - } - } - return rc; - } - public String xgetOutputFileName(String baseName) { - return outputPrefix + super.getOutputFileName(baseName); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java deleted file mode 100644 index 4cc7b36ab3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.os400; -import java.util.Vector; -/** - * A add-in class for IBM (r) OS/390 compilers and linkers - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class IccProcessor { - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - /* - * case 0: args.addElement("/W0"); break; - * - * case 1: args.addElement("/W1"); break; - * - * case 2: break; - * - * case 3: args.addElement("/W3"); break; - * - * case 4: args.addElement("/W4"); break; - */ - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - if (cmdFile.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(cmdFile); - buf.append('\"'); - } else { - buf.append(cmdFile); - } - return buf.toString(); - } - public static String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } - public static String[] getOutputFileSwitch(String outPath) { - StringBuffer buf = new StringBuffer("-o "); - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - String[] retval = new String[]{buf.toString()}; - return retval; - } - public static boolean isCaseSensitive() { - return true; - } - private IccProcessor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java deleted file mode 100644 index 6f0b79c072..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -import java.io.IOException; -import java.io.Reader; -/** - * An abstract base class for simple parsers - * - * @author Curt Arnold - */ -public abstract class AbstractParser { - /** - * - * - */ - protected AbstractParser() { - } - protected abstract void addFilename(String filename); - public abstract AbstractParserState getNewLineState(); - protected void parse(Reader reader) throws IOException { - char[] buf = new char[4096]; - AbstractParserState newLineState = getNewLineState(); - AbstractParserState state = newLineState; - int charsRead = -1; - do { - charsRead = reader.read(buf, 0, buf.length); - if (state == null) { - for (int i = 0; i < charsRead; i++) { - if (buf[i] == '\n') { - state = newLineState; - break; - } - } - } - if (state != null) { - for (int i = 0; i < charsRead; i++) { - state = state.consume(buf[i]); - // - // didn't match a production, skip to a new line - // - if (state == null) { - for (; i < charsRead; i++) { - if (buf[i] == '\n') { - state = newLineState; - break; - } - } - } - } - } - } while (charsRead >= 0); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java deleted file mode 100644 index fe66dbbef0..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -/** - * An base class for objects that represent the state of an AbstractParser. - * - * @author CurtArnold - * @see AbstractParser - */ -public abstract class AbstractParserState { - private AbstractParser parser; - protected AbstractParserState(AbstractParser parser) { - if (parser == null) { - throw new NullPointerException("parser"); - } - this.parser = parser; - } - /** - * Consume a character - * - * @return new state, may be null to ignore the rest of the line - */ - public abstract AbstractParserState consume(char ch); - protected AbstractParser getParser() { - return parser; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java deleted file mode 100644 index 370c7d5836..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -public class BranchState extends AbstractParserState { - private char[] branchChars; - private AbstractParserState[] branchStates; - private AbstractParserState noMatchState; - public BranchState(AbstractParser parser, char[] branchChars, - AbstractParserState[] branchStates, AbstractParserState noMatchState) { - super(parser); - this.branchChars = (char[]) branchChars.clone(); - this.branchStates = (AbstractParserState[]) branchStates.clone(); - this.noMatchState = noMatchState; - } - public AbstractParserState consume(char ch) { - AbstractParserState state; - for (int i = 0; i < branchChars.length; i++) { - if (ch == branchChars[i]) { - state = branchStates[i]; - return state.consume(ch); - } - } - state = getNoMatchState(); - if (state != null) { - return state.consume(ch); - } - return state; - } - protected AbstractParserState getNoMatchState() { - return noMatchState; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java deleted file mode 100644 index 07f8eba4e2..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -import java.io.IOException; -import java.io.Reader; -import java.util.Vector; -/** - * A parser that extracts #include statements from a Reader. - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public final class CParser extends AbstractParser implements Parser { - private final Vector includes = new Vector(); - private AbstractParserState newLineState; - /** - * - * - */ - public CParser() { - AbstractParserState quote = new FilenameState(this, new char[]{'"'}); - AbstractParserState bracket = new FilenameState(this, new char[]{'>'}); - AbstractParserState postE = new PostE(this, bracket, quote); - // - // nclude - // - AbstractParserState e = new LetterState(this, 'e', postE, null); - AbstractParserState d = new LetterState(this, 'd', e, null); - AbstractParserState u = new LetterState(this, 'u', d, null); - AbstractParserState l = new LetterState(this, 'l', u, null); - AbstractParserState c = new LetterState(this, 'c', l, null); - AbstractParserState n = new LetterState(this, 'n', c, null); - // - // mport is equivalent to nclude - // - AbstractParserState t = new LetterState(this, 't', postE, null); - AbstractParserState r = new LetterState(this, 'r', t, null); - AbstractParserState o = new LetterState(this, 'o', r, null); - AbstractParserState p = new LetterState(this, 'p', o, null); - AbstractParserState m = new LetterState(this, 'm', p, null); - // - // switch between - // - AbstractParserState n_m = new BranchState(this, new char[]{'n', 'm'}, - new AbstractParserState[]{n, m}, null); - AbstractParserState i = new WhitespaceOrLetterState(this, 'i', n_m); - newLineState = new LetterState(this, '#', i, null); - } - public void addFilename(String include) { - includes.addElement(include); - } - public String[] getIncludes() { - String[] retval = new String[includes.size()]; - includes.copyInto(retval); - return retval; - } - public AbstractParserState getNewLineState() { - return newLineState; - } - public void parse(Reader reader) throws IOException { - includes.setSize(0); - super.parse(reader); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java deleted file mode 100644 index a86700f166..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; - -/** - * This parser state checks consumed characters against a specific character - * (case insensitive). - * - * @author Curt Arnold - */ -public final class CaseInsensitiveLetterState - extends AbstractParserState { - /** - * Next state if a match is found. - */ - private final AbstractParserState nextState; - - /** - * Next state if not match is found. - */ - private final AbstractParserState noMatchState; - - /** - * Lower case version of character to match. - */ - private final char lowerLetter; - - /** - * Lower case version of character to match. - */ - private final char upperLetter; - - /** - * Constructor. - * - * @param parser - * parser - * @param matchLetter - * letter to match - * @param nextStateArg - * next state if a match on the letter - * @param noMatchStateArg - * state if no match on letter - */ - public CaseInsensitiveLetterState(final AbstractParser parser, - final char matchLetter, - final AbstractParserState nextStateArg, - final AbstractParserState noMatchStateArg) { - super(parser); - this.lowerLetter = Character.toLowerCase(matchLetter); - this.upperLetter = Character.toUpperCase(matchLetter); - this.nextState = nextStateArg; - this.noMatchState = noMatchStateArg; - } - - /** - * Consumes a character and returns the next state for the parser. - * - * @param ch - * next character - * @return the configured nextState if ch is the expected character or the - * configure noMatchState otherwise. - */ - public AbstractParserState consume(final char ch) { - if (ch == lowerLetter || ch == upperLetter) { - return nextState; - } - if (ch == '\n') { - getParser().getNewLineState(); - } - return noMatchState; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java deleted file mode 100644 index f33940b0a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -public class FilenameState extends AbstractParserState { - private final StringBuffer buf = new StringBuffer(); - private final char[] terminators; - public FilenameState(AbstractParser parser, char[] terminators) { - super(parser); - this.terminators = (char[]) terminators.clone(); - } - public AbstractParserState consume(char ch) { - for (int i = 0; i < terminators.length; i++) { - if (ch == terminators[i]) { - getParser().addFilename(buf.toString()); - buf.setLength(0); - return null; - } - } - if (ch == '\n') { - buf.setLength(0); - return getParser().getNewLineState(); - } else { - buf.append(ch); - } - return this; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java deleted file mode 100644 index 261e95ad81..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; - -import java.io.IOException; -import java.io.Reader; -import java.util.Vector; - -/** - * A parser that extracts INCLUDE statements from a Reader. - * - * @author Curt Arnold - */ -public final class FortranParser - extends AbstractParser - implements Parser { - /** - * List of included filenames. - */ - private final Vector includes = new Vector(); - - /** - * State that starts consuming content at the beginning of a line. - */ - private final AbstractParserState newLineState; - - /** - * Default constructor. - * - */ - public FortranParser() { - AbstractParserState filename = new FilenameState(this, new char[] {'\'', - '/'}); - AbstractParserState apos = new WhitespaceOrLetterState(this, '\'', - filename); - AbstractParserState blank = new LetterState(this, ' ', apos, null); - AbstractParserState e = new CaseInsensitiveLetterState(this, 'E', - blank, null); - AbstractParserState d = new CaseInsensitiveLetterState(this, 'D', e, - null); - AbstractParserState u = new CaseInsensitiveLetterState(this, 'U', d, - null); - AbstractParserState l = new CaseInsensitiveLetterState(this, 'L', u, - null); - AbstractParserState c = new CaseInsensitiveLetterState(this, 'C', l, - null); - AbstractParserState n = new CaseInsensitiveLetterState(this, 'N', c, - null); - newLineState = new WhitespaceOrCaseInsensitiveLetterState(this, 'I', n); - } - - /** - * Called by FilenameState at completion of file name production. - * - * @param include - * include file name - */ - public void addFilename(final String include) { - includes.addElement(include); - } - - /** - * Gets collection of include file names encountered in parse. - * @return include file names - */ - public String[] getIncludes() { - String[] retval = new String[includes.size()]; - includes.copyInto(retval); - return retval; - } - - /** - * Get the state for the beginning of a new line. - * @return start of line state - */ - public AbstractParserState getNewLineState() { - return newLineState; - } - - /** - * Collects all included files from the content of the reader. - * - * @param reader - * character reader containing a FORTRAN source module - * @throws IOException - * throw if I/O error during parse - */ - public void parse(final Reader reader) throws IOException { - includes.setSize(0); - super.parse(reader); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java deleted file mode 100644 index 945ae91233..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; - -/** - * This parser state checks consumed characters against a specific character. - * - * @author Curt Arnold - */ -public final class LetterState - extends AbstractParserState { - /** - * Next state if a match is found. - */ - private final AbstractParserState nextState; - - /** - * Next state if not match is found. - */ - private final AbstractParserState noMatchState; - - /** - * Character to match. - */ - private final char thisLetter; - - /** - * Constructor. - * - * @param parser - * parser - * @param matchLetter - * letter to match - * @param nextStateArg - * next state if a match on the letter - * @param noMatchStateArg - * state if no match on letter - */ - public LetterState(final AbstractParser parser, - final char matchLetter, - final AbstractParserState nextStateArg, - final AbstractParserState noMatchStateArg) { - super(parser); - this.thisLetter = matchLetter; - this.nextState = nextStateArg; - this.noMatchState = noMatchStateArg; - } - - /** - * Consumes a character and returns the next state for the parser. - * - * @param ch - * next character - * @return the configured nextState if ch is the expected character or the - * configure noMatchState otherwise. - */ - public AbstractParserState consume(final char ch) { - if (ch == thisLetter) { - return nextState; - } - if (ch == '\n') { - getParser().getNewLineState(); - } - return noMatchState; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java deleted file mode 100644 index cf759fc7d5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -import java.io.IOException; -import java.io.Reader; -/** - * A parser that extracts #include statements from a Reader. - * - * @author Curt Arnold - */ -public interface Parser { - String[] getIncludes(); - void parse(Reader reader) throws IOException; -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java deleted file mode 100644 index fe225fb35a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; -public class PostE extends AbstractParserState { - private AbstractParserState bracket; - private AbstractParserState quote; - public PostE(CParser parser, AbstractParserState bracket, - AbstractParserState quote) { - super(parser); - this.bracket = bracket; - this.quote = quote; - } - public AbstractParserState consume(char ch) { - switch (ch) { - case ' ' : - case '\t' : - return this; - case '<' : - return bracket; - case '"' : - return quote; - case '\n' : - return getParser().getNewLineState(); - } - return null; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java deleted file mode 100644 index 9d42feeaad..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; - -/** - * This parser state checks consumed characters against a specific character - * (case insensitive) or whitespace. - * - * @author Curt Arnold - */ -public final class WhitespaceOrCaseInsensitiveLetterState - extends - AbstractParserState { - /** - * Next state if the character is found. - */ - private final AbstractParserState nextState; - - /** - * Character to match (lower case). - */ - private final char lowerLetter; - - /** - * Character to match (upper case). - */ - private final char upperLetter; - - /** - * Constructor. - * - * @param parser - * parser - * @param matchLetter - * letter to match - * @param nextStateArg - * next state if a match on the letter - */ - public WhitespaceOrCaseInsensitiveLetterState(final AbstractParser parser, - final char matchLetter, - final AbstractParserState - nextStateArg) { - super(parser); - this.lowerLetter = Character.toLowerCase(matchLetter); - this.upperLetter = Character.toUpperCase(matchLetter); - this.nextState = nextStateArg; - } - - /** - * Consumes a character and returns the next state for the parser. - * - * @param ch - * next character - * @return the configured nextState if ch is the expected character or the - * configure noMatchState otherwise. - */ - public AbstractParserState consume(final char ch) { - if (ch == lowerLetter || ch == upperLetter) { - return nextState; - } - if (ch == ' ' || ch == '\t') { - return this; - } - if (ch == '\n') { - getParser().getNewLineState(); - } - return null; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java deleted file mode 100644 index 824abe6b68..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.parser; - -/** - * This parser state checks consumed characters against a specific character or - * whitespace. - * - * @author Curt Arnold - */ -public final class WhitespaceOrLetterState - extends AbstractParserState { - /** - * Next state if the character is found. - */ - private final AbstractParserState nextState; - - /** - * Character to match. - */ - private final char thisLetter; - - /** - * Constructor. - * - * @param parser - * parser - * @param matchLetter - * letter to match - * @param nextStateArg - * next state if a match on the letter - */ - public WhitespaceOrLetterState(final AbstractParser parser, - final char matchLetter, - final AbstractParserState nextStateArg) { - super(parser); - this.thisLetter = matchLetter; - this.nextState = nextStateArg; - } - - /** - * Consumes a character and returns the next state for the parser. - * - * @param ch - * next character @returns the configured nextState if ch is the - * expected character or the configure noMatchState otherwise. - * @return next state - */ - public AbstractParserState consume(final char ch) { - if (ch == thisLetter) { - return nextState; - } - if (ch == ' ' || ch == '\t') { - return this; - } - if (ch == '\n') { - getParser().getNewLineState(); - } - return null; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java deleted file mode 100644 index 6679c239dd..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Sun C89 C++ Compiler - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class C89CCompiler extends CommandLineCCompiler { - private static final AbstractCompiler instance = new C89CCompiler(false, - null); - public static AbstractCompiler getInstance() { - return instance; - } - private C89CCompiler(boolean newEnvironment, Environment env) { - super("c89", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++"}, - new String[]{".h", ".hpp"}, ".o", false, null, newEnvironment, - env); - } - protected void addImpliedArgs( - final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - // Specifies that only compilations and assemblies be done. - args.addElement("-c"); - /* - * if (exceptions) { args.addElement("/GX"); } - */ - if (debug) { - args.addElement("-g"); - args.addElement("-D_DEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MTd"); } else { args.addElement("/MDd"); - * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); } - */ - } else { - args.addElement("-DNDEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MT"); } else { args.addElement("/MD"); - * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); } - */ - } - } - protected void addWarningSwitch(Vector args, int level) { - C89Processor.addWarningSwitch(args, level); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new C89CCompiler(newEnvironment, env); - } - return this; - } - protected void getDefineSwitch(StringBuffer buf, String define, String value) { - C89Processor.getDefineSwitch(buf, define, value); - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - protected String getIncludeDirSwitch(String includeDir) { - return C89Processor.getIncludeDirSwitch(includeDir); - } - public Linker getLinker(LinkType type) { - return C89Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - /* Only compile one file at time for now */ - protected int getMaximumInputFilesPerCommand() { - return 1; - } - protected void getUndefineSwitch(StringBuffer buf, String define) { - C89Processor.getUndefineSwitch(buf, define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java deleted file mode 100644 index 37b3950bbe..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for the Sun C89 Linker - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public final class C89Linker extends CommandLineLinker { - private static final C89Linker dllLinker = new C89Linker("lib", ".so"); - private static final C89Linker instance = new C89Linker("", ""); - public static C89Linker getInstance() { - return instance; - } - private String outputPrefix; - private C89Linker(String outputPrefix, String outputSuffix) { - super("ld", "/bogus", new String[]{".o", ".a", ".lib", ".x"}, - new String[]{}, outputSuffix, false, null); - this.outputPrefix = outputPrefix; - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (linkType.isSharedLibrary()) { - args.addElement("-G"); - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - super.addLibrarySets(task, libsets, preargs, midargs, endargs); - StringBuffer buf = new StringBuffer("-l"); - for (int i = 0; i < libsets.length; i++) { - LibrarySet set = libsets[i]; - File libdir = set.getDir(null); - String[] libs = set.getLibs(); - if (libdir != null) { - endargs.addElement("-L"); - endargs.addElement(libdir.getAbsolutePath()); - } - for (int j = 0; j < libs.length; j++) { - // - // reset the buffer to just "-l" - // - buf.setLength(2); - // - // add the library name - buf.append(libs[j]); - // - // add the argument to the list - endargs.addElement(buf.toString()); - } - } - return null; - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return C89Processor.getLibraryPatterns(libnames, libType); - } - public Linker getLinker(LinkType linkType) { - if (linkType.isSharedLibrary()) { - return dllLinker; - } - /* - * if(linkType.isStaticLibrary()) { return - * OS390Librarian.getInstance(); } - */ - return instance; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public String getOutputFileName(String baseName) { - return outputPrefix + super.getOutputFileName(baseName); - } - public String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - public boolean isCaseSensitive() { - return C89Processor.isCaseSensitive(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java deleted file mode 100644 index c54c866966..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * A add-in class for Sun C89 compilers and linkers - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class C89Processor { - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - /* - * case 0: args.addElement("/W0"); break; - * - * case 1: args.addElement("/W1"); break; - * - * case 2: break; - * - * case 3: args.addElement("/W3"); break; - * - * case 4: args.addElement("/W4"); break; - */ - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - if (cmdFile.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(cmdFile); - buf.append('\"'); - } else { - buf.append(cmdFile); - } - return buf.toString(); - } - public static void getDefineSwitch(StringBuffer buf, String define, - String value) { - buf.setLength(0); - buf.append("-D"); - buf.append(define); - if (value != null && value.length() > 0) { - buf.append('='); - buf.append(value); - } - } - public static String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } - public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - int patternCount = libnames.length*2; - if (libType != null) { - patternCount = libnames.length; - } - String[] patterns = new String[patternCount]; - int offset = 0; - if (libType == null || "static".equals(libType.getValue())) { - offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - } - if (libType == null || !"static".equals(libType.getValue())) { - offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns, - offset); - } - return patterns; - } - public static String[] getOutputFileSwitch(String outPath) { - StringBuffer buf = new StringBuffer("-o "); - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - String[] retval = new String[]{buf.toString()}; - return retval; - } - public static void getUndefineSwitch(StringBuffer buf, String define) { - buf.setLength(0); - buf.append("-U"); - buf.append(define); - } - public static boolean isCaseSensitive() { - return true; - } - private C89Processor() { - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java deleted file mode 100644 index a35d01af49..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; -/** - * Adapter for the Sun (r) Forte (tm) C++ compiler - * - * @author Curt Arnold - */ -public final class ForteCCCompiler extends GccCompatibleCCompiler { - private static final ForteCCCompiler instance = new ForteCCCompiler("CC"); - /** - * Gets singleton instance of this class - */ - public static ForteCCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use ForteCCCompiler.getInstance() to get singleton - * instance of this class. - */ - private ForteCCCompiler(String command) { - super(command, "-V", false, null, false, null); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - if (optimization != null) { - if (optimization.isSpeed()) { - args.addElement("-xO2"); - } - } - if (rtti != null) { - if (rtti.booleanValue()) { - args.addElement("-features=rtti"); - } else { - args.addElement("-features=no%rtti"); - } - } - if (multithreaded) { - args.addElement("-mt"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-KPIC"); - } - - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - case 2 : - args.addElement("+w"); - break; - case 3 : - case 4 : - case 5 : - args.addElement("+w2"); - break; - } - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - File ccLoc = CUtil.getExecutableLocation("CC"); - if (ccLoc != null) { - File compilerIncludeDir = new File( - new File(ccLoc, "../include").getAbsolutePath()); - if (compilerIncludeDir.exists()) { - includePath = new File[2]; - includePath[0] = compilerIncludeDir; - } - } - if (includePath == null) { - includePath = new File[1]; - } - includePath[includePath.length - 1] = new File("/usr/include"); - } - return includePath; - } - public Linker getLinker(LinkType linkType) { - return ForteCCLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java deleted file mode 100644 index c39071af9f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -/** - * Adapter for Sun (r) Forte(tm) C++ Linker - * - * @author Curt Arnold - */ -public final class ForteCCLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[]{".dll", ".so", - ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib"}; - private static final ForteCCLinker arLinker = new ForteCCLinker("CC", - objFiles, discardFiles, "lib", ".a"); - private static final ForteCCLinker dllLinker = new ForteCCLinker("CC", - objFiles, discardFiles, "lib", ".so"); - private static final ForteCCLinker instance = new ForteCCLinker("CC", - objFiles, discardFiles, "", ""); - public static ForteCCLinker getInstance() { - return instance; - } - private File[] libDirs; - private ForteCCLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, String outputSuffix) { - super(command, "-V", extensions, ignoredExtensions, outputPrefix, - outputSuffix, false, null); - } - public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - if (debug) { - args.addElement("-g"); - } - if (linkType.isStaticRuntime()) { - args.addElement("-static"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-G"); - } - if (linkType.isStaticLibrary()) { - args.addElement("-xar"); - } - } - public void addIncremental(boolean incremental, Vector args) { - /* - * if (incremental) { args.addElement("-xidlon"); } else { - * args.addElement("-xidloff"); } - */ - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - File CCloc = CUtil.getExecutableLocation("CC"); - if (CCloc != null) { - File compilerLib = new File(new File(CCloc, "../lib") - .getAbsolutePath()); - if (compilerLib.exists()) { - libDirs = new File[2]; - libDirs[0] = compilerLib; - } - } - if (libDirs == null) { - libDirs = new File[1]; - } - } - libDirs[libDirs.length - 1] = new File("/usr/lib"); - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return arLinker; - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java deleted file mode 100644 index d08b9fbbf6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ti; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for TI DSP compilers with cl** commands - * - * @author CurtA - */ -public class ClxxCCompiler extends CommandLineCCompiler { - /** - * Header file extensions - */ - private static final String[] headerExtensions = new String[]{".h", ".hpp", - ".inl"}; - /** - * Source file extensions - */ - private static final String[] sourceExtensions = new String[]{".c", ".cc", - ".cpp", ".cxx", ".c++"}; - /** - * Singleton for TMS320C55x - */ - private static final ClxxCCompiler cl55 = new ClxxCCompiler("cl55", false, - null); - /** - * Singleton for TMS320C6000 - */ - private static final ClxxCCompiler cl6x = new ClxxCCompiler("cl6x", false, - null); - public static ClxxCCompiler getCl55Instance() { - return cl55; - } - public static ClxxCCompiler getCl6xInstance() { - return cl6x; - } - /** - * Private constructor - * - * @param command - * executable name - * @param newEnvironment - * Change environment - * @param env - * New environment - */ - private ClxxCCompiler(String command, boolean newEnvironment, - Environment env) { - super(command, "-h", sourceExtensions, headerExtensions, ".o", false, - null, newEnvironment, env); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addImpliedArgs(java.util.Vector, - * boolean, boolean, boolean, - * net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - protected void addImpliedArgs( - final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization, - final Boolean defaultflag) { - if (debug) { - args.addElement("-gw"); - } - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addWarningSwitch(java.util.Vector, - * int) - */ - protected void addWarningSwitch(Vector args, int warnings) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getDefineSwitch(java.lang.StringBuffer, - * java.lang.String, java.lang.String) - */ - protected void getDefineSwitch(StringBuffer buffer, String define, - String value) { - buffer.append("-d"); - buffer.append(define); - if (value != null) { - buffer.append('='); - buffer.append(value); - } - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getEnvironmentIncludePath() - */ - protected File[] getEnvironmentIncludePath() { - File[] c_dir = CUtil.getPathFromEnvironment("C_DIR", ";"); - File[] cx_dir = CUtil.getPathFromEnvironment("C6X_C_DIR", ";"); - if (c_dir.length == 0) { - return cx_dir; - } - if (cx_dir.length == 0) { - return c_dir; - } - File[] combo = new File[c_dir.length + cx_dir.length]; - for (int i = 0; i < cx_dir.length; i++) { - combo[i] = cx_dir[i]; - } - for (int i = 0; i < c_dir.length; i++) { - combo[i + cx_dir.length] = c_dir[i]; - } - return combo; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getIncludeDirSwitch(java.lang.String) - */ - protected String getIncludeDirSwitch(String source) { - return "-I" + source; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - if (this == cl6x) { - return ClxxLibrarian.getCl6xInstance(); - } - return ClxxLibrarian.getCl55Instance(); - } - if (type.isSharedLibrary()) { - if (this == cl6x) { - return ClxxLinker.getCl6xDllInstance(); - } - return ClxxLinker.getCl55DllInstance(); - } - if (this == cl6x) { - return ClxxLinker.getCl6xInstance(); - } - return ClxxLinker.getCl55Instance(); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getMaximumCommandLength() - */ - public int getMaximumCommandLength() { - return 1024; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getUndefineSwitch(java.lang.StringBuffer, - * java.lang.String) - */ - protected void getUndefineSwitch(StringBuffer buffer, String define) { - buffer.append("-u"); - buffer.append(define); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java deleted file mode 100644 index 082d1a477f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ti; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * - * Adapter for TI DSP librarian - * * - * @author CurtA - */ -public class ClxxLibrarian extends CommandLineLinker { - private static final ClxxLibrarian cl55Instance = new ClxxLibrarian("ar55"); - private static final ClxxLibrarian cl6xInstance = new ClxxLibrarian("ar6x"); - public static final ClxxLibrarian getCl55Instance() { - return cl55Instance; - } - public static final ClxxLibrarian getCl6xInstance() { - return cl6xInstance; - } - private ClxxLibrarian(String command) { - super(command, null, new String[]{".o"}, new String[0], ".lib", false, - null); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long, - * java.util.Vector) - */ - protected void addBase(long base, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean, - * java.util.Vector) - */ - protected void addFixed(Boolean fixed, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean, - * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector) - */ - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean, - * java.util.Vector) - */ - protected void addIncremental(boolean incremental, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean, - * java.util.Vector) - */ - protected void addMap(boolean map, Vector args) { - // TODO Auto-generated method stub - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int, - * java.util.Vector) - */ - protected void addStack(int stack, Vector args) { - // TODO Auto-generated method stub - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String) - */ - protected String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath() - */ - public File[] getLibraryPath() { - return new File[0]; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[]) - */ - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return new String[0]; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType linkType) { - return null; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength() - */ - protected int getMaximumCommandLength() { - return 1024; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String) - */ - protected String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive() - */ - public boolean isCaseSensitive() { - // TODO Auto-generated method stub - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java deleted file mode 100644 index 43ee7c0662..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ti; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * Adapter for TI DSP linkers - * * - * @author CurtA - * - */ -public class ClxxLinker extends CommandLineLinker { - private static final ClxxLinker cl55DllInstance = new ClxxLinker("lnk55", - ".dll"); - private static final ClxxLinker cl55Instance = new ClxxLinker("lnk55", - ".exe"); - private static final ClxxLinker cl6xDllInstance = new ClxxLinker("lnk6x", - ".dll"); - private static final ClxxLinker cl6xInstance = new ClxxLinker("lnk6x", - ".exe"); - public static ClxxLinker getCl55DllInstance() { - return cl55DllInstance; - } - public static ClxxLinker getCl55Instance() { - return cl55Instance; - } - public static ClxxLinker getCl6xDllInstance() { - return cl6xDllInstance; - } - public static ClxxLinker getCl6xInstance() { - return cl6xInstance; - } - private ClxxLinker(String command, String outputSuffix) { - super(command, "-h", new String[]{".o", ".lib", ".res"}, new String[]{ - ".map", ".pdb", ".lnk"}, outputSuffix, false, null); - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long, - * java.util.Vector) - */ - protected void addBase(long base, Vector args) { - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean, - * java.util.Vector) - */ - protected void addFixed(Boolean fixed, Vector args) { - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean, - * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector) - */ - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) { - if (linkType.isSharedLibrary()) { - args.addElement("-abs"); - } - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean, - * java.util.Vector) - */ - protected void addIncremental(boolean incremental, Vector args) { - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean, - * java.util.Vector) - */ - protected void addMap(boolean map, Vector args) { - if (map) { - args.addElement("-m"); - } - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int, - * java.util.Vector) - */ - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String) - */ - protected String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath() - */ - public File[] getLibraryPath() { - return new File[0]; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[]) - */ - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - // - // TODO: Looks bogus, should be .a or .so's not .o's - // - String[] libpats = new String[libnames.length]; - for (int i = 0; i < libnames.length; i++) { - libpats[i] = libnames[i] + ".o"; - } - return libpats; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType) - */ - public Linker getLinker(LinkType linkType) { - return this; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength() - */ - protected int getMaximumCommandLength() { - return 1024; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String) - */ - protected String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - /* - * (non-Javadoc) - * - * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive() - */ - public boolean isCaseSensitive() { - // TODO Auto-generated method stub - return false; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java deleted file mode 100644 index 87babcf740..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; - -/** - * A aslcompiler command line argument. - */ -public class AslcompilerArgument extends CommandLineArgument { - public AslcompilerArgument () { - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} \ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java deleted file mode 100644 index 1b5f54d9a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2001-2005 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; - -/** - * A assembler command line argument. - */ -public class AssemblerArgument extends CommandLineArgument { - public AssemblerArgument () { - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java deleted file mode 100644 index 91ab2f6327..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; - -import org.apache.tools.ant.types.EnumeratedAttribute; -import java.io.File; -/** - * An compiler/linker command line flag. - */ -public class CommandLineArgument { - /** - * Enumerated attribute with the values "start", "mid" and "end", - */ - public static class LocationEnum extends EnumeratedAttribute { - public String[] getValues() { - return new String[]{"start", "mid", "end"}; - } - } - private String ifCond; - private int location; - private String unlessCond; - private String value; - private File file; - public CommandLineArgument() { - } - public int getLocation() { - return location; - } - public String getValue() { - return value; - } - public File getFile() { - return file; - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - */ - public boolean isActive(org.apache.tools.ant.Project p) { - if (value == null) { - return false; - } - if (ifCond != null && p.getProperty(ifCond) == null) { - return false; - } else if (unlessCond != null && p.getProperty(unlessCond) != null) { - return false; - } - return true; - } - /** - * Sets the property name for the 'if' condition. - * - * The argument will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Specifies relative location of argument on command line. "start" will - * place argument at start of command line, "mid" will place argument after - * all "start" arguments but before filenames, "end" will place argument - * after filenames. - * - */ - public void setLocation(LocationEnum location) { - this.location = location.getIndex(); - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the argument will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } - /** - * Specifies the string that should appear on the command line. The - * argument will be quoted if it contains embedded blanks. Use multiple - * arguments to avoid quoting. - * - */ - public void setValue(String value) { - this.value = value; - } - /** - * Specifies the file which lists many strings that should appear on - * the command line. Each line is one argument. The argument will be - * quated if it contains embedded blanks. Use multiple arguments in - * file to avoid quating. - * - * @param file - * name of the file - */ - public void setFile(File file) { - this.file = file; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java deleted file mode 100644 index ca9e90e732..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -/** - * A compiler command line argument. - */ -public class CompilerArgument extends CommandLineArgument { - public CompilerArgument() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java deleted file mode 100644 index af2d141e99..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import net.sf.antcontrib.cpptasks.CUtil; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.AbstractFileSet; -import org.apache.tools.ant.types.FileSet; -/** - * An Ant FileSet object augmented with if and unless conditions. - * - * @author Curt Arnold - */ -public class ConditionalFileSet extends FileSet { - private String ifCond; - private String unlessCond; - public ConditionalFileSet() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** - * overrides FileSet's implementation which would throw an exception since - * the referenced object isn't this type. - */ - protected AbstractFileSet getRef(Project p) { - return (AbstractFileSet) getRefid().getReferencedObject(p); - } - /** - * Returns true if the Path's if and unless conditions (if any) are - * satisfied. - */ - public boolean isActive() throws BuildException { - Project p = getProject(); - if (p == null) { - throw new java.lang.IllegalStateException( - "setProject() should have been called"); - } - return CUtil.isActive(p, ifCond, unlessCond); - } - /** - * Sets the property name for the 'if' condition. - * - * The fileset will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the fileset will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java deleted file mode 100644 index dc21189c15..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CUtil; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.Path; -/** - * An Ant Path object augmented with if and unless conditionals - * - * @author Curt Arnold - */ -public class ConditionalPath extends Path { - private String ifCond; - private String unlessCond; - private File file; - public ConditionalPath(Project project) { - super(project); - } - public ConditionalPath(Project p, String path) { - super(p, path); - } - public File getFile() { - return file; - } - /** - * Returns true if the Path's if and unless conditions (if any) are - * satisfied. - */ - public boolean isActive(org.apache.tools.ant.Project p) - throws BuildException { - return CUtil.isActive(p, ifCond, unlessCond); - } - /** - * Sets the property name for the 'if' condition. - * - * The path will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the path will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } - /** - * Specifies the file which lists many include paths that should appear on - * the command line. Each line is an include path. The includepath will be - * quated if it contains embedded blanks. - * - * @param file - * name of the file - */ - public void setFile(File file) { - this.file = file; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java deleted file mode 100644 index 824e939481..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -/** - * Preprocessor macro definition. - * - * @author Mark A Russell mark_russell@csg_systems.com - * - */ -public class DefineArgument extends UndefineArgument { - private String value; - public DefineArgument() { - super(true); - } - /** Returns the value of the define */ - public final String getValue() { - return value; - } - /** Set the value attribute */ - public final void setValue(String value) { - this.value = value; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java deleted file mode 100644 index 9d229fb0ff..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Reference; -/** - * Set of preprocessor macro defines and undefines. - * - * @author Mark A Russell mark_russell@csg_systems.com - * - * @author Adam Murdoch - */ -public class DefineSet extends DataType { - private Vector defineList = new Vector(); - private String ifCond = null; - private String unlessCond = null; - /** - * - * Adds a define element. - * - * @throws BuildException - * if reference - */ - public void addDefine(DefineArgument arg) throws BuildException { - if (isReference()) { - throw noChildrenAllowed(); - } - defineList.addElement(arg); - } - /** Adds defines/undefines. */ - private void addDefines(String[] defs, boolean isDefine) { - for (int i = 0; i < defs.length; i++) { - UndefineArgument def; - if (isDefine) { - def = new DefineArgument(); - } else { - def = new UndefineArgument(); - } - def.setName(defs[i]); - defineList.addElement(def); - } - } - /** - * - * Adds an undefine element. - * - * @throws BuildException - * if reference - */ - public void addUndefine(UndefineArgument arg) throws BuildException { - if (isReference()) { - throw noChildrenAllowed(); - } - defineList.addElement(arg); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** Returns the defines and undefines in this set. */ - public UndefineArgument[] getDefines() throws BuildException { - if (isReference()) { - DefineSet defset = (DefineSet) getCheckedRef(DefineSet.class, - "DefineSet"); - return defset.getDefines(); - } else { - if (isActive()) { - UndefineArgument[] defs = new UndefineArgument[defineList - .size()]; - defineList.copyInto(defs); - return defs; - } else { - return new UndefineArgument[0]; - } - } - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - * - * @exception BuildException - * throws build exception if name is not set - */ - public final boolean isActive() throws BuildException { - return CUtil.isActive(getProject(), ifCond, unlessCond); - } - /** - * A comma-separated list of preprocessor macros to define. Use nested - * define elements to define macro values. - * - * @param defList - * comma-separated list of preprocessor macros - * @throws BuildException - * throw if defineset is a reference - */ - public void setDefine(CUtil.StringArrayBuilder defList) - throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - addDefines(defList.getValue(), true); - } - /** - * Sets a description of the current data type. - */ - public void setDescription(String desc) { - super.setDescription(desc); - } - /** - * Sets an id that can be used to reference this element. - * - * @param id - * id - */ - public void setId(String id) { - // - // this is actually accomplished by a different - // mechanism, but we can document it - // - } - /** - * Sets the property name for the 'if' condition. - * - * The define will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public final void setIf(String propName) { - ifCond = propName; - } - /** - * Specifies that this element should behave as if the content of the - * element with the matching id attribute was inserted at this location. If - * specified, no other attributes or child content should be specified, - * other than "description". - * - */ - public void setRefid(Reference r) throws BuildException { - if (!defineList.isEmpty()) { - throw tooManyAttributes(); - } - super.setRefid(r); - } - /** - * A comma-separated list of preprocessor macros to undefine. - * - * @param undefList - * comma-separated list of preprocessor macros - * @throws BuildException - * throw if defineset is a reference - */ - public void setUndefine(CUtil.StringArrayBuilder undefList) - throws BuildException { - if (isReference()) { - throw tooManyAttributes(); - } - addDefines(undefList.getValue(), false); - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public final void setUnless(String propName) { - unlessCond = propName; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java deleted file mode 100644 index d95959f631..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import java.lang.reflect.Method; - -/** - * Helper class which can be used for Ant task attribute setter methods to - * allow the build file to specify a long in either decimal, octal, or - * hexadecimal format. - * // FlexInteger author - * @author Erik Hatcher - * @see org.apache.tools.ant.types.FlexInteger - */ -public class FlexLong { - private Long value; - /** - * Constructor used by Ant's introspection mechanism for attribute - * population - */ - public FlexLong(String value) { - // Java 1.1 did not support Long.decode().. so we call it by - // reflection. - try { - Method m = Long.class - .getMethod("decode", new Class[]{String.class}); - Object rc = m.invoke(null, new Object[]{value}); - this.value = (Long) rc; - } catch (Exception e) { - // Try it the old fashioned way, we must be on a 1.1 jre - this.value = new Long(value); - } - } - /** - * Returns the decimal integer value - */ - public long longValue() { - return value.longValue(); - } - /** - * Overridden method to return the decimal value for display - */ - public String toString() { - return value.toString(); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java deleted file mode 100644 index edcc42103c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import org.apache.tools.ant.Project; -/** - * An include path. - * - * Works like other paths in Ant with with the addition of "if" and "unless" - * conditions. - * - * @author Curt Arnold - */ -public class IncludePath extends ConditionalPath { - public IncludePath(Project project) { - super(project); - } - public IncludePath(Project p, String path) { - super(p, path); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java deleted file mode 100644 index d522ccc36f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java +++ /dev/null @@ -1,290 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import java.io.File; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.FileVisitor; -import net.sf.antcontrib.cpptasks.compiler.Linker; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectComponent; -import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.types.PatternSet; -/** - * A set of library names. Libraries can also be added to a link by specifying - * them in a fileset. - * - * For most Unix-like compilers, libset will result in a series of -l and -L - * linker arguments. For Windows compilers, the library names will be used to - * locate the appropriate library files which will be added to the linkers - * input file list as if they had been specified in a fileset. - * - * @author Mark A Russell mark_russell@csg_systems.com - * - * @author Adam Murdoch - * @author Curt Arnold - */ -public class LibrarySet extends ProjectComponent { - private String dataset; - private boolean explicitCaseSensitive; - private String ifCond; - private String[] libnames; - private final FileSet set = new FileSet(); - private String unlessCond; - private LibraryTypeEnum libraryType; - public LibrarySet() { - libnames = new String[0]; - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** - * Gets the dataset. Used on OS390 if the libs are in a dataset. - * - * @return Returns a String - */ - public String getDataset() { - return dataset; - } - public File getDir(Project project) { - return set.getDir(project); - } - protected FileSet getFileSet() { - return set; - } - public String[] getLibs() { - String[] retval = (String[]) libnames.clone(); - return retval; - } - - /** - * Gets preferred library type - * - * @return library type, may be null. - */ - public LibraryTypeEnum getType() { - return libraryType; - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - */ - public boolean isActive(org.apache.tools.ant.Project p) { - if (p == null) { - throw new NullPointerException("p"); - } - if (ifCond != null) { - String ifValue = p.getProperty(ifCond); - if (ifValue != null) { - if (ifValue.equals("no") || ifValue.equals("false")) { - throw new BuildException( - "property " - + ifCond - + " used as if condition has value " - + ifValue - + " which suggests a misunderstanding of if attributes"); - } - } else { - return false; - } - } - if (unlessCond != null) { - String unlessValue = p.getProperty(unlessCond); - if (unlessValue != null) { - if (unlessValue.equals("no") || unlessValue.equals("false")) { - throw new BuildException( - "property " - + unlessCond - + " used as unless condition has value " - + unlessValue - + " which suggests a misunderstanding of unless attributes"); - } - return false; - } - } - if (libnames.length == 0) { - p.log("libnames not specified or empty.", Project.MSG_WARN); - return false; - } - return true; - } - /** - * Sets case sensitivity of the file system. If not set, will default to - * the linker's case sensitivity. - * - * @param isCaseSensitive - * "true"|"on"|"yes" if file system is case sensitive, - * "false"|"off"|"no" when not. - */ - public void setCaseSensitive(boolean isCaseSensitive) { - explicitCaseSensitive = true; - set.setCaseSensitive(isCaseSensitive); - } - /** - * Sets the dataset. Used on OS390 if the libs are in a dataset. - * - * @param dataset - * The dataset to set - */ - public void setDataset(String dataset) { - this.dataset = dataset; - } - /** - * Library directory. - * - * @param dir - * library directory - * - */ - public void setDir(File dir) throws BuildException { - set.setDir(dir); - } - /** - * Sets the property name for the 'if' condition. - * - * The library set will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public void setIf(String propName) { - ifCond = propName; - } - /** - * Comma-separated list of library names without leading prefixes, such as - * "lib", or extensions, such as ".so" or ".a". - * - */ - public void setLibs(CUtil.StringArrayBuilder libs) throws BuildException { - libnames = libs.getValue(); - // If this is not active.. then it's ok if the lib names are invalid. - // so we can do a: - if (!isActive(getProject())) - return; - for (int i = 0; i < libnames.length; i++) { - int lastDot = libnames[i].lastIndexOf('.'); - if (lastDot >= 0) { - String extension = libnames[i].substring(lastDot); - if (extension.equalsIgnoreCase(".lib") - || extension.equalsIgnoreCase(".so") - || extension.equalsIgnoreCase(".a")) { - getProject().log( - "Suspicious library name ending with \"" - + extension + "\": " + libnames[i], Project.MSG_DEBUG ); - } - } - if (libnames[i].length() >= 3 - && libnames[i].substring(0, 3).equalsIgnoreCase("lib")) { - getProject().log( - "Suspicious library name starting with \"lib\": " - + libnames[i], Project.MSG_DEBUG); - } - } - } - public void setProject(Project project) { - set.setProject(project); - super.setProject(project); - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the library set will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(String propName) { - unlessCond = propName; - } - - /** - * Sets the preferred library type. Supported values "shared", "static", and - * "framework". "framework" is equivalent to "shared" on non-Darwin platforms. - */ - public void setType(LibraryTypeEnum type) { - this.libraryType = type; - } - - public void visitLibraries(Project project, Linker linker, File[] libpath, - FileVisitor visitor) throws BuildException { - FileSet localSet = (FileSet) set.clone(); - // - // unless explicitly set - // will default to the linker case sensitivity - // - if (!explicitCaseSensitive) { - boolean linkerCaseSensitive = linker.isCaseSensitive(); - localSet.setCaseSensitive(linkerCaseSensitive); - } - // - // if there was a libs attribute then - // add the corresponding patterns to the FileSet - // - if (libnames != null && libnames.length > 0) { - String[] patterns = linker.getLibraryPatterns(libnames, libraryType); - // - // if no patterns, then linker does not support libraries - // - if (patterns.length > 0) { - for (int i = 0; i < patterns.length; i++) { - PatternSet.NameEntry entry = localSet.createInclude(); - entry.setName(patterns[i]); - } - // - // if there was no specified directory then - // run through the libpath backwards - // - if (localSet.getDir(project) == null) { - // - // scan libpath in reverse order - // to give earlier entries priority - // - for (int j = libpath.length - 1; j >= 0; j--) { - FileSet clone = (FileSet) localSet.clone(); - clone.setDir(libpath[j]); - DirectoryScanner scanner = clone.getDirectoryScanner(project); - File basedir = scanner.getBasedir(); - String[] files = scanner.getIncludedFiles(); - for (int k = 0; k < files.length; k++) { - visitor.visit(basedir, files[k]); - } - } - } else { - DirectoryScanner scanner = localSet.getDirectoryScanner(project); - File basedir = scanner.getBasedir(); - String[] files = scanner.getIncludedFiles(); - for (int k = 0; k < files.length; k++) { - visitor.visit(basedir, files[k]); - } - } - } - } - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java deleted file mode 100644 index 82d7947bf2..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - * Copyright 2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import org.apache.tools.ant.types.EnumeratedAttribute; -/** - * Enumeration of library types for LibrarySet - * - * @author Curt Arnold - * - */ -public class LibraryTypeEnum extends EnumeratedAttribute { - /** - * Constructor - * - * Set by default to "shared" - * - * @see java.lang.Object#Object() - */ - public LibraryTypeEnum() { - setValue("shared"); - } - /** - * Gets list of acceptable values - * - * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues() - */ - public String[] getValues() { - return new String[]{"shared", // prefer shared libraries - "static", // prefer static libraries - "framework" // framework libraries (Mac OS/X) - // equiv to shared on other platforms - }; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java deleted file mode 100644 index 89bff1881b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -/** - * A linker command line argument. - */ -public class LinkerArgument extends CommandLineArgument { - public LinkerArgument() { - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java deleted file mode 100644 index be0dbd537a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import org.apache.tools.ant.Project; -/** - * A system include path. - * - * Files located using a system include path will not participate in dependency - * analysis. - * - * Standard include paths for a compiler should not be specified since these - * should be determined from environment variables or configuration files by - * the compiler adapter. - * - * Works like other paths in Ant with with the addition of "if" and "unless" - * conditions. - * - * @author Curt Arnold - */ -public class SystemIncludePath extends ConditionalPath { - public SystemIncludePath(Project project) { - super(project); - } - public SystemIncludePath(Project p, String path) { - super(p, path); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java deleted file mode 100644 index 02d08c8ac8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -/** - * A set of system library names. Timestamp or location of system libraries are - * not considered in dependency analysis. - * - * Libraries can also be added to a link by specifying them in a fileset. - * - * For most Unix-like compilers, syslibset will result in a series of -l and -L - * linker arguments. For Windows compilers, the library names will be used to - * locate the appropriate library files which will be added to the linkers - * input file list as if they had been specified in a fileset. - */ -public class SystemLibrarySet extends LibrarySet { - public SystemLibrarySet() { - super(); - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java deleted file mode 100644 index 2a18fca6d1..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.types; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; - -import org.apache.tools.ant.BuildException; -/** - * Preprocessor macro undefinition. - * - * @author Mark A Russell mark_russell@csg_systems.com - * - */ -public class UndefineArgument { - /** - * This method returns an array of UndefineArgument and DefineArgument's by - * merging a base list with an override list. - * - * Any define in the base list with a name that appears in the override - * list is suppressed. All entries in the override list are preserved - * - */ - public static UndefineArgument[] merge(UndefineArgument[] base, - UndefineArgument[] override) { - if (base.length == 0) { - UndefineArgument[] overrideClone = (UndefineArgument[]) override - .clone(); - return overrideClone; - } - if (override.length == 0) { - UndefineArgument[] baseClone = (UndefineArgument[]) base.clone(); - return baseClone; - } - Vector unduplicated = new Vector(base.length); - for (int i = 0; i < base.length; i++) { - UndefineArgument current = base[i]; - String currentName = current.getName(); - boolean match = false; - if (currentName == null) { - match = true; - } else { - for (int j = 0; j < override.length; j++) { - UndefineArgument over = override[j]; - String overName = over.getName(); - if (overName != null && overName.equals(currentName)) { - match = true; - break; - } - } - } - if (!match) { - unduplicated.addElement(current); - } - } - UndefineArgument[] combined = new UndefineArgument[unduplicated.size() - + override.length]; - unduplicated.copyInto(combined); - int offset = unduplicated.size(); - for (int i = 0; i < override.length; i++) { - combined[offset + i] = override[i]; - } - return combined; - } - private boolean define = false; - private String ifCond; - private String name; - private String unlessCond; - public UndefineArgument() { - } - protected UndefineArgument(boolean isDefine) { - this.define = isDefine; - } - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - /** Returns the name of the define */ - public final String getName() { - return name; - } - /** Returns the value of the define */ - public String getValue() { - return null; - } - /** - * Returns true if the define's if and unless conditions (if any) are - * satisfied. - * - * @exception BuildException - * throws build exception if name is not set - */ - public final boolean isActive(org.apache.tools.ant.Project p) - throws BuildException { - if (name == null) { - throw new BuildException(" is missing name attribute"); - } - return CUtil.isActive(p, ifCond, unlessCond); - } - /** Returns true if this is a define, false if an undefine. */ - public final boolean isDefine() { - return define; - } - /** - * Sets the property name for the 'if' condition. - * - * The define will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * property name - */ - public final void setIf(String propName) { - ifCond = propName; - } - /** Set the name attribute */ - public final void setName(String name) { - this.name = name; - } - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the define will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public final void setUnless(String propName) { - unlessCond = propName; - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java deleted file mode 100644 index 3ed6c9652f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java +++ /dev/null @@ -1,297 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.userdefine; - -import java.io.File; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; -import net.sf.antcontrib.cpptasks.types.ConditionalFileSet; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.Environment; -import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.types.Environment.Variable; - -/** - * - */ -public class CommandLineUserDefine { - - String includePathDelimiter = null; - - String outputDelimiter = null; - - public void command(CCTask cctask, UserDefineDef userdefine) { - boolean isGccCommand = userdefine.getFamily().equalsIgnoreCase("GCC"); - File workdir; - Project project = cctask.getProject(); - if (userdefine.getWorkdir() == null) { - workdir = new File("."); - } else { - workdir = userdefine.getWorkdir(); - } - - // - // generate cmdline= command + args + includepath + endargs + outfile - // - Vector args = new Vector(); - Vector argsWithoutSpace = new Vector(); - Vector endargs = new Vector(); - Vector endargsWithoutSpace = new Vector(); - Vector includePath = new Vector(); - - // - // get Args. - // - CommandLineArgument[] argument = userdefine.getActiveProcessorArgs(); - for (int j = 0; j < argument.length; j++) { - if (argument[j].getLocation() == 0) { - args.addElement(argument[j].getValue()); - } else { - endargs.addElement(argument[j].getValue()); - } - } - - // - // get include path. - // - String[] incPath = userdefine.getActiveIncludePaths(); - for (int j = 0; j < incPath.length; j++) { - includePath.addElement(includePathDelimiter + incPath[j]); - } - - // - // Remove space in args and endargs. - // - for (int i = 0; i < args.size(); i++) { - String str = (String) args.get(i); - StringTokenizer st = new StringTokenizer(str, " \t"); - while (st.hasMoreTokens()) { - argsWithoutSpace.addElement(st.nextToken()); - } - } - for (int i = 0; i < endargs.size(); i++) { - String str = (String) endargs.get(i); - StringTokenizer st = new StringTokenizer(str, " \t"); - while (st.hasMoreTokens()) { - endargsWithoutSpace.addElement(st.nextToken()); - } - } - - int cmdLen = 0; - // - // command + args + endargs + includepath + sourcefile - // - cmdLen = 1 + argsWithoutSpace.size() + endargsWithoutSpace.size() - + includePath.size() + 1; - String[] libSet = userdefine.getLibset(); - if (libSet != null && libSet.length > 0) { - cmdLen = cmdLen + libSet.length; - if (isGccCommand) { - cmdLen += 2; // we need -( and -) to group libs for GCC - } - } - - // - // In gcc the "cr" flag should follow space then add outputfile name, - // otherwise - // it will pop error. - // TBD - if (outputDelimiter != null && userdefine.getOutputFile() != null - && outputDelimiter.trim().length() > 0) { - if (outputDelimiter.trim().equalsIgnoreCase("-cr")) { - cmdLen = cmdLen + 2; - } else { - cmdLen++; - } - } - - // - // for every source file - // if file is header file, just skip it (add later) - // - Vector srcSets = userdefine.getSrcSets(); - - // - // if have source file append source file in command line. - // - Set allSrcFiles = new LinkedHashSet(); - - for (int i = 0; i < srcSets.size(); i++) { - ConditionalFileSet srcSet = (ConditionalFileSet) srcSets - .elementAt(i); - if (srcSet.isActive()) { - // - // Find matching source files - // - DirectoryScanner scanner = srcSet.getDirectoryScanner(project); - // - // Check each source file - see if it needs compilation - // - String[] fileNames = scanner.getIncludedFiles(); - for (int j = 0; j < fileNames.length; j++) { - allSrcFiles.add(scanner.getBasedir() + "/" + fileNames[j]); - if (isGccCommand) { - System.out.println("[" + userdefine.getType() + "] " - + fileNames[j]); - } - } - } - } - - String[] fileNames = (String[]) allSrcFiles - .toArray(new String[allSrcFiles.size()]); - String[] cmd = new String[cmdLen - 1 + fileNames.length]; - int index = 0; - cmd[index++] = userdefine.getCmd(); - - Iterator iter = argsWithoutSpace.iterator(); - while (iter.hasNext()) { - cmd[index++] = project.replaceProperties((String) iter.next()); - } - - iter = endargsWithoutSpace.iterator(); - while (iter.hasNext()) { - cmd[index++] = project.replaceProperties((String) iter.next()); - } - - // - // Add outputFileFlag and output file to cmd - // - if (outputDelimiter != null && userdefine.getOutputFile() != null - && outputDelimiter.length() > 0) { - if (outputDelimiter.trim().equalsIgnoreCase("-cr")) { - cmd[index++] = outputDelimiter; - cmd[index++] = userdefine.getOutputFile(); - } else { - cmd[index++] = outputDelimiter + userdefine.getOutputFile(); - } - } - - iter = includePath.iterator(); - while (iter.hasNext()) { - cmd[index++] = (String) iter.next(); - } - - if (libSet != null && libSet.length > 0) { - if (isGccCommand) { - cmd[index++] = "-("; - } - for (int k = 0; k < libSet.length; k++) { - cmd[index++] = libSet[k]; - } - if (isGccCommand) { - cmd[index++] = "-)"; - } - } - for (int j = 0; j < fileNames.length; j++) { - cmd[index++] = fileNames[j]; - } - -// StringBuffer logLine = new StringBuffer(); -// for(int i = 0; i < cmd.length; i++) { -// logLine.append(cmd[i] + " "); -// } -// project.log(logLine.toString(), Project.MSG_VERBOSE); - - Environment newEnv = new Environment(); - - // - // Prepare for environment variable PATH - // - if (userdefine.getDpath() != null && userdefine.getDpath().trim().length() != 0) { - String pathName = getPathName("PATH"); - String existPath = System.getenv(pathName); - - Variable var = new Variable(); - var.setKey(pathName); - var.setPath(new Path(project, userdefine.getDpath() + ";" + existPath)); - newEnv.addVariable(var); - } - - // - // Prepare for environment variable LIB - // - if (userdefine.getLibpath() != null && userdefine.getLibpath().trim().length() != 0) { - String pathName = getPathName("LIB"); - String existPath = System.getenv(pathName); - Variable var = new Variable(); - var.setKey(pathName); - if (existPath == null) { - var.setPath(new Path(project, userdefine.getLibpath())); - } else { - var.setPath(new Path(project, userdefine.getLibpath() + ";" + existPath)); - } - newEnv.addVariable(var); - } - - // - // Prepare for environment variable INCLUDE - // - if (userdefine.getInclude() != null && userdefine.getInclude().trim().length() != 0) { - String pathName = getPathName("INCLUDE"); - String existPath = System.getenv(pathName); - Variable var = new Variable(); - var.setKey(pathName); - if (existPath == null) { - var.setPath(new Path(project, userdefine.getInclude())); - } else { - var.setPath(new Path(project, userdefine.getInclude() + ";" + existPath)); - } - newEnv.addVariable(var); - } - - int retval = runCommand(cctask, workdir, cmd, newEnv); - - if (retval != 0) { - throw new BuildException(userdefine.getCmd() - + " failed with return code " + retval, cctask - .getLocation()); - } - } - - private String getPathName(String variableName) { - Map allEnv = System.getenv(); - Iterator iter = allEnv.keySet().iterator(); - while (iter.hasNext()) { - String key = (String)iter.next(); - if(key.equalsIgnoreCase(variableName)) { - return key; - } - } - return variableName; - } - - protected int runCommand(CCTask task, File workingDir, String[] cmdline, Environment env) - throws BuildException { - // - // Write command to File - // - return CUtil.runCommand(task, workingDir, cmdline, false, env); - - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java deleted file mode 100644 index 96d274ad9a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - * Copyright 2002-2006 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.userdefine; - -import net.sf.antcontrib.cpptasks.types.CommandLineArgument; - -/** - * Collect Arguments. - * - */ -public class UserDefineArgument extends CommandLineArgument { - - public UserDefineArgument() { - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java deleted file mode 100644 index 47431e84a0..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - * Copyright 2002-2006 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.userdefine; - -import net.sf.antcontrib.cpptasks.CCTask; - -/** - * Adapter for the User-Defined Compiler - */ -public class UserDefineCompiler extends CommandLineUserDefine { - - public UserDefineCompiler (CCTask cctask, UserDefineDef userdefineDef) { - String cmdType = userdefineDef.getType(); - String toolchainFamily = userdefineDef.getFamily(); - - if (userdefineDef.getIncludePathDelimiter() == null) { - includePathDelimiter = UserDefineMapping.getIncludePathDelimiter( - toolchainFamily, cmdType); - } else { - includePathDelimiter = userdefineDef.getIncludePathDelimiter(); - } - - if (userdefineDef.getOutputDelimiter() == null) { - outputDelimiter = UserDefineMapping.getOutputFileFlag( - toolchainFamily, cmdType); - } else { - outputDelimiter = userdefineDef.getOutputDelimiter(); - } - - } -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java deleted file mode 100644 index c19c98636e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java +++ /dev/null @@ -1,333 +0,0 @@ -/* - * - * Copyright 2002-2006 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.userdefine; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.Vector; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; - -import net.sf.antcontrib.cpptasks.ProcessorDef; -import net.sf.antcontrib.cpptasks.types.ConditionalPath; -import net.sf.antcontrib.cpptasks.types.IncludePath; -import net.sf.antcontrib.cpptasks.types.LibrarySet; - -/** - * A userdefinedef definition. userdefine elements may be placed either as - * children of a cc element or the project element. A userdefine element with an - * id attribute may be referenced by userdefine elements with refid or extends - * attributes. - * - */ -public class UserDefineDef extends ProcessorDef { - - public UserDefineDef () { - } - - private String type = "CC"; - - private String family = "MSFT"; - - private String cmd; - - private String includePathDelimiter; - - private String outputDelimiter; - - private File workdir; - - private Vector includePaths = new Vector(); - - private String outputFile; - - private Vector allLibraries = new Vector(); - - private String dpath = null; - - private String libpath = null; - - private String include = null; - - public void addLibset(LibrarySet libset) { - if (isReference()) { - throw noChildrenAllowed(); - } - if (libset == null) { - throw new NullPointerException("libset"); - } - - allLibraries.add(libset); - } - - public void execute() throws org.apache.tools.ant.BuildException { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - - public void addConfiguredArgument(UserDefineArgument arg) { - if (isReference()) { - throw noChildrenAllowed(); - } - addConfiguredProcessorArg(arg); - } - - /** - * Creates an include path. - */ - public IncludePath createIncludePath() { - Project p = getProject(); - if (isReference()) { - throw noChildrenAllowed(); - } - IncludePath path = new IncludePath(p); - includePaths.addElement(path); - return path; - } - - /** - * Add a if specify the file attribute - * - * @param activePath - * Active Path Vector - * @param file - * File with multiple path - * @throws BuildException - * if the specify file not exist - */ - protected void loadFile(Vector activePath, File file) throws BuildException { - FileReader fileReader; - BufferedReader in; - String str; - if (!file.exists()) { - throw new BuildException("The file " + file + " is not existed"); - } - try { - fileReader = new FileReader(file); - in = new BufferedReader(fileReader); - while ((str = in.readLine()) != null) { - if (str.trim().endsWith("")) { - continue; - } - str = getProject().replaceProperties(str); - activePath.addElement(str.trim()); - } - } catch (Exception e) { - throw new BuildException(e.getMessage()); - } - } - - /** - * Returns the specific include path. - * - * @return All active include paths - */ - public String[] getActiveIncludePaths() { - if (isReference()) { - return ((UserDefineDef) getCheckedRef(UserDefineDef.class, - "UserDefineDef")).getActiveIncludePaths(); - } - return getActivePaths(includePaths); - } - - private String[] getActivePaths(Vector paths) { - Project p = getProject(); - Vector activePaths = new Vector(paths.size()); - int length = paths.size(); - for (int i = 0; i < length; i++) { - ConditionalPath path = (ConditionalPath) paths.elementAt(i); - if (path.isActive(p)) { - if (path.getFile() == null) { - String[] pathEntries = path.list(); - for (int j = 0; j < pathEntries.length; j++) { - activePaths.addElement(pathEntries[j]); - } - } else { - loadFile(activePaths, path.getFile()); - } - } - } - String[] pathNames = new String[activePaths.size()]; - activePaths.copyInto(pathNames); - return pathNames; - } - - /** - * Get include path delimiter. - * - * @return Include Path Delimiter - */ - public String getIncludePathDelimiter() { - if (isReference()) { - return ((UserDefineDef) getCheckedRef(UserDefineDef.class, - "UserDefineDef")).getIncludePathDelimiter(); - } - return includePathDelimiter; - } - - /** - * Set include path delimiter. - * - * @param includePathDelimiter - * include path delimiter - */ - public void setIncludePathDelimiter(String includePathDelimiter) { - if (isReference()) { - throw tooManyAttributes(); - } - this.includePathDelimiter = includePathDelimiter; - } - - /** - * Get type. - * - * @return type - */ - public String getType() { - if (isReference()) { - return ((UserDefineDef) getCheckedRef(UserDefineDef.class, - "UserDefineDef")).getType(); - } - return type; - } - - /** - * Set type. - * - * @param type - * Type - */ - public void setType(String type) { - if (isReference()) { - throw tooManyAttributes(); - } - this.type = type; - } - - public String getCmd() { - return cmd; - } - - public void setCmd(String cmd) { - if (isReference()) { - throw tooManyAttributes(); - } - if (cmd == null || cmd.trim().length() == 0) { - throw new BuildException("cmd attribute is empty!"); - } - File cmdProgram = new File(cmd); - if (cmdProgram.isDirectory()) { - throw new BuildException(cmd + " is not valid or executable!"); - } - this.cmd = cmd; - } - - public String getFamily() { - return family; - } - - public void setFamily(String family) { - if (isReference()) { - throw tooManyAttributes(); - } - this.family = family; - } - - public String getOutputFile() { - return outputFile; - } - - public void setOutputFile(String outputFile) { - if (isReference()) { - throw tooManyAttributes(); - } - this.outputFile = outputFile; - } - - public File getWorkdir() { - return workdir; - } - - public void setWorkdir(File workdir) { - if (isReference()) { - throw tooManyAttributes(); - } - this.workdir = workdir; - } - - public String[] getLibset() { - Set libs = new LinkedHashSet(); - Iterator iter = allLibraries.iterator(); - while (iter.hasNext()) { - LibrarySet librarySet = (LibrarySet) iter.next(); - File basedir = librarySet.getDir(getProject()); - String[] libStrArray = librarySet.getLibs(); - for (int i = 0; i < libStrArray.length; i++) { - if (basedir != null) { - File libFile = new File(libStrArray[i]); - if (libFile.isAbsolute()) { - libs.add(libFile.getPath()); - } else { - libs.add(basedir.getPath() + File.separatorChar - + libFile.getPath()); - } - } else { - libs.add(libStrArray[i]); - } - } - } - return (String[]) libs.toArray(new String[libs.size()]); - } - - public String getOutputDelimiter() { - return outputDelimiter; - } - - public void setOutputDelimiter(String outputDelimiter) { - this.outputDelimiter = outputDelimiter; - } - - public String getDpath() { - return dpath; - } - - public void setDpath(String dpath) { - this.dpath = dpath; - } - - public String getLibpath() { - return libpath; - } - - public void setLibpath(String libpath) { - this.libpath = libpath; - } - - public String getInclude() { - return include; - } - - public void setInclude(String include) { - this.include = include; - } - -} diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java deleted file mode 100644 index 491cadd7f5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.userdefine; - -/** - * Relationship between {family, command type} and flags - * - */ -public class UserDefineMapping { - - /** - * Mapping info: include path delimiter <--> family (vendor) + command type - */ - public static final String[][] includePathFlag = { { "MSFT_CC", "/I" }, - { "GCC_CC", "-I" }, { "INTEL_CC", "/I" }, - { "WINDDK_CC", "/I" }, { "MSFT_ASM", "/I" }, - { "GCC_ASM", "-I" }, { "WINDDK_CC", "/I" }, - { "MSFT_PP", "/I" }, { "GCC_PP", "-I" }, - { "WINDDK_PP", "/I" } }; - - /** - * Mapping info: output file flag <--> family (vendor) + command type - */ - public static final String[][] outputFileFlag = { { "MSFT_CC", "/Fo" }, - { "GCC_CC", "-o" }, { "INTEL_CC", "/Fo" }, - { "WINDDK_CC", "/Fo" }, { "MSFT_SLINK", "/OUT:" }, - { "GCC_SLINK", "-cr" }, { "INTEL_SLINK", "/OUT:" }, - { "WINDDK_SLINK", "/OUT:" }, { "MSFT_DLINK", "/OUT:" }, - { "GCC_DLINK", "-o" }, { "INTEL_DLINK", "/OUT:" }, - { "WINDDK_DLINK", "/OUT:" }, { "MSFT_ASM", "/Fo" }, - { "GCC_ASM", "-o" }, { "WINDDK_ASM", "/Fo" }, - { "WINDDK_IPF_ASM", "-o" } }; - - /** - * Get include delimiter with vendow and command type. - * - * @param vendor - * Vendor - * @param commandType - * Command Type - * @return include path delimiter - */ - public static String getIncludePathDelimiter(String vendor, - String commandType) { - String key = vendor + "_" + commandType; - for (int i = 0; i < includePathFlag.length; i++) { - if (includePathFlag[i][0].equalsIgnoreCase(key)) { - return includePathFlag[i][1]; - } - } - return "/I"; - } - - /** - * Get Output Flag with vendor and command type. - * - * @param vendor - * Vendor - * @param commandType - * Command Type - * @return Output File Flag - */ - public static String getOutputFileFlag(String vendor, String commandType) { - String key = vendor + "_" + commandType; - for (int i = 0; i < outputFileFlag.length; i++) { - if (outputFileFlag[i][0].equalsIgnoreCase(key)) { - return outputFileFlag[i][1]; - } - } - return "/Fo"; - } - -} \ No newline at end of file -- cgit v1.2.3