Revision: 5757
          http://jnode.svn.sourceforge.net/jnode/?rev=5757&view=rev
Author:   crawley
Date:     2010-10-02 09:48:09 +0000 (Sat, 02 Oct 2010)

Log Message:
-----------
Move the lists of classes/packages that need to be optimized by the boot 
image builder to config files. 

Modified Paths:
--------------
    trunk/all/build-x86.xml
    trunk/all/build.xml
    trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java
    trunk/builder/src/builder/org/jnode/build/x86/BootImageBuilder.java

Added Paths:
-----------
    trunk/all/conf/core-classes.txt
    trunk/all/conf/x86-classes.txt

Modified: trunk/all/build-x86.xml
===================================================================
--- trunk/all/build-x86.xml     2010-07-11 14:27:38 UTC (rev 5756)
+++ trunk/all/build-x86.xml     2010-10-02 09:48:09 UTC (rev 5757)
@@ -182,8 +182,10 @@
                        listfile="${build.bootimage.dir}/bootimage.lst" 
                        debugfile="${build.bootimage.dir}/bootimage.debug" 
                        kernelfile="${build.native.dir}/output/jnode.o" 
-                       pluginList="${system-plugin-list}" 
+                       pluginList="${system-plugin-list}"
                        pluginDir="${plugins.dir}" 
+                       coreClassListFile="${jnode-core-class-list}"
+                       archClassListFile="${jnode-x86-class-list}"
                        targetArch="x86" 
                        memMgrPluginId="${jnode.memmgr.plugin.id}" 
                        cpu="${cpu}" 

Modified: trunk/all/build.xml
===================================================================
--- trunk/all/build.xml 2010-07-11 14:27:38 UTC (rev 5756)
+++ trunk/all/build.xml 2010-10-02 09:48:09 UTC (rev 5757)
@@ -102,6 +102,11 @@
     <property name="jnode-x86.iso" value="${cdroms.dir}/jnode-x86.iso"/>
     <property name="jnode-x86-lite.iso" 
value="${cdroms.dir}/jnode-x86-lite.iso"/>
     <property name="jnode-x86_64-lite.iso" 
value="${cdroms.dir}/jnode-x86_64-lite.iso"/>
+       
+       <!-- list of classes and packages that should to be compiled to native 
code 
+            in the boot image.  -->
+       <property name="jnode-core-class-list" 
value="${root.dir}/all/conf/core-classes.txt"/>
+       <property name="jnode-x86-class-list" 
value="${root.dir}/all/conf/x86-classes.txt"/>
 
     <path id="cp">
         <pathelement location="${classlib.jar}"/>

Added: trunk/all/conf/core-classes.txt
===================================================================
--- trunk/all/conf/core-classes.txt                             (rev 0)
+++ trunk/all/conf/core-classes.txt     2010-10-02 09:48:09 UTC (rev 5757)
@@ -0,0 +1,191 @@
+# The classes and packages listed in this file will be compiled to optimized 
native code by
+# the boot image builder.  Entries can be a package name, a fully qualified 
class
+# name or a fully qualified classname with a trailing wildcard in the 
classname part.
+
+java.io.Data*
+java.io.String*
+java.io.ByteArray*
+java.io.CharArray*
+java.io.Print*
+java.io.Reader
+java.io.Input*
+java.io.Buffered*
+java.io.Writer
+java.io.Output*
+java.io.Filter*
+java.io.IOException
+java.io.ObjectStreamField
+java.io.ObjectStreamClass
+
+java.lang
+java.lang.ref
+//java.lang.reflect   //<- produces inconsistent bootimage
+        
+java.net.URL
+
+java.nio.Buffer
+java.nio.ByteBuffer*
+java.nio.DirectByteBuffer*
+java.nio.ByteOrder
+java.nio.Char*
+java.nio.charset.spi
+java.nio.charset
+
+java.security.ProtectionDomain
+java.security.AccessController
+java.security.AccessControlContext
+java.security.AccessControlException
+java.security.Permission
+java.security.PrivilegedAction
+java.security.PrivilegedActionException
+java.security.PrivilegedExceptionAction
+java.security.PermissionCollection
+java.security.CodeSource
+java.security.Policy
+java.security.AllPermission
+java.security.Permissions
+java.security.Security
+java.security.SecurityPermission
+java.security.BasicPermission
+        
+java.util.Collection*
+java.util.Map*
+java.util.List*
+java.util.Set*
+java.util.Iterator*
+java.util.Array*
+java.util.Abstract*
+java.util.Hash*
+java.util.TreeMap*
+java.util.TreeSet*
+java.util.Linked*
+java.util.Vector*
+java.util.Locale*
+java.util.WeakHashMap*
+java.util.Properties*
+java.util.Dictionary*
+java.util.StringTokenizer*
+java.util.Property*
+java.util.Enum*
+
+java.util.jar
+java.util.zip
+
+gnu.classpath
+
+org.jnode.assembler
+org.jnode.boot
+org.jnode.bootlog
+org.jnode.naming
+org.jnode.permission
+org.jnode.plugin
+org.jnode.plugin.manager
+org.jnode.plugin.model
+org.jnode.security
+org.jnode.system.resource
+org.jnode.system.event
+org.jnode.util
+org.jnode.vm
+org.jnode.vm.bytecode
+org.jnode.vm.classmgr
+org.jnode.vm.compiler
+org.jnode.vm.facade
+org.jnode.vm.isolate
+org.jnode.vm.objects
+org.jnode.vm.scheduler
+        
+org.jnode.vm.memmgr
+org.jnode.vm.memmgr.def
+
+//org.jnode.vm.memmgr.mmtk
+//org.jnode.vm.memmgr.mmtk.genrc
+//org.jnode.vm.memmgr.mmtk.nogc
+//org.jnode.vm.memmgr.mmtk.ms
+
+//todo review for boot image size reduction
+//sun.misc
+//sun.reflect  <-- // this kills jnode while booting, maybe Reflection 
static{...}
+//sun.reflect.annotation
+//sun.reflect.generics
+//sun.reflect.generics.factory
+//sun.reflect.generics.parser
+//sun.reflect.generics.reflectiveObjects
+//sun.reflect.generics.repository
+//sun.reflect.generics.scope
+//sun.reflect.generics.tree
+//sun.reflect.generics.visitor
+//sun.reflect.misc
+sun.misc.VM
+sun.nio
+sun.nio.cs.US_ASCII
+sun.nio.cs.ISO_8859_1*
+sun.nio.cs.Surrogate*
+sun.nio.cs.StreamEncoder
+sun.nio.cs.SingleByteDecoder
+sun.nio.cs.SingleByteEncoder
+sun.nio.cs.FastCharsetProvider
+sun.nio.cs.StandardCharsets
+sun.nio.cs.HistoricallyNamedCharset
+sun.nio.cs.StreamDecoder
+sun.nio.cs.ThreadLocalCoders
+sun.nio.cs.Unicode*
+sun.nio.cs.UTF*
+
+// org.mmtk.plan
+// org.mmtk.policy
+// org.mmtk.utility
+// org.mmtk.utility.alloc
+// org.mmtk.utility.deque
+// org.mmtk.utility.gcspy
+// org.mmtk.utility.gcspy.drivers
+// org.mmtk.utility.heap
+// org.mmtk.utility.options
+// org.mmtk.utility.scan
+// org.mmtk.utility.statistics
+// org.mmtk.vm
+// org.mmtk.vm.gcspy
+// 
+// java.awt
+// java.awt.event
+// java.awt.peer
+// java.awt.font
+// java.awt.geom
+// 
+// gnu.javax.swing.text.html.parser
+// gnu.javax.swing.text.html.parser.models
+// gnu.javax.swing.text.html.parser.support
+// gnu.javax.swing.text.html.parser.support.low
+// 
+// javax.swing
+// javax.swing.border
+// javax.swing.event
+// javax.swing.plaf
+// javax.swing.plaf.basic
+// javax.swing.plaf.metal
+// javax.swing.text
+// javax.swing.text.html
+// javax.swing.text.html.parser
+// javax.swing.text.rtf
+// javax.swing.table
+// javax.swing.tree
+// javax.swing.colorchooser
+// javax.swing.filechooser
+// javax.swing.undo
+// 
+// org.jnode.awt
+// org.jnode.awt.swingpeers
+// 
+// gnu.java.locale
+// 
+// javax.net
+// javax.net.ssl
+// 
+// javax.security
+// javax.security.auth
+// javax.security.auth.callback
+// javax.security.auth.login
+// javax.security.auth.spi
+// javax.security.cert
+// javax.security.sasl
+// 
+// org.ietf.jgss

Added: trunk/all/conf/x86-classes.txt
===================================================================
--- trunk/all/conf/x86-classes.txt                              (rev 0)
+++ trunk/all/conf/x86-classes.txt      2010-10-02 09:48:09 UTC (rev 5757)
@@ -0,0 +1,10 @@
+# The classes and packages listed in this file will be compiled to optimized 
native code by
+# the boot image builder.  Entries can be a package name, a fully qualified 
class
+# name or a fully qualified classname with a trailing wildcard in the 
classname part.
+#
+# This file supplements core-classes.txt with classes / packages that are 
specific
+# to the x86 architecture
+
+org.jnode.assembler.x86
+org.jnode.system.x86
+org.jnode.vm.x86

Modified: 
trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java
===================================================================
--- trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java     
2010-07-11 14:27:38 UTC (rev 5756)
+++ trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java     
2010-10-02 09:48:09 UTC (rev 5757)
@@ -20,8 +20,10 @@
  
 package org.jnode.build;
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
@@ -36,6 +38,7 @@
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
@@ -83,7 +86,6 @@
 import org.jnode.vm.classmgr.VmType;
 import org.jnode.vm.compiler.NativeCodeCompiler;
 import org.jnode.vm.facade.Vm;
-import org.jnode.vm.facade.VmArchitecture;
 import org.jnode.vm.facade.VmUtils;
 import org.jnode.vm.memmgr.HeapHelper;
 import org.jnode.vm.memmgr.VmHeapManager;
@@ -119,7 +121,7 @@
     private static final String zero16 = zero8 + zero8;
 
     /**
-     * Set of jbects that should not yet be emitted.
+     * Set of objects that should not yet be emitted.
      */
     private final Set<Object> blockedObjects = new HashSet<Object>();
 
@@ -147,6 +149,8 @@
 
     private File listFile;
 
+    private File coreClassListFile;
+
     private int totalHighMethods;
 
     private int totalHighMethodSize;
@@ -1372,204 +1376,63 @@
     public void setListFile(File listFile) {
         this.listFile = listFile;
     }
+    
+    /**
+     * Sets the core class list file.
+     *
+     * @param coreClassListFile The coreClassListFile to set
+     */
+    public void setCoreClassListFile(File coreClassListFile) {
+        this.coreClassListFile = coreClassListFile;
+    }
 
     protected void setupCompileHighOptLevelPackages() {
-        addCompileHighOptLevel("java.io.Data*");
-        addCompileHighOptLevel("java.io.String*");
-        addCompileHighOptLevel("java.io.ByteArray*");
-        addCompileHighOptLevel("java.io.CharArray*");
-        addCompileHighOptLevel("java.io.Print*");
-        addCompileHighOptLevel("java.io.Reader");
-        addCompileHighOptLevel("java.io.Input*");
-        addCompileHighOptLevel("java.io.Buffered*");
-        addCompileHighOptLevel("java.io.Writer");
-        addCompileHighOptLevel("java.io.Output*");
-        addCompileHighOptLevel("java.io.Filter*");
-        addCompileHighOptLevel("java.io.IOException");
-        addCompileHighOptLevel("java.io.ObjectStreamField");
-        addCompileHighOptLevel("java.io.ObjectStreamClass");
-
-        addCompileHighOptLevel("java.lang");
-        addCompileHighOptLevel("java.lang.ref");
-//        addCompileHighOptLevel("java.lang.reflect");   //<- produces 
inconsistent bootimage
-        
-        addCompileHighOptLevel("java.net.URL");
-
-        addCompileHighOptLevel("java.nio.Buffer");
-        addCompileHighOptLevel("java.nio.ByteBuffer*");
-        addCompileHighOptLevel("java.nio.DirectByteBuffer*");
-        addCompileHighOptLevel("java.nio.ByteOrder");
-        addCompileHighOptLevel("java.nio.Char*");
-        addCompileHighOptLevel("java.nio.charset.spi");
-        addCompileHighOptLevel("java.nio.charset");
-
-        addCompileHighOptLevel("java.security.ProtectionDomain");
-        addCompileHighOptLevel("java.security.AccessController");
-        addCompileHighOptLevel("java.security.AccessControlContext");
-        addCompileHighOptLevel("java.security.AccessControlException");
-        addCompileHighOptLevel("java.security.Permission");
-        addCompileHighOptLevel("java.security.PrivilegedAction");
-        addCompileHighOptLevel("java.security.PrivilegedActionException");
-        addCompileHighOptLevel("java.security.PrivilegedExceptionAction");
-        addCompileHighOptLevel("java.security.PermissionCollection");
-        addCompileHighOptLevel("java.security.CodeSource");
-        addCompileHighOptLevel("java.security.Policy");
-        addCompileHighOptLevel("java.security.AllPermission");
-        addCompileHighOptLevel("java.security.Permissions");
-        addCompileHighOptLevel("java.security.Security");
-        addCompileHighOptLevel("java.security.SecurityPermission");
-        addCompileHighOptLevel("java.security.BasicPermission");
-        
-        addCompileHighOptLevel("java.util.Collection*");
-        addCompileHighOptLevel("java.util.Map*");
-        addCompileHighOptLevel("java.util.List*");
-        addCompileHighOptLevel("java.util.Set*");
-        addCompileHighOptLevel("java.util.Iterator*");
-        addCompileHighOptLevel("java.util.Array*");
-        addCompileHighOptLevel("java.util.Abstract*");
-        addCompileHighOptLevel("java.util.Hash*");
-        addCompileHighOptLevel("java.util.TreeMap*");
-        addCompileHighOptLevel("java.util.TreeSet*");
-        addCompileHighOptLevel("java.util.Linked*");
-        addCompileHighOptLevel("java.util.Vector*");
-        addCompileHighOptLevel("java.util.Locale*");
-        addCompileHighOptLevel("java.util.WeakHashMap*");
-        addCompileHighOptLevel("java.util.Properties*");
-        addCompileHighOptLevel("java.util.Dictionary*");
-        addCompileHighOptLevel("java.util.StringTokenizer*");
-        addCompileHighOptLevel("java.util.Property*");
-        addCompileHighOptLevel("java.util.Enum*");
-
-        addCompileHighOptLevel("java.util.jar");
-        addCompileHighOptLevel("java.util.zip");
-
-        addCompileHighOptLevel("gnu.classpath");
-
-        addCompileHighOptLevel("org.jnode.assembler");
-        addCompileHighOptLevel("org.jnode.boot");
-        addCompileHighOptLevel("org.jnode.bootlog");
-        addCompileHighOptLevel("org.jnode.naming");
-        addCompileHighOptLevel("org.jnode.permission");
-        addCompileHighOptLevel("org.jnode.plugin");
-        addCompileHighOptLevel("org.jnode.plugin.manager");
-        addCompileHighOptLevel("org.jnode.plugin.model");
-        addCompileHighOptLevel("org.jnode.security");
-        addCompileHighOptLevel("org.jnode.system.resource");
-        addCompileHighOptLevel("org.jnode.system.event");
-        addCompileHighOptLevel("org.jnode.util");
-        addCompileHighOptLevel("org.jnode.vm");
-        addCompileHighOptLevel("org.jnode.vm.bytecode");
-        addCompileHighOptLevel("org.jnode.vm.classmgr");
-        addCompileHighOptLevel("org.jnode.vm.compiler");
-        addCompileHighOptLevel("org.jnode.vm.facade");
-        addCompileHighOptLevel("org.jnode.vm.isolate");
-        addCompileHighOptLevel("org.jnode.vm.objects");
-        addCompileHighOptLevel("org.jnode.vm.scheduler");
+       addCompileHighOptLevel(loadClassList(coreClassListFile));
         for (NativeCodeCompiler compiler : getArchitecture().getCompilers()) {
             for (String packageName : compiler.getCompilerPackages()) {
                 addCompileHighOptLevel(packageName);
             }
         }
-
-        addCompileHighOptLevel("org.jnode.vm.memmgr");
-        addCompileHighOptLevel("org.jnode.vm.memmgr.def");
-//        addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk");
-//        addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.genrc");
-//        addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.nogc");
-//        addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.ms");
-
-        //todo review for boot image size reduction
-//        addCompileHighOptLevel("sun.misc");
-//        addCompileHighOptLevel("sun.reflect");  <-- // this kills jnode 
while booting, maybe Reflection static{...}
-//        addCompileHighOptLevel("sun.reflect.annotation");
-//        addCompileHighOptLevel("sun.reflect.generics");
-//        addCompileHighOptLevel("sun.reflect.generics.factory");
-//        addCompileHighOptLevel("sun.reflect.generics.parser");
-//        addCompileHighOptLevel("sun.reflect.generics.reflectiveObjects");
-//        addCompileHighOptLevel("sun.reflect.generics.repository");
-//        addCompileHighOptLevel("sun.reflect.generics.scope");
-//        addCompileHighOptLevel("sun.reflect.generics.tree");
-//        addCompileHighOptLevel("sun.reflect.generics.visitor");
-//        addCompileHighOptLevel("sun.reflect.misc");
-        addCompileHighOptLevel("sun.misc.VM");
-        addCompileHighOptLevel("sun.nio");
-        addCompileHighOptLevel("sun.nio.cs.US_ASCII");
-        addCompileHighOptLevel("sun.nio.cs.ISO_8859_1*");
-        addCompileHighOptLevel("sun.nio.cs.Surrogate*");
-        addCompileHighOptLevel("sun.nio.cs.StreamEncoder");
-        addCompileHighOptLevel("sun.nio.cs.SingleByteDecoder");
-        addCompileHighOptLevel("sun.nio.cs.SingleByteEncoder");
-        addCompileHighOptLevel("sun.nio.cs.FastCharsetProvider");
-        addCompileHighOptLevel("sun.nio.cs.StandardCharsets");
-        addCompileHighOptLevel("sun.nio.cs.HistoricallyNamedCharset");
-        addCompileHighOptLevel("sun.nio.cs.StreamDecoder");
-        addCompileHighOptLevel("sun.nio.cs.ThreadLocalCoders");
-        addCompileHighOptLevel("sun.nio.cs.Unicode*");
-        addCompileHighOptLevel("sun.nio.cs.UTF*");
-
-        if (false) {
-            addCompileHighOptLevel("org.mmtk.plan");
-            addCompileHighOptLevel("org.mmtk.policy");
-            addCompileHighOptLevel("org.mmtk.utility");
-            addCompileHighOptLevel("org.mmtk.utility.alloc");
-            addCompileHighOptLevel("org.mmtk.utility.deque");
-            addCompileHighOptLevel("org.mmtk.utility.gcspy");
-            addCompileHighOptLevel("org.mmtk.utility.gcspy.drivers");
-            addCompileHighOptLevel("org.mmtk.utility.heap");
-            addCompileHighOptLevel("org.mmtk.utility.options");
-            addCompileHighOptLevel("org.mmtk.utility.scan");
-            addCompileHighOptLevel("org.mmtk.utility.statistics");
-            addCompileHighOptLevel("org.mmtk.vm");
-            addCompileHighOptLevel("org.mmtk.vm.gcspy");
-
-            addCompileHighOptLevel("java.awt");
-            addCompileHighOptLevel("java.awt.event");
-            addCompileHighOptLevel("java.awt.peer");
-            addCompileHighOptLevel("java.awt.font");
-            addCompileHighOptLevel("java.awt.geom");
-
-            addCompileHighOptLevel("gnu.javax.swing.text.html.parser");
-            addCompileHighOptLevel("gnu.javax.swing.text.html.parser.models");
-            addCompileHighOptLevel("gnu.javax.swing.text.html.parser.support");
-            
addCompileHighOptLevel("gnu.javax.swing.text.html.parser.support.low");
-
-            addCompileHighOptLevel("javax.swing");
-            addCompileHighOptLevel("javax.swing.border");
-            addCompileHighOptLevel("javax.swing.event");
-            addCompileHighOptLevel("javax.swing.plaf");
-            addCompileHighOptLevel("javax.swing.plaf.basic");
-            addCompileHighOptLevel("javax.swing.plaf.metal");
-            addCompileHighOptLevel("javax.swing.text");
-            addCompileHighOptLevel("javax.swing.text.html");
-            addCompileHighOptLevel("javax.swing.text.html.parser");
-            addCompileHighOptLevel("javax.swing.text.rtf");
-            addCompileHighOptLevel("javax.swing.table");
-            addCompileHighOptLevel("javax.swing.tree");
-            addCompileHighOptLevel("javax.swing.colorchooser");
-            addCompileHighOptLevel("javax.swing.filechooser");
-            addCompileHighOptLevel("javax.swing.undo");
-
-            addCompileHighOptLevel("org.jnode.awt");
-            addCompileHighOptLevel("org.jnode.awt.swingpeers");
-
-            addCompileHighOptLevel("gnu.java.locale");
-
-            addCompileHighOptLevel("javax.net");
-            addCompileHighOptLevel("javax.net.ssl");
-
-            addCompileHighOptLevel("javax.security");
-            addCompileHighOptLevel("javax.security.auth");
-            addCompileHighOptLevel("javax.security.auth.callback");
-            addCompileHighOptLevel("javax.security.auth.login");
-            addCompileHighOptLevel("javax.security.auth.spi");
-            addCompileHighOptLevel("javax.security.cert");
-            addCompileHighOptLevel("javax.security.sasl");
-
-            addCompileHighOptLevel("org.ietf.jgss");
-
-        }
     }
+    
+    protected void addCompileHighOptLevel(List<String> classNames) {
+       for (String className : classNames) {
+               addCompileHighOptLevel(className);
+       }
+    }
 
+       protected List<String> loadClassList(File file) {
+               ArrayList<String> classNames = new ArrayList<String>();
+               FileReader fr;
+       try {
+               fr = new FileReader(file);
+       } catch (IOException ex) {
+               throw new BuildException("Cannot open '" + file + "'", ex);
+       }
+       try {
+               BufferedReader br = new BufferedReader(fr);
+               String line;
+               while ((line = br.readLine()) != null) {
+                       line = line.trim();
+                       if (line.isEmpty() || line.startsWith("#") || 
line.startsWith("/")) {
+                               continue;
+                       }
+                       classNames.add(line);
+               }
+       } catch (IOException ex) {
+               throw new BuildException("Error reading '" + file + "'", ex);
+       } finally {
+               try {
+                       fr.close();
+               } catch (IOException ex) {
+                       // ignore
+               }
+       }
+       return classNames;
+       }
+    
+    
+
     /**
      * Create a set of the names of those classes that can be safely
      * instantiated during the boot process (and written as instance to the 
boot

Modified: trunk/builder/src/builder/org/jnode/build/x86/BootImageBuilder.java
===================================================================
--- trunk/builder/src/builder/org/jnode/build/x86/BootImageBuilder.java 
2010-07-11 14:27:38 UTC (rev 5756)
+++ trunk/builder/src/builder/org/jnode/build/x86/BootImageBuilder.java 
2010-10-02 09:48:09 UTC (rev 5757)
@@ -20,6 +20,7 @@
  
 package org.jnode.build.x86;
 
+import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.HashMap;
@@ -83,6 +84,8 @@
     public static final int INITIAL_OBJREFS_CAPACITY = 750000;
 
     public static final int INITIAL_SIZE = 64 * 1024 * 1024;
+    
+    private File archClassListFile;
 
     private VmX86Processor processor;
 
@@ -690,13 +693,13 @@
     }
 
     /**
+     * Include x86 class files.
+     * 
      * @see 
org.jnode.build.AbstractBootImageBuilder#setupCompileHighOptLevelPackages()
      */
     protected void setupCompileHighOptLevelPackages() {
         super.setupCompileHighOptLevelPackages();
-        addCompileHighOptLevel("org.jnode.assembler.x86");
-        addCompileHighOptLevel("org.jnode.system.x86");
-        addCompileHighOptLevel("org.jnode.vm.x86");
+        addCompileHighOptLevel(loadClassList(archClassListFile));
     }
 
     /**
@@ -764,4 +767,22 @@
             throw new BuildException(e);
         }
     }
+
+    /**
+     * Gets the architecture specific class list file.
+     *
+     * @return The archClassListFile to set
+     */
+       public File getArchClassListFile() {
+               return archClassListFile;
+       }
+
+       /**
+     * Sets the architecture specific class list file.
+     *
+     * @param archClassListFile The archClassListFile to set
+     */
+       public void setArchClassListFile(File archClassListFile) {
+               this.archClassListFile = archClassListFile;
+       }
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Jnode-svn-commits mailing list
Jnode-svn-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jnode-svn-commits

Reply via email to