Mercurial > hg > truffle
comparison mx/commands.py @ 8647:5f8299106dd9
A server0 "build" needs to create a jdk copy if it does not exist yet
The jdk copy should move the default vm, not just copy it
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 05 Apr 2013 15:34:45 +0200 |
parents | 1b090d7f832d |
children | 51a8368d0231 |
comparison
equal
deleted
inserted
replaced
8646:1b090d7f832d | 8647:5f8299106dd9 |
---|---|
318 jvmCfg = _vmCfgInJdk(jdk) | 318 jvmCfg = _vmCfgInJdk(jdk) |
319 if not exists(jvmCfg): | 319 if not exists(jvmCfg): |
320 mx.abort(jvmCfg + ' does not exist') | 320 mx.abort(jvmCfg + ' does not exist') |
321 | 321 |
322 defaultVM = None | 322 defaultVM = None |
323 jvmCfgLines = [] | |
323 with open(jvmCfg) as f: | 324 with open(jvmCfg) as f: |
324 for line in f: | 325 for line in f: |
325 if line.startswith('-') and defaultVM is None: | 326 if line.startswith('-') and defaultVM is None: |
326 parts = line.split() | 327 parts = line.split() |
327 assert len(parts) == 2, parts | 328 assert len(parts) == 2, parts |
328 assert parts[1] == 'KNOWN', parts[1] | 329 assert parts[1] == 'KNOWN', parts[1] |
329 defaultVM = parts[0][1:] | 330 defaultVM = parts[0][1:] |
331 jvmCfgLines += ['-' + defaultVM + '0 KNOWN\n'] | |
332 else: | |
333 jvmCfgLines += [line] | |
330 | 334 |
331 assert defaultVM is not None, 'Could not find default VM in ' + jvmCfg | 335 assert defaultVM is not None, 'Could not find default VM in ' + jvmCfg |
332 if mx.get_os() != 'windows': | 336 if mx.get_os() != 'windows': |
333 chmodRecursive(jdk, 0755) | 337 chmodRecursive(jdk, 0755) |
334 shutil.copytree(join(_vmLibDirInJdk(jdk), defaultVM), join(_vmLibDirInJdk(jdk), defaultVM + '0')) | 338 shutil.move(join(_vmLibDirInJdk(jdk), defaultVM), join(_vmLibDirInJdk(jdk), defaultVM + '0')) |
339 | |
335 | 340 |
336 with open(jvmCfg, 'w') as fp: | 341 with open(jvmCfg, 'w') as fp: |
337 print >> fp, '-' + defaultVM + '0 KNOWN' | 342 for line in jvmCfgLines: |
343 fp.write(line) | |
338 | 344 |
339 # Install a copy of the disassembler library | 345 # Install a copy of the disassembler library |
340 try: | 346 try: |
341 hsdis([], copyToDir=_vmLibDirInJdk(jdk)) | 347 hsdis([], copyToDir=_vmLibDirInJdk(jdk)) |
342 except SystemExit: | 348 except SystemExit: |
528 builds = ['product'] | 534 builds = ['product'] |
529 | 535 |
530 if vm is None: | 536 if vm is None: |
531 vm = _vm | 537 vm = _vm |
532 | 538 |
533 if vm == 'server': | 539 if vm == 'server' or vm == 'server0': |
534 buildSuffix = '' | 540 buildSuffix = '' |
535 elif vm == 'client': | 541 elif vm == 'client': |
536 buildSuffix = '1' | 542 buildSuffix = '1' |
537 elif vm == 'server0': | |
538 return | 543 return |
539 else: | 544 else: |
540 assert vm == 'graal', vm | 545 assert vm == 'graal', vm |
541 buildSuffix = 'graal' | 546 buildSuffix = 'graal' |
542 | 547 |
547 build = os.environ.get('IDE_BUILD_TARGET', 'product') | 552 build = os.environ.get('IDE_BUILD_TARGET', 'product') |
548 if len(build) == 0: | 553 if len(build) == 0: |
549 mx.log('[skipping build from IDE as IDE_BUILD_TARGET environment variable is ""]') | 554 mx.log('[skipping build from IDE as IDE_BUILD_TARGET environment variable is ""]') |
550 continue | 555 continue |
551 | 556 |
557 if vm == 'server0': | |
558 assert build == 'product', 'can not "build" a non-product server0' | |
559 | |
552 jdk = _jdk(build, create=True) | 560 jdk = _jdk(build, create=True) |
553 | 561 |
554 vmDir = join(_vmLibDirInJdk(jdk), vm) | 562 vmDir = join(_vmLibDirInJdk(jdk), vm) |
555 if not exists(vmDir): | 563 if not exists(vmDir): |
556 if mx.get_os() != 'windows': | 564 if mx.get_os() != 'windows': |
562 if not 'Xusage.txt' in line: | 570 if not 'Xusage.txt' in line: |
563 sys.stderr.write(line + os.linesep) | 571 sys.stderr.write(line + os.linesep) |
564 | 572 |
565 # Check if a build really needs to be done | 573 # Check if a build really needs to be done |
566 timestampFile = join(vmDir, '.build-timestamp') | 574 timestampFile = join(vmDir, '.build-timestamp') |
567 if opts2.force or not exists(timestampFile): | 575 if vm == 'server0': |
576 mustBuild = False | |
577 elif opts2.force or not exists(timestampFile): | |
568 mustBuild = True | 578 mustBuild = True |
569 else: | 579 else: |
570 mustBuild = False | 580 mustBuild = False |
571 timestamp = os.path.getmtime(timestampFile) | 581 timestamp = os.path.getmtime(timestampFile) |
572 sources = [] | 582 sources = [] |