build-and-test: Add required --repos-dir flag

This is necessary so we can add subprojects to our source config. It
assumes that each subproject has a repo directly under the repos-dir.

Since we now have a path to *all* the repos, we can use that to get the
test-suite and LNT repos as well, instead of specifying each of them
manually. This simplifies the interface a bit (we get rid of the
parameters for passing the paths to the test-suite and LNT repo, and
instead add a single parameter for enabling the test-suite).

Change-Id: I818952969aa9335720965af7273fa8273223a64e
diff --git a/scripts/llvm.py b/scripts/llvm.py
index b8362ec..6184bca 100644
--- a/scripts/llvm.py
+++ b/scripts/llvm.py
@@ -173,13 +173,14 @@
     proj = Proj()
 
     dryRun = args.dry
+    llvmRepos = args.repos
     llvmWorktreeRoot = args.sources
 
     stage1BuildDir = args.stage1
     stage2BuildDir = args.stage2
-    testSuiteDir = args.test_suite
+
+    enableTestSuite = args.enableTestSuite
     sandboxDir = args.sandbox
-    lntDir = args.lnt
 
     if dryRun:
         consumer = CommandPrinter()
@@ -214,7 +215,10 @@
             buildConfig2.build()
             testedBuildDir = stage2BuildDir
 
-        if testSuiteDir is not None:
+        if enableTestSuite:
+            testSuiteDir = os.path.join(llvmRepos, "test-suite")
+            lntDir = os.path.join(llvmRepos, "lnt")
+
             setup_test_suite(consumer, sandboxDir, lntDir)
 
             # TODO: Make sure clang is actually built in this config (preferably
@@ -432,6 +436,12 @@
          "used for other purposes as well.")
 buildAndTest.set_defaults(run_command=build_and_test)
 buildAndTest.add_argument(
+    '--repos-dir',
+    dest='repos',
+    required=True,
+    help="Path to the root directory containing the repositories for LLVM and "
+         "the other subprojects.")
+buildAndTest.add_argument(
     '--source-dir',
     dest='sources',
     required=True,
@@ -447,15 +457,15 @@
     dest='stage2',
     help="Path to the build directory for stage 2.")
 buildAndTest.add_argument(
-    "--test-suite",
-    help="Path to the test-suite repo.")
+    "--enable-test-suite",
+    dest='enableTestSuite',
+    action='store_true',
+    default=False,
+    help="Whether or not to run the test-suite with the last compiler built.")
 buildAndTest.add_argument(
     "--sandbox",
     help="Path to the sandbox where the test-suite should be setup.")
 buildAndTest.add_argument(
-    "--lnt",
-    help="Path to the LNT repo.")
-buildAndTest.add_argument(
     '-n', '--dry-run',
     dest='dry',
     action='store_true',