Minix.h revision 341825
10SN/A//===--- Minix.h - Minix ToolChain Implementations --------------*- C++ -*-===// 212857Spsandoz// 30SN/A// The LLVM Compiler Infrastructure 40SN/A// 50SN/A// This file is distributed under the University of Illinois Open Source 60SN/A// License. See LICENSE.TXT for details. 72362SN/A// 80SN/A//===----------------------------------------------------------------------===// 92362SN/A 100SN/A#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 110SN/A#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 120SN/A 130SN/A#include "Gnu.h" 140SN/A#include "clang/Driver/Tool.h" 150SN/A#include "clang/Driver/ToolChain.h" 160SN/A 170SN/Anamespace clang { 180SN/Anamespace driver { 190SN/Anamespace tools { 200SN/A/// minix -- Directly call GNU Binutils assembler and linker 212362SN/Anamespace minix { 222362SN/Aclass LLVM_LIBRARY_VISIBILITY Assembler : public GnuTool { 232362SN/Apublic: 240SN/A Assembler(const ToolChain &TC) 250SN/A : GnuTool("minix::Assembler", "assembler", TC) {} 260SN/A 270SN/A bool hasIntegratedCPP() const override { return false; } 280SN/A 290SN/A void ConstructJob(Compilation &C, const JobAction &JA, 300SN/A const InputInfo &Output, const InputInfoList &Inputs, 310SN/A const llvm::opt::ArgList &TCArgs, 320SN/A const char *LinkingOutput) const override; 330SN/A}; 3412857Spsandoz 3512857Spsandozclass LLVM_LIBRARY_VISIBILITY Linker : public GnuTool { 360SN/Apublic: 3712857Spsandoz Linker(const ToolChain &TC) : GnuTool("minix::Linker", "linker", TC) {} 38644SN/A 39644SN/A bool hasIntegratedCPP() const override { return false; } 400SN/A bool isLinkJob() const override { return true; } 4112857Spsandoz 420SN/A void ConstructJob(Compilation &C, const JobAction &JA, 430SN/A const InputInfo &Output, const InputInfoList &Inputs, 440SN/A const llvm::opt::ArgList &TCArgs, 450SN/A const char *LinkingOutput) const override; 460SN/A}; 470SN/A} // end namespace minix 4812857Spsandoz} // end namespace tools 4912857Spsandoz 500SN/Anamespace toolchains { 5112857Spsandoz 520SN/Aclass LLVM_LIBRARY_VISIBILITY Minix : public Generic_ELF { 530SN/Apublic: 540SN/A Minix(const Driver &D, const llvm::Triple &Triple, 550SN/A const llvm::opt::ArgList &Args); 5612857Spsandoz 5712857Spsandozprotected: 5812857Spsandoz Tool *buildAssembler() const override; 5912857Spsandoz Tool *buildLinker() const override; 6012857Spsandoz}; 6112857Spsandoz 6212857Spsandoz} // end namespace toolchains 6312857Spsandoz} // end namespace driver 6412857Spsandoz} // end namespace clang 6512857Spsandoz 6612857Spsandoz#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 6712857Spsandoz