Mercurial > hg > graal-compiler
diff mx/commands.py @ 4559:723df37192d6
Make it possible again to build a real client libjvm, drop the UseGraal flag.
Use the --vm option instead of a special -vm option in the bench command
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 10 Feb 2012 17:04:03 +0100 |
parents | f1d3800b59e1 |
children | 76841bdd5f3e |
line wrap: on
line diff
--- a/mx/commands.py Fri Feb 10 02:22:23 2012 +0100 +++ b/mx/commands.py Fri Feb 10 17:04:03 2012 +0100 @@ -289,21 +289,6 @@ mx.abort('Host JDK directory is missing: ' + src) shutil.copytree(src, dst) - jvmCfg = join(jdk, 'jre', 'lib', 'amd64', 'jvm.cfg') - found = False - if not exists(jvmCfg): - mx.abort(jvmCfg + ' does not exist') - - with open(jvmCfg) as f: - for line in f: - if '-graal KNOWN' in line: - found = True - break - if not found: - mx.log('Appending "-graal KNOWN" to ' + jvmCfg) - with open(jvmCfg, 'a') as f: - f.write('-graal KNOWN\n') - if build == 'product': return jdk elif build in ['debug', 'fastdebug']: @@ -361,28 +346,24 @@ """builds the GraalVM binary and compiles the Graal classes The optional last argument specifies what type of VM to build.""" - - - parser = ArgumentParser(prog='mx build'); - parser.add_argument('--vm', action='store', dest='vm', default='graal', choices=['graal', 'server', 'client'], help='the VM to be built') # Call mx.build to compile the Java sources - opts = mx.build(['--source', '1.7'] + args, parser=parser) + opts2 = mx.build(['--source', '1.7'] + args, parser=ArgumentParser(prog='mx build')) - if not _vmSourcesAvailable or not opts.native: + if not _vmSourcesAvailable or not opts2.native: return - builds = opts.remainder + builds = opts2.remainder if len(builds) == 0: builds = ['product'] - vm = opts.vm + vm = _vm if vm == 'server': buildSuffix = '' elif vm == 'client': buildSuffix = '1' else: - assert vm is 'graal' + assert vm == 'graal', vm buildSuffix = 'graal' for build in builds: @@ -424,6 +405,28 @@ env['ALT_BOOTDIR'] = jdk env.setdefault('INSTALL', 'y') mx.run([mx.gmake_cmd(), build + buildSuffix], cwd=join(_graal_home, 'make'), err=filterXusage) + + jvmCfg = join(jdk, 'jre', 'lib', 'amd64', 'jvm.cfg') + found = False + if not exists(jvmCfg): + mx.abort(jvmCfg + ' does not exist') + + prefix = '-' + vm + vmKnown = prefix + ' KNOWN\n' + lines = [] + with open(jvmCfg) as f: + for line in f: + if vmKnown in line: + found = True + break + if not line.startswith(prefix): + lines.append(line) + if not found: + mx.log('Appending "' + prefix + ' KNOWN" to ' + jvmCfg) + lines.append(vmKnown) + with open(jvmCfg, 'w') as f: + for line in lines: + f.write(line) def vm(args, vm=None, nonZeroIsFatal=True, out=None, err=None, cwd=None, timeout=None, vmbuild=None): """run the GraalVM""" @@ -605,15 +608,7 @@ del args[index] else: mx.abort('-resultfile must be followed by a file name') - vm = 'graal' - if '-vm' in args: - index = args.index('-vm') - if index + 1 < len(args): - vm = args[index + 1] - del args[index] - del args[index] - else: - mx.abort('-vm must be followed by a vm name (graal, server, client..)') + vm = _vm if len(args) is 0: args += ['all'] @@ -715,7 +710,7 @@ 'example': [example, '[-v] example names...'], 'gate' : [gate, ''], 'gv' : [gv, ''], - 'bench' : [bench, '[-vm vm] [-resultfile file] [all(default)|dacapo|specjvm2008|bootstrap]'], + 'bench' : [bench, '[-resultfile file] [all(default)|dacapo|specjvm2008|bootstrap]'], 'unittest' : [unittest, '[filters...]'], 'vm': [vm, '[-options] class [args...]'] } @@ -743,8 +738,9 @@ mx.abort('Requires Java version 1.7 or greater, got version ' + version) if (_vmSourcesAvailable): - global _vm - _vm = opts.vm + if hasattr(opts, 'vm') and opts.vm is not None: + global _vm + _vm = opts.vm if hasattr(opts, 'vmbuild') and opts.vmbuild is not None: global _vmbuild _vmbuild = opts.vmbuild