Mercurial > hg > truffle
comparison mx/commands.py @ 4155:394404b2d9bd
Removed strict requirement for GRAAL environment variable. It only needs to be set now if the graal directory is not in the directory hierarchy of GraalVM JDK.
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 21 Dec 2011 11:25:27 +0100 |
parents | 38c782b84ac2 |
children | 843c8d6720da |
comparison
equal
deleted
inserted
replaced
4154:9a4f210abb5e | 4155:394404b2d9bd |
---|---|
105 for check in checks: | 105 for check in checks: |
106 if not sanitycheck.runSanityCheck(check['cmd'], check['success']): | 106 if not sanitycheck.runSanityCheck(check['cmd'], check['success']): |
107 mx.abort("Sanity checks FAILED") | 107 mx.abort("Sanity checks FAILED") |
108 mx.log("Sanity checks PASSED") | 108 mx.log("Sanity checks PASSED") |
109 | 109 |
110 def _jdk7(build='product', create=False): | 110 def _jdk(build='product', create=False): |
111 jdk7 = join(_graal_home, 'jdk1.7.0') | 111 """ |
112 if not exists(jdk7): | 112 Get the JDK into which Graal is installed, creating it first if necessary. |
113 # Assume we are running with a JDK7 | 113 """ |
114 assert mx.java().version.startswith('1.7') | 114 jdk = join(_graal_home, 'jdk' + mx.java().version) |
115 if not exists(jdk): | |
115 srcJdk = mx.java().jdk | 116 srcJdk = mx.java().jdk |
116 mx.log('Creating ' + jdk7 + ' from ' + srcJdk) | 117 mx.log('Creating ' + jdk + ' from ' + srcJdk) |
117 os.mkdir(jdk7) | 118 os.mkdir(jdk) |
118 for d in ['bin', 'db', 'include', 'jre', 'lib', 'man']: | 119 for d in ['bin', 'db', 'include', 'jre', 'lib', 'man']: |
119 src = join(srcJdk, d) | 120 src = join(srcJdk, d) |
120 dst = join(jdk7, d) | 121 dst = join(jdk, d) |
121 if not exists(src): | 122 if not exists(src): |
122 mx.abort('Host JDK 7 directory is missing: ' + src) | 123 mx.abort('Host JDK directory is missing: ' + src) |
123 shutil.copytree(src, dst) | 124 shutil.copytree(src, dst) |
124 | 125 |
126 jvmCfg = join(jdk, 'jre', 'lib', 'amd64', 'jvm.cfg') | |
127 found = False | |
128 if not exists(jvmCfg): | |
129 mx.abort(jvmCfg + ' does not exist') | |
130 | |
131 with open(jvmCfg) as f: | |
132 for line in f: | |
133 if '-graal KNOWN' in line: | |
134 found = True | |
135 break | |
136 if not found: | |
137 mx.log('Appending "-graal KNOWN" to ' + jvmCfg) | |
138 with open(jvmCfg, 'a') as f: | |
139 f.write('-graal KNOWN\n') | |
140 | |
125 if build == 'product': | 141 if build == 'product': |
126 return jdk7 | 142 return jdk |
127 elif build in ['debug', 'fastdebug', 'optimized']: | 143 elif build in ['debug', 'fastdebug', 'optimized']: |
128 res = join(jdk7, build) | 144 res = join(jdk, build) |
129 if not exists(res): | 145 if not exists(res): |
130 if not create: | 146 if not create: |
131 mx.abort('The ' + build + ' VM has not been created - run \'mx clean; mx make ' + build + '\'') | 147 mx.abort('The ' + build + ' VM has not been created - run \'mx clean; mx make ' + build + '\'') |
132 mx.log('Creating ' + res) | 148 mx.log('Creating ' + res) |
133 os.mkdir(res) | 149 os.mkdir(res) |
134 for d in ['bin', 'db', 'include', 'jre', 'lib', 'man']: | 150 for d in ['bin', 'db', 'include', 'jre', 'lib', 'man']: |
135 shutil.copytree(join(jdk7, d), join(res, d)) | 151 shutil.copytree(join(jdk, d), join(res, d)) |
136 return res | 152 return res |
137 else: | 153 else: |
138 mx.abort('Unknown build type: ' + build) | 154 mx.abort('Unknown build type: ' + build) |
139 | 155 |
140 def build(args): | 156 def build(args): |
147 build = args.pop(0) | 163 build = args.pop(0) |
148 | 164 |
149 # Call mx.build to compile the Java sources | 165 # Call mx.build to compile the Java sources |
150 mx.build(args + ['--source', '1.7']) | 166 mx.build(args + ['--source', '1.7']) |
151 | 167 |
152 def fix_jvm_cfg(jdk): | 168 jdk = _jdk(build, True) |
153 jvmCfg = join(jdk, 'jre', 'lib', 'amd64', 'jvm.cfg') | |
154 found = False | |
155 if not exists(jvmCfg): | |
156 mx.abort(jvmCfg + ' does not exist') | |
157 | |
158 with open(jvmCfg) as f: | |
159 for line in f: | |
160 if '-graal KNOWN' in line: | |
161 found = True | |
162 break | |
163 if not found: | |
164 mx.log('Appending "-graal KNOWN" to ' + jvmCfg) | |
165 with open(jvmCfg, 'a') as f: | |
166 f.write('-graal KNOWN\n') | |
167 | |
168 | |
169 jdk7 = _jdk7(build, True) | |
170 if build == 'debug': | 169 if build == 'debug': |
171 build = 'jvmg' | 170 build = 'jvmg' |
172 | 171 |
173 fix_jvm_cfg(jdk7) | 172 graalVmDir = join(jdk, 'jre', 'lib', 'amd64', 'graal') |
174 | |
175 graalVmDir = join(jdk7, 'jre', 'lib', 'amd64', 'graal') | |
176 if not exists(graalVmDir): | 173 if not exists(graalVmDir): |
177 mx.log('Creating Graal directory in JDK7: ' + graalVmDir) | 174 mx.log('Creating Graal directory in JDK7: ' + graalVmDir) |
178 os.makedirs(graalVmDir) | 175 os.makedirs(graalVmDir) |
179 | 176 |
180 def filterXusage(line): | 177 def filterXusage(line): |
181 if not 'Xusage.txt' in line: | 178 if not 'Xusage.txt' in line: |
182 sys.stderr.write(line + os.linesep) | 179 sys.stderr.write(line + os.linesep) |
183 | 180 |
184 os.environ.update(ARCH_DATA_MODEL='64', LANG='C', HOTSPOT_BUILD_JOBS='3', ALT_BOOTDIR=jdk7, INSTALL='y') | 181 os.environ.update(ARCH_DATA_MODEL='64', LANG='C', HOTSPOT_BUILD_JOBS='3', ALT_BOOTDIR=jdk, INSTALL='y') |
185 mx.run([mx.gmake_cmd(), build + 'graal'], cwd=join(_graal_home, 'make'), err=filterXusage) | 182 mx.run([mx.gmake_cmd(), build + 'graal'], cwd=join(_graal_home, 'make'), err=filterXusage) |
186 | 183 |
187 def vm(args, vm='-graal', nonZeroIsFatal=True, out=None, err=None, cwd=None): | 184 def vm(args, vm='-graal', nonZeroIsFatal=True, out=None, err=None, cwd=None): |
188 """run the GraalVM""" | 185 """run the GraalVM""" |
189 | 186 |
190 build = _vmbuild | 187 build = _vmbuild |
191 if mx.java().debug: | 188 if mx.java().debug: |
192 args = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000'] + args | 189 args = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000'] + args |
193 os.environ['GRAAL'] = join(_graal_home, 'graal') | 190 exe = join(_jdk(build), 'bin', mx.exe_suffix('java')) |
194 exe = join(_jdk7(build), 'bin', mx.exe_suffix('java')) | |
195 return mx.run([exe, vm] + args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd) | 191 return mx.run([exe, vm] + args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd) |
196 | 192 |
197 def ideinit(args): | 193 def ideinit(args): |
198 """(re)generate Eclipse project configurations | 194 """(re)generate Eclipse project configurations |
199 | 195 |