changeset 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 45f929dff6c3
files mx/commands.py
diffstat 1 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mx/commands.py	Fri Apr 05 14:24:02 2013 +0200
+++ b/mx/commands.py	Fri Apr 05 15:34:45 2013 +0200
@@ -320,6 +320,7 @@
                 mx.abort(jvmCfg + ' does not exist')
 
             defaultVM = None
+            jvmCfgLines = []
             with open(jvmCfg) as f:
                 for line in f:
                     if line.startswith('-') and defaultVM is None:
@@ -327,14 +328,19 @@
                         assert len(parts) == 2, parts
                         assert parts[1] == 'KNOWN', parts[1]
                         defaultVM = parts[0][1:]
+                        jvmCfgLines += ['-' + defaultVM + '0 KNOWN\n']
+                    else:
+                        jvmCfgLines += [line]
 
             assert defaultVM is not None, 'Could not find default VM in ' + jvmCfg
             if mx.get_os() != 'windows':
                 chmodRecursive(jdk, 0755)
-            shutil.copytree(join(_vmLibDirInJdk(jdk), defaultVM), join(_vmLibDirInJdk(jdk), defaultVM + '0'))
+            shutil.move(join(_vmLibDirInJdk(jdk), defaultVM), join(_vmLibDirInJdk(jdk), defaultVM + '0'))
+            
 
             with open(jvmCfg, 'w') as fp:
-                print >> fp, '-' + defaultVM + '0 KNOWN'
+                for line in jvmCfgLines:
+                    fp.write(line)
 
             # Install a copy of the disassembler library
             try:
@@ -530,11 +536,10 @@
     if vm is None:
         vm = _vm
 
-    if vm == 'server':
+    if vm == 'server' or vm == 'server0':
         buildSuffix = ''
     elif vm == 'client':
         buildSuffix = '1'
-    elif vm == 'server0':
         return
     else:
         assert vm == 'graal', vm
@@ -549,6 +554,9 @@
                 mx.log('[skipping build from IDE as IDE_BUILD_TARGET environment variable is ""]')
                 continue
 
+        if vm == 'server0':
+            assert build == 'product', 'can not "build" a non-product server0'
+
         jdk = _jdk(build, create=True)
 
         vmDir = join(_vmLibDirInJdk(jdk), vm)
@@ -564,7 +572,9 @@
 
         # Check if a build really needs to be done
         timestampFile = join(vmDir, '.build-timestamp')
-        if opts2.force or not exists(timestampFile):
+        if vm == 'server0':
+            mustBuild = False
+        elif opts2.force or not exists(timestampFile):
             mustBuild = True
         else:
             mustBuild = False