//===- AndroidSectLinker.cpp ----------------------------------------------===//
//
//                     The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include <mcld/Target/AndroidSectLinker.h>

#include <llvm/Support/ErrorHandling.h>
#include <mcld/MC/MCLDDirectory.h>
#include <mcld/CodeGen/SectLinkerOption.h>

using namespace mcld;

//==========================
// AndroidSectLinker

AndroidSectLinker::AndroidSectLinker(SectLinkerOption &pOption,
                                     TargetLDBackend &pLDBackend)
  : SectLinker(pOption, pLDBackend) {
}

AndroidSectLinker::~AndroidSectLinker()
{
  // SectLinker will delete m_pLDBackend and m_pLDDriver;
}

void AndroidSectLinker::addTargetOptions(llvm::Module &pM,
                                         SectLinkerOption &pOption)
{
  // -----  Set up General Options  ----- //
  MCLDInfo &info = pOption.info();
  MCLDDirectory search_path("=/system/lib");
  search_path.setSysroot(info.options().sysroot());
  if (exists(search_path.path()) && is_directory(search_path.path()))
    info.options().directories().add(search_path);
  else {
    // FIXME: need a warning function
    llvm::errs() << "WARNING: can not open search directory: `-L" << search_path.name() << "'.\n";
  }
}