[pypy-svn] r49446 - in pypy/dist/pypy/translator: . jvm
antocuni at codespeak.net
antocuni at codespeak.net
Thu Dec 6 12:16:02 CET 2007
Author: antocuni
Date: Thu Dec 6 12:15:58 2007
New Revision: 49446
Modified:
pypy/dist/pypy/translator/driver.py
pypy/dist/pypy/translator/jvm/genjvm.py
Log:
intermediate checkin; automatically merge jna.jar into the jar
generated by genjvm. I still have to add jna.jar to the repo
Modified: pypy/dist/pypy/translator/driver.py
==============================================================================
--- pypy/dist/pypy/translator/driver.py (original)
+++ pypy/dist/pypy/translator/driver.py Thu Dec 6 12:15:58 2007
@@ -722,7 +722,8 @@
basename = self.exe_name % self.get_info()
root = udir.join('pypy')
manifest = self.create_manifest(root)
- classlist = self.create_classlist(root)
+ jnajar = py.path.local(__file__).dirpath('jvm', 'src', 'jna.jar')
+ classlist = self.create_classlist(root, [jnajar])
jarfile = py.path.local(basename + '.jar')
self.log.info('Creating jar file')
oldpath = root.chdir()
@@ -746,10 +747,19 @@
manifest.close()
return filename
- def create_classlist(self, root):
+ def create_classlist(self, root, additional_jars=[]):
+ from py.compat import subprocess
+ # first, uncompress additional jars
+ for jarfile in additional_jars:
+ oldpwd = root.chdir()
+ subprocess.call(['jar', 'xf', str(jarfile)])
+ oldpwd.chdir()
filename = root.join('classlist.txt')
classlist = filename.open('w')
- classfiles = root.visit('*.class', True)
+ classfiles = list(root.visit('*.class', True))
+ classfiles += root.visit('*.so', True)
+ classfiles += root.visit('*.dll', True)
+ classfiles += root.visit('*.jnilib', True)
for classfile in classfiles:
print >> classlist, classfile.relto(root)
classlist.close()
Modified: pypy/dist/pypy/translator/jvm/genjvm.py
==============================================================================
--- pypy/dist/pypy/translator/jvm/genjvm.py (original)
+++ pypy/dist/pypy/translator/jvm/genjvm.py Thu Dec 6 12:15:58 2007
@@ -114,6 +114,7 @@
srcdir = rootdir.join('pypy')
javafiles = srcdir.listdir('*.java')
classfiles = srcdir.listdir('*.class')
+ jnajar = rootdir.join('jna.jar')
recompile = True
if len(classfiles) == len(javafiles):
@@ -125,7 +126,12 @@
if recompile:
log.red('Compiling java classes')
javasrcs = [str(jf) for jf in javafiles]
- self._invoke([getoption('javac'), '-nowarn', '-d', str(rootdir)] + javasrcs, True)
+ self._invoke([getoption('javac'),
+ '-nowarn',
+ '-d', str(rootdir),
+ '-classpath', str(jnajar)
+ ] + javasrcs,
+ True)
# copy .class files to classdir
for classfile in srcdir.listdir('*.class'):
More information about the Pypy-commit
mailing list