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 = []