1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- OutputCmd.cpp -----------------------------------------------------===// 2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// The MCLinker Project 4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source 6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details. 7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 9f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/OutputCmd.h> 10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Support/raw_ostream.h> 11f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/LinkerScript.h> 12f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Module.h> 13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld; 15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// OutputCmd 18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputCmd::OutputCmd(const std::string& pOutputFile) 20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines : ScriptCommand(ScriptCommand::OUTPUT), 21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_OutputFile(pOutputFile) 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputCmd::~OutputCmd() 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 27f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid OutputCmd::dump() const 30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mcld::outs() << "OUTPUT ( " << m_OutputFile << " )\n"; 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid OutputCmd::activate(Module& pModule) 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines pModule.getScript().setOutputFile(m_OutputFile); 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines // TODO: set the output name if there is no `-o filename' on the cmdline. 38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines // This option is to define a default name for the output file other than the 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines // usual default of a.out. 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 42