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