classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

eclipse, jamvm, and classpath


From: Tom Tromey
Subject: eclipse, jamvm, and classpath
Date: 08 Sep 2005 10:17:36 -0600
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

Thanks to Rob, now that jamvm is in CVS, it should be much simpler to
set up a trivial-to-use classpath development environment in Eclipse.

Appended is a patch to eclipse-ify jamvm and to make it work nicely
with classpath.  It has 3 parts:

1. A small Makefile patch to make it so that you can compile against
   an unzipped classpath; this is used with --disable-zip.

   I took a minimal approach to fixing this.  There are a couple
   other potential Makefile changes in this area:

   * Use real automake conditionals
   * Allow use of compilers other than jikes
   * Ultimately, add a special eclipse flag so that the java source
     in jamvm is compiled inside eclipse with no external build step.

   I didn't include the diffs to the auto*-generated files.  I have a
   different version of these tools anyway...

2. Addition of a lot of .cvsignore files.  This is just friendlier
   when making patches and whatnot.

3. Addition of the eclipse build goo.  I have set things up so that it
   simply assumes you have checked out classpath into your workspace.
   And, I set it up to use this classpath by default.  That is, this
   is not a generic configuration but instead a way to make it very,
   very simple to run jamvm against the classpath you are developing.

To try this out:

* Check out classpath in eclipse and build it
* Check out jamvm in eclipse
* Apply appended patch, re-run auto*
* Build jamvm in eclipse

Now the jamvm in <workspace>/classpath/install/bin should work just
fine.  If you edit a java file in classpath, eclipse will rebuild it,
and jamvm will immediately see the change.

I have a patch kicking around to show how easy this really is; it adds
a launch configuration to the visual tester so that you can literally
go from a classpath change to running the test with a single mouse
click.

Tom

Index: lib/Makefile.am
===================================================================
RCS file: /cvsroot/jamvm/jamvm/lib/Makefile.am,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile.am
--- lib/Makefile.am     5 Sep 2005 00:02:34 -0000       1.1.1.1
+++ lib/Makefile.am     8 Sep 2005 15:54:45 -0000
@@ -1,4 +1,5 @@
-GLIBJ_ZIP = ${with_classpath_install_dir}/share/classpath/glibj.zip
address@hidden@ GLIBJ_ZIP = 
${with_classpath_install_dir}/share/classpath/glibj.zip
address@hidden@ GLIBJ_ZIP = ${with_classpath_install_dir}/share/classpath/
 
 SUBDIRS = jamvm java gnu
 EXTRA_DIST = classes.zip README
Index: .cdtproject
===================================================================
RCS file: .cdtproject
diff -N .cdtproject
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ .cdtproject 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,3 @@
+<?xml version='1.0'?>
+<?eclipse-cdt version="2.0"?>
+<cdtproject id='org.eclipse.cdt.make.core.make'><extension 
point='org.eclipse.cdt.core.CIndexer' 
id='org.eclipse.cdt.core.domsourceindexer'/><extension 
point='org.eclipse.cdt.core.BinaryParser' 
id='org.eclipse.cdt.core.ELF'/><data><item 
id='scannerConfiguration'><autodiscovery enabled='true' 
selectedProfileId='org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile' 
problemReportingEnabled='true'/><profile 
id='org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile'><buildOutputProvider><openAction
 enabled='true' filePath=''/><parser 
enabled='true'/></buildOutputProvider><scannerInfoProvider 
id='specsFile'><runAction useDefault='true' command='gcc' arguments='-E -P -v 
-dD ${plugin_state_location}/${specs_file}'/><parser 
enabled='true'/></scannerInfoProvider></profile><profile 
id='org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile'><buildOutputProvider><openAction
 enabled='false' filePath=''/><parser 
enabled='true'/></buildOutputProvider><scannerInfoPro
 vider id='specsFile'><runAction useDefault='true' command='gcc' arguments='-E 
-P -v -dD ${plugin_state_location}/${specs_file}'/><parser 
enabled='false'/></scannerInfoProvider></profile><profile 
id='org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile'><buildOutputProvider><openAction
 enabled='false' filePath=''/><parser 
enabled='true'/></buildOutputProvider><scannerInfoProvider 
id='specsFile'><runAction useDefault='true' command='gcc' arguments='-E -P -v 
-dD ${plugin_state_location}/${specs_file}'/><parser 
enabled='false'/></scannerInfoProvider></profile><profile 
id='org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile'><buildOutputProvider><openAction
 enabled='false' filePath=''/><parser 
enabled='true'/></buildOutputProvider><scannerInfoProvider 
id='makefileGenerator'><runAction useDefault='true' command='make' 
arguments='-f ${project_name}_scd.mk'/><parser 
enabled='false'/></scannerInfoProvider></profile></item><item 
id='org.eclipse.cdt.core.pathentry
 '><pathentry kind='src' path=''/><pathentry kind='out' path=''/><pathentry 
kind='con' 
path='org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO'/></item></data></cdtproject>
Index: .cvsignore
===================================================================
RCS file: .cvsignore
diff -N .cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ .cvsignore  1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+autom4te.cache
+Makefile
Index: .project
===================================================================
RCS file: .project
diff -N .project
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ .project    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>jamvm</name>
+       <comment></comment>
+       <projects>
+               <project>classpath</project>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       
<value>&lt;project&gt;/.externalToolBuilders/JamVMConfigure.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.make.core.makeBuilder</name>
+                       <triggers>clean,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.arguments</key>
+                                       <value></value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.core.errorOutputParser</key>
+                                       
<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.environment</key>
+                                       <value></value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+                                       <value>false</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.target.inc</key>
+                                       <value>all</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.command</key>
+                                       <value>make</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.target.clean</key>
+                                       <value>clean</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.append_environment</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.target.full</key>
+                                       <value>clean all</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.stopOnError</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       
<key>org.eclipse.cdt.make.core.build.target.auto</key>
+                                       <value>all</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       
<name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       
<value>&lt;project&gt;/.externalToolBuilders/JamVMInstall.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.make.core.makeNature</nature>
+               <nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature>
+       </natures>
+</projectDescription>
Index: .externalToolBuilders/JamVMConfigure.launch
===================================================================
RCS file: .externalToolBuilders/JamVMConfigure.launch
diff -N .externalToolBuilders/JamVMConfigure.launch
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ .externalToolBuilders/JamVMConfigure.launch 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+<?xml version='1.0'?>
+<launchConfiguration 
type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute
 key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' 
value='${project}'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' 
value='full,incremental,'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_LOCATION' 
value='${workspace_loc:/jamvm/configure}'/><booleanAttribute 
key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' 
value='true'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' 
value='${workspace_loc:/jamvm}'/><booleanAttribute 
key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' 
value='false'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' 
value='--prefix=${workspace_loc:classpath/install} 
--with-classpath-install-dir=${workspace_loc:classpath/install} 
--disable-zip'/><booleanAttribute 
key='org.eclipse.debug.core.appendEnvironmentVariables' 
value='true'/></launchConfiguration>
Index: .externalToolBuilders/JamVMInstall.launch
===================================================================
RCS file: .externalToolBuilders/JamVMInstall.launch
diff -N .externalToolBuilders/JamVMInstall.launch
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ .externalToolBuilders/JamVMInstall.launch   1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+<?xml version='1.0'?>
+<launchConfiguration 
type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute
 key='org.eclipse.ui.externaltools.ATTR_LOCATION' 
value='${system_path:make}'/><booleanAttribute 
key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' 
value='true'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' 
value='full,incremental,'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' 
value='${workspace_loc:/jamvm}'/><booleanAttribute 
key='org.eclipse.debug.core.appendEnvironmentVariables' 
value='true'/><stringAttribute 
key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' 
value='install'/><booleanAttribute 
key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' 
value='false'/></launchConfiguration>
Index: lib/.cvsignore
===================================================================
RCS file: lib/.cvsignore
diff -N lib/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/.cvsignore      1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/gnu/.cvsignore
===================================================================
RCS file: lib/gnu/.cvsignore
diff -N lib/gnu/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/gnu/.cvsignore  1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/gnu/classpath/.cvsignore
===================================================================
RCS file: lib/gnu/classpath/.cvsignore
diff -N lib/gnu/classpath/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/gnu/classpath/.cvsignore        1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/jamvm/.cvsignore
===================================================================
RCS file: lib/jamvm/.cvsignore
diff -N lib/jamvm/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/jamvm/.cvsignore        1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/jamvm/java/.cvsignore
===================================================================
RCS file: lib/jamvm/java/.cvsignore
diff -N lib/jamvm/java/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/jamvm/java/.cvsignore   1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/jamvm/java/lang/.cvsignore
===================================================================
RCS file: lib/jamvm/java/lang/.cvsignore
diff -N lib/jamvm/java/lang/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/jamvm/java/lang/.cvsignore      1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/java/.cvsignore
===================================================================
RCS file: lib/java/.cvsignore
diff -N lib/java/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/java/.cvsignore 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/java/lang/.cvsignore
===================================================================
RCS file: lib/java/lang/.cvsignore
diff -N lib/java/lang/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/java/lang/.cvsignore    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/java/lang/reflect/.cvsignore
===================================================================
RCS file: lib/java/lang/reflect/.cvsignore
diff -N lib/java/lang/reflect/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/java/lang/reflect/.cvsignore    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: lib/java/security/.cvsignore
===================================================================
RCS file: lib/java/security/.cvsignore
diff -N lib/java/security/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/java/security/.cvsignore        1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: src/.cvsignore
===================================================================
RCS file: src/.cvsignore
diff -N src/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/.cvsignore      1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,4 @@
+.deps
+arch.h
+jamvm
+Makefile
Index: src/arch/.cvsignore
===================================================================
RCS file: src/arch/.cvsignore
diff -N src/arch/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/arch/.cvsignore 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: src/os/.cvsignore
===================================================================
RCS file: src/os/.cvsignore
diff -N src/os/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/.cvsignore   1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: src/os/darwin/.cvsignore
===================================================================
RCS file: src/os/darwin/.cvsignore
diff -N src/os/darwin/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/darwin/.cvsignore    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: src/os/darwin/powerpc/.cvsignore
===================================================================
RCS file: src/os/darwin/powerpc/.cvsignore
diff -N src/os/darwin/powerpc/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/darwin/powerpc/.cvsignore    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+.deps
+Makefile
Index: src/os/linux/.cvsignore
===================================================================
RCS file: src/os/linux/.cvsignore
diff -N src/os/linux/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/linux/.cvsignore     1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+Makefile
Index: src/os/linux/arm/.cvsignore
===================================================================
RCS file: src/os/linux/arm/.cvsignore
diff -N src/os/linux/arm/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/linux/arm/.cvsignore 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+.deps
+Makefile
Index: src/os/linux/i386/.cvsignore
===================================================================
RCS file: src/os/linux/i386/.cvsignore
diff -N src/os/linux/i386/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/linux/i386/.cvsignore        1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+.deps
+Makefile
Index: src/os/linux/powerpc/.cvsignore
===================================================================
RCS file: src/os/linux/powerpc/.cvsignore
diff -N src/os/linux/powerpc/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/linux/powerpc/.cvsignore     1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+.deps
+Makefile
Index: src/os/linux/x86_64/.cvsignore
===================================================================
RCS file: src/os/linux/x86_64/.cvsignore
diff -N src/os/linux/x86_64/.cvsignore
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/os/linux/x86_64/.cvsignore      1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+.deps
+Makefile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]