source: trunk/third/perl/jpl/README.JUST-JNI @ 17035

Revision 17035, 3.1 KB checked in by zacheiss, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17034, which included commits to RCS files with non-trunk default branches.
Line 
1Just-JNI (call into Java from Perl only)
2----------------------------------------
3
4This has been tested with:
5
6    Debian GNU/Linux 2.2 i386, perl 5.6.0, Kaffe (CVS, 2000-12-05 or later)
7    RedHat 6.1, perl-5.00503-6 (RedHat RPM), IBM JDK 1.1.8
8    Debian 2.1 SPARC, Perl 5.005_60, JDK 1.2 beta (crashes with AWT, though)
9    Windows NT 4.0 SP4, ActivePerl 519, JDK 1.1.8, Visual C++
10    Solaris 7, Perl 5.005_03, JDK 1.1.6, GCC 2.8.1
11
12Solaris 7 Note (this probably applies to all native thread situations):
13
14    Native threads were tricky. I had to build my own Perl, configured with:
15
16    sh Configure -Dprefix=/opt/perl5.005 -Duseshrplib -Doptimize=-g \
17                 -Uusemymalloc -D cc=gcc -Dusethreads -d
18
19    When Configure let me edit config.sh, I changed libs to:
20
21    libs='-lthread -lsocket -lnsl -ldl -lm -lposix4 -lpthread -lc -lcrypt'
22
23    The leading -lthread is the only thing I had to add.
24
25Kaffe Note:
26
27I believe that Kaffe with JIT enabled will likely be problematic.  I had a
28lot of trouble with it, that simply went away with interpreter-based Kaffe.
29FWIW, here's how I configured Kaffe:
30
31     env AM_CPPFLAGS=-DDEBUG CFLAGS="-O0 -ggdb" ./configure --disable-gcj \
32                                                  --with-engine=intrp
33
34Likely you don't need all that debugging stuff.
35
36Also, when I build perl, I do this, to be on the safe side.  I was worried
37about thread interaction, but realized there was no need to build threaded
38perl, but I thought that the perl code should probably be reentrant, so, I
39did this:
40
41      sh ./Configure -Dcc=gcc -Doptimize='-D_REENTRANT -DDEBUGGING -ggdb'  \
42                     -Dlibperl='libperl.so' -Duseshrplib='true'
43
44Again, you likely don't need the debugging flags.
45
46
47How do I do this crazy thing?
48-----------------------------
49
501) Cd into the JPL directory. Type the following:
51
52    perl Makefile.PL
53    make
54    make install
55
56   Under windows, that's:
57
58    perl Makefile.PL
59    nmake
60    nmake install
61
623) cd into the JNI directory (cd ../JNI or cd ..\JNI)   
63
644) We now need to compile and make the Closer.class available to your
65   JPL program.  Closer is a WindowListener that closes the Frame we
66   make in the test program.
67
68   It seems that we've managed to fix the problem with CLASSPATH not
69   getting propagated to the JVM, so if '.' is in your CLASSPATH, you
70   should be able to compile Closer.java and leave it in the current
71   directory:
72
73       javac Closer.java
74
75     or perhaps
76
77       jikes Closer.java
78
795) Make the demo:
80
81    a) type the following:
82
83      for SUN's proprietary software Java:
84
85        env JAVA_HOME=/path/to/java perl Makefile.PL
86        # setting the JAVA_HOME enviornment variable might not be needed
87        # if Java is in installed in a canonical location
88        make
89        make test
90
91      for Kaffe:
92
93        env KAFFE_PREFIX=/kaffe/installation/prefix perl Makefile.PL
94        # setting the KAFFE_PREFIX enviornment variable might not be needed
95        # if Kaffe is in a canonical location
96        make
97        make test
98
99       Under Windows:
100
101        perl Makefile.PL
102        nmake
103        nmake test
104
105
106    b) if all went well, type:
107
108        make install
109
110       or, under Windows:
111
112        nmake install
113
Note: See TracBrowser for help on using the repository browser.