-cl::StringList InputFilenames("", "Load <arg> files, linking them together",
- cl::OneOrMore);
-cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "-");
-cl::Flag Force ("f", "Overwrite output files", cl::NoFlags, false);
-cl::Flag Verbose ("v", "Print information about actions taken");
-cl::Flag DumpAsm ("d", "Print assembly as linked", cl::Hidden, false);
+static cl::opt<bool>
+Force("f", cl::desc("Enable binary output on terminals"));
+
+static cl::opt<bool>
+OutputAssembly("S",
+ cl::desc("Write output as LLVM assembly"), cl::Hidden);
+
+static cl::opt<bool>
+Verbose("v", cl::desc("Print information about actions taken"));
+
+static cl::opt<bool>
+DumpAsm("d", cl::desc("Print assembly as linked"), cl::Hidden);
+
+// LoadFile - Read the specified bitcode file in and return it. This routine
+// searches the link path for the specified file to try to find it...
+//
+static inline std::auto_ptr<Module> LoadFile(const char *argv0,
+ const std::string &FN,
+ LLVMContext& Context) {
+ sys::Path Filename;
+ if (!Filename.set(FN)) {
+ errs() << "Invalid file name: '" << FN << "'\n";
+ return std::auto_ptr<Module>();
+ }