[OpenAFS-devel] problems compiling JAVA_API

Pucky Loucks ploucks@h2st.com
Mon, 12 Sep 2005 21:50:20 -0700


Hi I'm trying to compile the java api from the 1.3.87 source and I'm  
getting some errors.

system type = Linux fileserver1 2.4.21-27.0.2.EL #1 Wed Jan 19  
15:47:02 EST 2005 i686 i686 i386 GNU/Linux
java system = java version "1.4.2_07"

I've done a configure with the following settings.

./configure --enable-transarc-paths --with-afs-sysname=i386_linux24
make

everything builds fine, but when I run "make jafs"  i get an error.

<snip>
[fileserver ~/openafs-1.3.87]$ make jafs
...
...
make[1]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
Makefile:31: ../../config/Makefile.i386_linux24: No such file or  
directory
make[1]: *** No rule to make target `../../config/ 
Makefile.i386_linux24'.  Stop.
make[1]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make: *** [libjafs] Error 2
[fileserver ~/openafs-1.3.87]$
</snip>

so I changed the following file (not sure if this is correct)
src/JAVA/libjafs/Makefile
<snip>
-TOP_JLIBDIR=@TOP_JLIBDIR@
-JAVA_HOME=@JAVA_HOME@
-JNI_INC=@JNI_INC@
+TOP_JLIBDIR=/home/pucky/openafs-1.3.87/jlib
+JAVA_HOME=/usr/java/current
+JNI_INC=/home/pucky/openafs-1.3.87/include/afs


-include ../../config/Makefile.${SYS_NAME}
+include ../../config/Makefile.i386_djgpp
</snip>

then did a make again
<snip>
[fileserver ~/openafs-1.3.87]$ make jafs
...
...
make[1]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
mkdir -p /home/pucky/openafs-1.3.87/jlib
rm -f VersionInfo.o; perl buildinfo.pl VersionInfo.h -i; \
         export INCREMENT_BUILD=false;
Can't open perl script "buildinfo.pl": No such file or directory
rm -f ./Internal.o; \
export BUILD_TYPE=user; \
make /home/pucky/openafs-1.3.87/lib/libjafs.so
make[2]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
/usr/java/current/bin/javac -classpath ../classes ../classes/org/ 
openafs/jafs/ACL.java
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.ACL
make[2]: *** No rule to make target `VersionInfo.h', needed by  
`ACL.c'.  Stop.
make[2]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make[1]: *** [libjafs] Error 2
make[1]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make: *** [libjafs] Error 2
[fileserver ~/openafs-1.3.87]$
</snip>

so to see everything that was wrong I added the -k

<snip>
[fileserver ~/openafs-1.3.87]$ make jafs -k
...
...
make[1]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
rm -f VersionInfo.o; perl buildinfo.pl VersionInfo.h -i; \
         export INCREMENT_BUILD=false;
Can't open perl script "buildinfo.pl": No such file or directory
rm -f ./Internal.o; \
export BUILD_TYPE=user; \
make /home/pucky/openafs-1.3.87/lib/libjafs.so
make[2]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
make[2]: *** No rule to make target `VersionInfo.h', needed by `ACL.c'.
/usr/java/current/bin/javac -classpath ../classes ../classes/org/ 
openafs/jafs/File.java
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.File
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.FileInputStream
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.FileOutputStream
dos-gcc -bmmap -I/home/pucky/openafs-1.3.87/src/libuafs -I/home/pucky/ 
openafs-1.3.87/include -I/home/pucky/openafs-1.3.87/src /home/pucky/ 
openafs-1.3.87/include/afs  -O2  -D_REENTRANT -DLIBJUAFS  - 
Dfds_bits=fd_bits -DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT -fPIC -c -o  
Internal.o Internal.c
make[2]: dos-gcc: Command not found
make[2]: *** [Internal.o] Error 127
/usr/java/current/bin/javac -classpath ../classes ../classes/org/ 
openafs/jafs/Token.java
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Token
dos-gcc -bmmap -I/home/pucky/openafs-1.3.87/src/libuafs -I/home/pucky/ 
openafs-1.3.87/include -I/home/pucky/openafs-1.3.87/src /home/pucky/ 
openafs-1.3.87/include/afs  -O2  -D_REENTRANT -DLIBJUAFS  - 
Dfds_bits=fd_bits -DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT   -c -o  
UserToken.o UserToken.c
make[2]: dos-gcc: Command not found
make[2]: *** [UserToken.o] Error 127
make[2]: *** No rule to make target `../classes/org/openafs/jafs/ 
VersionInfo.class', needed by `org_openafs_jafs_VersionInfo.h'.
make[2]: Target `/home/pucky/openafs-1.3.87/lib/libjafs.so' not  
remade because of errors.
make[2]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make[1]: *** [libjafs] Error 2
rm -f ./Internal.o; \
export BUILD_TYPE=admin; \
make /home/pucky/openafs-1.3.87/lib/libjafsadm.so
make[2]: Entering directory `/home/pucky/openafs-1.3.87/src/JAVA/ 
libjafs'
/usr/java/current/bin/javac -classpath ../classes ../classes/org/ 
openafs/jafs/Cell.java
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Cell
dos-gcc -bmmap -I/home/pucky/openafs-1.3.87/include -I/home/pucky/ 
openafs-1.3.87/include/afs/ /home/pucky/openafs-1.3.87/include/afs  - 
O2 -I/home/pucky/openafs-1.3.87/src/config  -Dfds_bits=fd_bits - 
DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT -fPIC -c -o AdminToken.o  
AdminToken.c
make[2]: dos-gcc: Command not found
make[2]: *** [AdminToken.o] Error 127
make[2]: *** No rule to make target `VersionInfo.h', needed by `Cell.c'.
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Group
dos-gcc -bmmap -I/home/pucky/openafs-1.3.87/include -I/home/pucky/ 
openafs-1.3.87/include/afs/ /home/pucky/openafs-1.3.87/include/afs  - 
O2 -I/home/pucky/openafs-1.3.87/src/config  -Dfds_bits=fd_bits - 
DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT -fPIC -c -o Internal.o Internal.c
make[2]: dos-gcc: Command not found
make[2]: *** [Internal.o] Error 127
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Key
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Partition
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Process
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Server
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.User
make[2]: *** No rule to make target `../classes/org/openafs/jafs/ 
VersionInfo.class', needed by `org_openafs_jafs_VersionInfo.h'.
/usr/java/current/bin/javah -classpath ../classes -jni -d ./  
org.openafs.jafs.Volume
make[2]: Target `/home/pucky/openafs-1.3.87/lib/libjafsadm.so' not  
remade because of errors.
make[2]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make[1]: *** [libjafsadm] Error 2
make[1]: *** No rule to make target `../classes/org/openafs/jafs/ 
VersionInfo.class', needed by `all'.
rm -f /home/pucky/openafs-1.3.87/jlib/jafs.jar
cd ../classes; /usr/java/current/bin/jar -cMf /home/pucky/ 
openafs-1.3.87/jlib/jafs.jar *.properties org/openafs/jafs/*.class
make[1]: Target `all' not remade because of errors.
make[1]: Leaving directory `/home/pucky/openafs-1.3.87/src/JAVA/libjafs'
make: *** [libjafs] Error 2
make: Target `jafs' not remade because of errors.
</snip>

I think the Makefile.in is all wrong but I'm not too familiar with  
this.  Can anyone help out with this? Also It doesn't have to be  
fixed for this version I could wait for 1.4.0.  I'm in the middle of  
getting openafs to work with my current network and need access to  
the management aspect via java.  ala Java JMX Managment beans to  
manage the filesystem.

Hope someone can help.

Pucky Loucks
Senior Systems Architect
How2Share Technologies Inc.