build_tc.py now installs executables and libraries in install/ dir.
PRESUBMIT=passed
R=raymes,bjanakiraman
DELTA=35 (22 added, 3 deleted, 10 changed)
OCL=45054-p2
RCL=45097-p2
RDATE=2010/11/08 17:45:49
P4 change: 42605664
diff --git a/v14/build_tc.py b/v14/build_tc.py
index ae99e9a..cacd9e3 100755
--- a/v14/build_tc.py
+++ b/v14/build_tc.py
@@ -23,16 +23,17 @@
"""The main function."""
parser = optparse.OptionParser()
parser.add_option("-c", "--chromeos_root", dest="chromeos_root",
+ default="../..",
help="ChromeOS root checkout directory.")
parser.add_option("-t", "--toolchain_root", dest="toolchain_root",
help="Toolchain root directory.")
- parser.add_option("-b", "--board", dest="board",
+ parser.add_option("-b", "--board", dest="board", default="x86-generic",
help="board is the argument to the setup_board command.")
- parser.add_option("-C", "--clean", dest="clean",
- action="store_true", default=False,
+ parser.add_option("-C", "--clean", dest="clean", default=False,
+ action="store_true",
help="Uninstall the toolchain.")
- parser.add_option("-f", "--force", dest="force",
- action="store_true", default=False,
+ parser.add_option("-f", "--force", dest="force", default=False,
+ action="store_true",
help="Do an uninstall/install cycle.")
parser.add_option("-i", "--incremental", dest="incremental",
help="The toolchain component that should be "
@@ -48,9 +49,6 @@
parser.print_help()
sys.exit()
- if options.chromeos_root is None:
- options.chromeos_root = "../.."
-
portage_flags = ""
if options.binary == True:
# FIXME(asharif): This should be using --usepkg but that was not working.
@@ -69,15 +67,27 @@
version_number = utils.GetRoot(rootdir)[1]
version_dir = "/home/${USER}/toolchain_root/" + version_number
env += CreateEnvVarString(" PORT_LOGDIR", version_dir + "/logs")
- env += CreateEnvVarString(" PKGDIR", version_dir + "/install")
+ env += CreateEnvVarString(" PKGDIR", version_dir + "/pkgs")
env += CreateEnvVarString(" PORTAGE_BINHOST", version_dir +
"/cross/" + target)
env += CreateEnvVarString(" PORTAGE_TMPDIR", version_dir + "/objects")
+ retval = 0
if options.force == True:
- BuildTC(options.chromeos_root, options.toolchain_root, env, target,
- True, options.incremental, portage_flags)
- BuildTC(options.chromeos_root, options.toolchain_root, env, target,
- options.clean, options.incremental, portage_flags)
+ retval = BuildTC(options.chromeos_root, options.toolchain_root, env,
+ target, True, options.incremental, portage_flags)
+ utils.AssertTrue(retval == 0, "Build toolchain failed!")
+ retval = BuildTC(options.chromeos_root, options.toolchain_root, env,
+ target, options.clean, options.incremental, portage_flags)
+ utils.AssertTrue(retval == 0, "Build toolchain failed!")
+
+ if options.incremental is None and not options.clean:
+ install_dir = rootdir + "/install"
+ package_dir = (rootdir + "/pkgs/cross/" + target + "/" +
+ "cross-" + target + "/")
+ retval = InstallTC(package_dir, install_dir)
+ utils.AssertTrue(retval == 0, "Installation of the toolchain failed!")
+
+ return retval
def CreateCrossdevPortageFlags(portage_flags):
@@ -96,6 +106,14 @@
return "\\\"" + string + "\\\""
+def InstallTC(package_dir, install_dir):
+ command = ("mkdir -p " + install_dir + ";")
+ command += ("for f in " + package_dir + "*; do tar xvf $f -C " + install_dir +
+ "; done")
+ retval = utils.RunCommand(command)
+ return retval
+
+
def BuildTC(chromeos_root, toolchain_root, env, target, uninstall,
incremental_component, portage_flags):
"""Build the toolchain."""
@@ -140,3 +158,4 @@
if __name__ == "__main__":
Main()
+