Minix.h revision 317030
1//===--- Minix.h - Minix ToolChain Implementations --------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 11#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 12 13#include "Gnu.h" 14#include "clang/Driver/Tool.h" 15#include "clang/Driver/ToolChain.h" 16 17namespace clang { 18namespace driver { 19namespace tools { 20/// minix -- Directly call GNU Binutils assembler and linker 21namespace minix { 22class LLVM_LIBRARY_VISIBILITY Assembler : public GnuTool { 23public: 24 Assembler(const ToolChain &TC) 25 : GnuTool("minix::Assembler", "assembler", TC) {} 26 27 bool hasIntegratedCPP() const override { return false; } 28 29 void ConstructJob(Compilation &C, const JobAction &JA, 30 const InputInfo &Output, const InputInfoList &Inputs, 31 const llvm::opt::ArgList &TCArgs, 32 const char *LinkingOutput) const override; 33}; 34 35class LLVM_LIBRARY_VISIBILITY Linker : public GnuTool { 36public: 37 Linker(const ToolChain &TC) : GnuTool("minix::Linker", "linker", TC) {} 38 39 bool hasIntegratedCPP() const override { return false; } 40 bool isLinkJob() const override { return true; } 41 42 void ConstructJob(Compilation &C, const JobAction &JA, 43 const InputInfo &Output, const InputInfoList &Inputs, 44 const llvm::opt::ArgList &TCArgs, 45 const char *LinkingOutput) const override; 46}; 47} // end namespace minix 48} // end namespace tools 49 50namespace toolchains { 51 52class LLVM_LIBRARY_VISIBILITY Minix : public Generic_ELF { 53public: 54 Minix(const Driver &D, const llvm::Triple &Triple, 55 const llvm::opt::ArgList &Args); 56 57protected: 58 Tool *buildAssembler() const override; 59 Tool *buildLinker() const override; 60}; 61 62} // end namespace toolchains 63} // end namespace driver 64} // end namespace clang 65 66#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINIX_H 67