summaryrefslogtreecommitdiffstats
path: root/native_client_sdk/src/build_tools/nacl-mono-builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'native_client_sdk/src/build_tools/nacl-mono-builder.py')
-rw-r--r--native_client_sdk/src/build_tools/nacl-mono-builder.py57
1 files changed, 30 insertions, 27 deletions
diff --git a/native_client_sdk/src/build_tools/nacl-mono-builder.py b/native_client_sdk/src/build_tools/nacl-mono-builder.py
index 7087afb..f7774e5c 100644
--- a/native_client_sdk/src/build_tools/nacl-mono-builder.py
+++ b/native_client_sdk/src/build_tools/nacl-mono-builder.py
@@ -10,6 +10,9 @@ import tarfile
import buildbot_common
+SDK_BUILD_DIR = buildbot_common.SCRIPT_DIR
+MONO_BUILD_DIR = os.path.join(SDK_BUILD_DIR, 'mono_build')
+MONO_DIR = os.path.join(MONO_BUILD_DIR, 'nacl-mono')
def main(args):
parser = optparse.OptionParser()
@@ -29,9 +32,8 @@ def main(args):
buildbot_revision = os.environ.get('BUILDBOT_REVISION', '')
buildbot_common.BuildStep('Clean Old SDK')
- buildbot_common.MakeDir('mono_build')
- os.chdir('mono_build')
- buildbot_common.RemoveDir('pepper_*')
+ buildbot_common.MakeDir(MONO_BUILD_DIR)
+ buildbot_common.RemoveDir(os.path.join(MONO_BUILD_DIR, 'pepper_*'))
buildbot_common.BuildStep('Setup New SDK')
sdk_dir = None
@@ -41,13 +43,14 @@ def main(args):
sdk_revision = buildbot_revision.split(':')[0]
url = 'gs://nativeclient-mirror/nacl/nacl_sdk/'\
'trunk.%s/naclsdk_linux.bz2' % sdk_revision
- buildbot_common.Run([buildbot_common.GetGsutil(), 'cp', url, '.'])
+ buildbot_common.Run([buildbot_common.GetGsutil(), 'cp', url, '.'],
+ cwd=MONO_BUILD_DIR)
tar_file = None
try:
- tar_file = tarfile.open('naclsdk_linux.bz2')
+ tar_file = tarfile.open(os.path.join(MONO_BUILD_DIR, 'naclsdk_linux.bz2'))
pepper_dir = os.path.commonprefix(tar_file.getnames())
- tar_file.extractall()
- sdk_dir = os.path.join(os.getcwd(), pepper_dir)
+ tar_file.extractall(path=MONO_BUILD_DIR)
+ sdk_dir = os.path.join(MONO_BUILD_DIR, pepper_dir)
finally:
if tar_file:
tar_file.close()
@@ -61,18 +64,16 @@ def main(args):
# TODO(elijahtaylor): Get git URL from master/trigger to make this
# more flexible for building from upstream and release branches.
git_url = 'git://github.com/elijahtaylor/mono.git'
- git_dir = 'nacl-mono'
git_rev = None
if buildbot_revision:
git_rev = buildbot_revision.split(':')[1]
- if not os.path.exists(git_dir):
- buildbot_common.Run(['git', 'clone', git_url, git_dir])
- os.chdir(git_dir)
+ if not os.path.exists(MONO_DIR):
+ buildbot_common.MakeDir(MONO_DIR)
+ buildbot_common.Run(['git', 'clone', git_url, MONO_DIR])
else:
- os.chdir(git_dir)
- buildbot_common.Run(['git', 'fetch'])
+ buildbot_common.Run(['git', 'fetch'], cwd=MONO_DIR)
if git_rev:
- buildbot_common.Run(['git', 'checkout', git_rev])
+ buildbot_common.Run(['git', 'checkout', git_rev], cwd=MONO_DIR)
arch_to_bitsize = {'x86-32': '32',
'x86-64': '64'}
@@ -84,30 +85,32 @@ def main(args):
buildbot_common.BuildStep('Configure Mono')
os.environ['NACL_SDK_ROOT'] = sdk_dir
os.environ['TARGET_BITSIZE'] = arch_to_bitsize[options.arch]
- buildbot_common.Run(['./autogen.sh'])
- buildbot_common.Run(['make', 'distclean'])
+ buildbot_common.Run(['./autogen.sh'], cwd=MONO_DIR)
+ buildbot_common.Run(['make', 'distclean'], cwd=MONO_DIR)
- buildbot_common.BuildStep('Build/Install Mono')
- # TODO(elijahtaylor): This script only exists in my fork.
- # This script should live in the SDK's build_tools/
- os.chdir('nacl')
+ buildbot_common.BuildStep('Build and Install Mono')
buildbot_common.RemoveDir(arch_to_install_folder[options.arch])
- nacl_interp_script = os.path.join(os.getcwd(), 'nacl_interp_loader_sdk.sh')
+ nacl_interp_script = os.path.join(SDK_BUILD_DIR, 'nacl_interp_loader_mono.sh')
os.environ['NACL_INTERP_LOADER'] = nacl_interp_script
- buildbot_common.Run(['./nacl-runtime-mono.sh'])
+ buildbot_common.Run(['./nacl-mono-runtime.sh',
+ MONO_DIR, # Mono directory with 'configure'
+ arch_to_output_folder[options.arch], # Build dir
+ arch_to_install_folder[options.arch]],
+ cwd=SDK_BUILD_DIR)
buildbot_common.BuildStep('Test Mono')
- os.chdir(arch_to_output_folder[options.arch])
- buildbot_common.Run(['make', 'check', '-j8'])
- os.chdir('..')
+ buildbot_common.Run(['make', 'check', '-j8'],
+ cwd=os.path.join(SDK_BUILD_DIR, arch_to_output_folder[options.arch]))
buildbot_common.BuildStep('Archive Build')
tar_file = None
- tar_path = arch_to_install_folder[options.arch] + '.bz2'
+ tar_path = os.path.join(SDK_BUILD_DIR,
+ arch_to_install_folder[options.arch] + '.bz2')
buildbot_common.RemoveFile(tar_path)
try:
tar_file = tarfile.open(tar_path, mode='w:bz2')
- tar_file.add(arch_to_install_folder[options.arch])
+ tar_file.add(os.path.join(SDK_BUILD_DIR,
+ arch_to_install_folder[options.arch]))
finally:
if tar_file:
tar_file.close()