Hi list.
A couple of simple patches for consideration for cp-tools.
The first is to remove gjavah from cp-tools since a javah tool is now in
Classpath so gjavah in cp-tools is no longer needed.
2008-07-12 Paul Jenner <[EMAIL PROTECTED]>
* bin/gjavah.in,
* configure.ac,
* Makefile.am,
* src/gnu/classpath/tools/javah/GnuByteCodeJavah.java,
* src/gnu/classpath/tools/javah/Javah.java,
* src/gnu/classpath/tools/javah/JavahMain.java:
Removed gjavah.
The second is to correct the classpath in the gjavap wrapper script - it
points to cptools.zip instead of cptools.jar which is what is built.
2008-07-12 Paul Jenner <[EMAIL PROTECTED]>
* bin/gjavap.in: Corrected cptools.jar classpath.
If acceptable, could someone with access commit these?
Hope this helps,
Paul
--
Paul Jenner <[EMAIL PROTECTED]>
diff -Naur cp-tools/bin/gjavah.in cp-tools-psj/bin/gjavah.in
--- cp-tools/bin/gjavah.in 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/bin/gjavah.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-#!/bin/sh
-
-## Copyright (C) 2008 Free Software Foundation, Inc.
-##
-## This file is a part of GNU Classpath.
-##
-## GNU Classpath is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or (at
-## your option) any later version.
-##
-## GNU Classpath is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with GNU Classpath; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
-## USA.
-##
-## Linking this library statically or dynamically with other modules is
-## making a combined work based on this library. Thus, the terms and
-## conditions of the GNU General Public License cover the whole
-## combination.
-##
-## As a special exception, the copyright holders of this library give you
-## permission to link this library with independent modules to produce an
-## executable, regardless of the license terms of these independent
-## modules, and to copy and distribute the resulting executable under
-## terms of your choice, provided that you also meet, for each linked
-## independent module, the terms and conditions of the license of that
-## module. An independent module is a module which is not derived from
-## or based on this library. If you modify this library, you may extend
-## this exception to your version of the library, but you are not
-## obligated to do so. If you do not wish to do so, delete this
-## exception statement from your version.
-##
-##
-## A simple shell script to launch the GNU Classpath javah tool.
-##
-
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@/@PACKAGE@
-tools_cp=${tools_dir}/cptools.zip
-
-exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.javah.JavahMain "$@"
diff -Naur cp-tools/configure.ac cp-tools-psj/configure.ac
--- cp-tools/configure.ac 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/configure.ac 2008-07-12 21:06:54.000000000 +0100
@@ -110,9 +110,8 @@
AC_CONFIG_COMMANDS([supplementgen],[chmod 755 bin/supplementgen])
if test "x${with_gnubytecode}" = xyes
then
- AC_CONFIG_FILES([bin/gjavap bin/gjavah])
+ AC_CONFIG_FILES([bin/gjavap])
AC_CONFIG_COMMANDS([gjavap], [chmod 755 bin/gjavap])
- AC_CONFIG_COMMANDS([gjavah], [chmod 755 bin/gjavah])
fi
fi
AC_OUTPUT
diff -Naur cp-tools/Makefile.am cp-tools-psj/Makefile.am
--- cp-tools/Makefile.am 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/Makefile.am 2008-07-12 21:10:23.000000000 +0100
@@ -22,7 +22,7 @@
bin_PROGRAMS = localegen supplementgen
lib_LTLIBRARIES = libcpgenerators.la
if USE_GNUBYTECODE
-bin_PROGRAMS += gjavap gjavah
+bin_PROGRAMS += gjavap
lib_LTLIBRARIES += libcptools.la libbytecode.la
libbytecode_la_LINK = $(GCJLINK)
nodist_libbytecode_la_SOURCES = $(BYTECODE_JAR)
@@ -32,7 +32,7 @@
data_JARS = cpgenerators-$(VERSION).jar
BUILT_SOURCES = $(data_JARS)
if USE_GNUBYTECODE
-bin_SCRIPTS += bin/gjavap bin/gjavah
+bin_SCRIPTS += bin/gjavap
data_JARS += cptools-$(VERSION).jar
endif
endif
@@ -45,13 +45,6 @@
gjavap_LDADD += libbytecode.la
gjavap_LDFLAGS = --main=gnu.classpath.tools.javap.JavapMain \
-Dgnu.gcj.runtime.VMClassLoader.library_control=never
-
-gjavah_SOURCES =
-gjavah_LINK = $(GCJLINK)
-gjavah_LDADD = libcptools.la
-gjavah_LDADD += libbytecode.la
-gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.JavahMain \
- -Dgnu.gcj.runtime.VMClassLoader.library_control=never
endif
localegen_SOURCES =
@@ -69,7 +62,6 @@
else
gjavap: $(srcdir)/bin/gjavap.in
-gjavah: $(srcdir)/bin/gjavah.in
localegen: $(srcdir)/bin/localegen.in
supplementgen: $(srcdir)/bin/supplementgen.in
@@ -77,12 +69,9 @@
if USE_GNUBYTECODE
cptools_jar_SOURCES = \
- src/gnu/classpath/tools/javah/JavahMain.java \
- src/gnu/classpath/tools/javah/Javah.java \
src/gnu/classpath/tools/javap/JavapMain.java \
src/gnu/classpath/tools/javap/Javap.java \
src/gnu/classpath/tools/Util.java \
- src/gnu/classpath/tools/javah/GnuByteCodeJavah.java \
src/gnu/classpath/tools/javap/GnuByteCodeJavap.java
if ENABLE_GCJ_BINARY
diff -Naur cp-tools/src/gnu/classpath/tools/javah/GnuByteCodeJavah.java cp-tools-psj/src/gnu/classpath/tools/javah/GnuByteCodeJavah.java
--- cp-tools/src/gnu/classpath/tools/javah/GnuByteCodeJavah.java 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/src/gnu/classpath/tools/javah/GnuByteCodeJavah.java 1970-01-01 01:00:00.000000000 +0100
@@ -1,368 +0,0 @@
-/* gnu.classpath.tools.javah.GnuByteCodeJavah
- Copyright (C) 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-package gnu.classpath.tools.javah;
-
-import gnu.bytecode.Access;
-import gnu.bytecode.Attribute;
-import gnu.bytecode.ClassFileInput;
-import gnu.bytecode.ClassType;
-import gnu.bytecode.ConstantValueAttr;
-import gnu.bytecode.Field;
-import gnu.bytecode.Method;
-import gnu.bytecode.Type;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.io.RandomAccessFile;
-
-/**
- *
- * @author C. Brian Jones ([EMAIL PROTECTED])
- */
-public class GnuByteCodeJavah extends Javah
-{
-
- private String getJNIMethodName(ClassType classType, Method m)
- {
- StringBuffer result = new StringBuffer();
- String classname = classType.getName();
- classname = classname.replace('.', '_');
- result.append("Java_");
- result.append(classname);
- result.append("_");
- Method method = classType.getMethods();
- int overload = 0;
- while (method != null)
- {
- int flags = method.getModifiers();
- if ((flags & Access.NATIVE) != 0)
- {
- if (method.getName().equals(m.getName()))
- overload++;
- }
- method = method.getNext();
- }
- String methodname = getUnicodeName(m.getName());
- methodname = escapeUnderscore(methodname);
- methodname = escapeUnicode(methodname);
- result.append(methodname);
- if (overload > 1)
- {
- result.append("__");
- StringBuffer sig = new StringBuffer(m.getSignature());
- String signature = sig.toString();
- int idx = signature.indexOf('(');
- if (idx != -1)
- sig.deleteCharAt(idx);
- signature = sig.toString();
- idx = signature.indexOf(')');
- if (idx != -1)
- sig.delete(idx, sig.length());
- signature = sig.toString();
- signature = escapeUnderscore(signature);
- signature = escapeSemicolon(signature);
- signature = escapeArray(signature);
- signature = signature.replace('/', '_');
- result.append(signature);
- }
- return result.toString();
- }
- /**
- * @see gnu.classpath.tools.javah.Javah#printClassFile(java.lang.String,
- * java.io.PrintStream)
- */
- public void printClassFile(String className, PrintStream out)
- {
- StringBuffer buf;
- ClassType classType = null;
- if (isOutputVerbose())
- {
- buf = new StringBuffer();
- buf.append("[Search path = ");
- String path = getSearchPath();
- buf.append(path);
- buf.append("]");
- out.println(buf.toString());
- }
- try
- {
- InputStream is = findClass(className);
- classType = ClassFileInput.readClassType(is);
- }
- catch (Throwable t)
- {
- out.println("Error: Class " + className + " could not be found.");
- return;
- }
- if (getOutputDirectory() != null)
- {
- String filename = className.replace('.', '_');
- filename = filename.replace('$', '_');
- filename = filename + ".h";
- File dir = new File(getOutputDirectory());
- // fatal error
- if (!dir.exists())
- return;
- File f = new File(dir, className);
- if (f.exists())
- if (!f.delete())
- {
- System.err.println("Error: The file " + f.getPath()
- + " could not be deleted.");
- return;
- }
- if (isOutputVerbose())
- {
- buf = new StringBuffer();
- buf.append("[Creating ");
- buf.append(f.getPath());
- buf.append("]");
- out.println(buf.toString());
- }
- writeHeader(classType, f);
- }
- else if (getOutputFile() != null)
- {
- File f = new File(getOutputFile());
- if (isOutputVerbose())
- {
- buf = new StringBuffer();
- buf.append("[Creating ");
- buf.append(f.getPath());
- buf.append("]");
- out.println(buf.toString());
- }
- writeHeader(classType, f);
- }
- }
-
- private void writeHeader(ClassType classType, File f)
- {
- StringBuffer buf;
- String linesep = System.getProperty("line.separator");
- boolean newfile = f.exists();
- try
- {
- RandomAccessFile raf = new RandomAccessFile(f, "rw");
- raf.seek(raf.length());
- FileWriter writer = new FileWriter(raf.getFD());
- if (!newfile)
- {
- buf = new StringBuffer();
- buf.append("/* DO NOT EDIT THIS FILE - it is machine generated */");
- buf.append(linesep);
- buf.append("#include <jni.h>");
- buf.append(linesep);
- writer.write(buf.toString());
- }
- buf = new StringBuffer();
- buf.append("/* Header for class ");
- String className = classType.getName();
- className = getUnicodeName(className);
- className = escapeUnicode(className);
- className = className.replace('$', '_');
- buf.append(className.replace('.', '_'));
- buf.append(" */");
- buf.append(linesep);
- buf.append(linesep);
- writer.write(buf.toString());
- String includedef = "_Included_" + className.replace('.', '_');
- buf = new StringBuffer();
- buf.append("#ifndef ");
- buf.append(includedef);
- buf.append(linesep);
- buf.append("#define ");
- buf.append(includedef);
- buf.append(linesep);
- buf.append("#ifdef __cplusplus");
- buf.append(linesep);
- buf.append("extern \"C\" {");
- buf.append(linesep);
- buf.append("#endif");
- buf.append(linesep);
- writer.write(buf.toString());
- // write any static fields
- Field field = classType.getFields();
- while (field != null)
- {
- int flags = field.getModifiers();
- if ((flags & Access.STATIC) != 0)
- {
- buf = new StringBuffer();
- String fieldname = field.getSourceName();
- fieldname = getUnicodeName(fieldname);
- fieldname = escapeUnicode(fieldname);
- if ((flags & Access.FINAL) != 0)
- {
- ConstantValueAttr constval = (ConstantValueAttr) Attribute
- .get(field, "ConstantValue");
- if (constval == null)
- {
- // System.out.println ("DBG1: " + fieldname);
- buf.append("/* Inaccessible static: ");
- buf.append(escapeUnicodeInner(fieldname));
- buf.append(" */");
- buf.append(linesep);
- writer.write(buf.toString());
- field = field.getNext();
- continue;
- }
- Object val = constval.getValue(classType.getConstants());
- if (val instanceof String)
- {
- System.out.println("DBG2: " + fieldname);
- field = field.getNext();
- continue;
- }
- fieldname = className.replace('.', '_') + "_" + fieldname;
- buf.append("#undef ");
- buf.append(escapeUnicodeInner(fieldname));
- buf.append(linesep);
- buf.append("#define ");
- buf.append(fieldname);
- buf.append(" ");
- if (val instanceof Integer)
- {
- Integer valint = (Integer) val;
- buf.append(valint.toString());
- buf.append("L");
- }
- else if (val instanceof Long)
- {
- Long vallong = (Long) val;
- buf.append(vallong.toString());
- buf.append("LL");
- }
- else if (val instanceof Float)
- {
- Float valfloat = (Float) val;
- buf.append(valfloat.toString());
- buf.append("f");
- }
- else if (val instanceof Double)
- {
- Double valdouble = (Double) val;
- buf.append(valdouble.toString());
- buf.append("D");
- }
- else
- System.err.println("Unknown constant value " + val);
- buf.append(linesep);
- }
- else
- {
- buf.append("/* Inaccessible static: ");
- buf.append(escapeUnicodeInner(fieldname));
- buf.append(" */");
- buf.append(linesep);
- }
- writer.write(buf.toString());
- }
- field = field.getNext();
- }
- // write any native methods out
- Method method = classType.getMethods();
- while (method != null)
- {
- int flags = method.getModifiers();
- if ((flags & Access.NATIVE) != 0)
- {
- buf = new StringBuffer();
- buf.append("/*");
- buf.append(linesep);
- buf.append(" * Class: ");
- buf.append(className.replace('.', '_'));
- buf.append(linesep);
- buf.append(" * Method: ");
- String methodname = getUnicodeName(method.getName());
- methodname = escapeUnderscore(methodname);
- methodname = escapeUnicode(methodname);
- buf.append(methodname);
- buf.append(linesep);
- buf.append(" * Signature: ");
- buf.append(method.getSignature());
- buf.append(linesep);
- buf.append(" */");
- buf.append(linesep);
- buf.append("JNIEXPORT ");
- String returnval = getJNIType(method.getReturnType().getName());
- buf.append(returnval);
- buf.append(" JNICALL ");
- String methodname2 = getJNIMethodName(classType, method);
- methodname2 = escapeUnicodeInner(methodname2);
- buf.append(methodname2);
- buf.append(linesep);
- writer.write(buf.toString());
- // begin printing JNI arguments
- buf = new StringBuffer();
- buf.append(" (JNIEnv *, ");
- if ((flags & Access.STATIC) != 0)
- buf.append("jclass");
- else
- buf.append("jobject");
- // if there are arguments, include those
- Type[] paramTypes = method.getParameterTypes();
- if (paramTypes.length > 0)
- buf.append(", ");
- for (int i = 0; i < paramTypes.length; i++)
- {
- String jniname = getJNIType(paramTypes[i].getName());
- if (buf.length() + jniname.length() > 76)
- {
- buf.append(linesep);
- writer.write(buf.toString());
- buf = new StringBuffer();
- buf.append(" ");
- }
- buf.append(jniname);
- if ((i + 1) < paramTypes.length)
- buf.append(", ");
- }
- buf.append(");");
- buf.append(linesep);
- buf.append(linesep);
- writer.write(buf.toString());
- }
- method = method.getNext();
- }
- buf = new StringBuffer();
- buf.append("#ifdef __cplusplus");
- buf.append(linesep);
- buf.append("}");
- buf.append(linesep);
- buf.append("#endif");
- buf.append(linesep);
- buf.append("#endif");
- buf.append(linesep);
- writer.write(buf.toString());
- writer.close();
- raf.close();
- }
- catch (IOException ioe)
- {
- System.err
- .println("Error: Can't recover from an I/O error with the following message: "
- + ioe.getMessage());
- return;
- }
- }
-}
\ No newline at end of file
diff -Naur cp-tools/src/gnu/classpath/tools/javah/Javah.java cp-tools-psj/src/gnu/classpath/tools/javah/Javah.java
--- cp-tools/src/gnu/classpath/tools/javah/Javah.java 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/src/gnu/classpath/tools/javah/Javah.java 1970-01-01 01:00:00.000000000 +0100
@@ -1,285 +0,0 @@
-/* gnu.classpath.tools.javah.Javah
- Copyright (C) 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-package gnu.classpath.tools.javah;
-
-import gnu.classpath.tools.Util;
-import java.io.InputStream;
-import java.io.PrintStream;
-
-/**
- *
- * @author C. Brian Jones ([EMAIL PROTECTED])
- */
-public abstract class Javah
-{
- private static final String JAVAH_IMPL = "gnu.classpath.tools.javah";
-
- public final static Javah getInstance() throws ClassNotFoundException
- {
- String impl = "gnu.classpath.tools.javah.GnuByteCodeJavah";
- String userImpl = System.getProperty(JAVAH_IMPL);
- if (userImpl != null)
- impl = userImpl;
- Class implClass = Class.forName(impl);
- try
- {
- Object obj = implClass.newInstance();
- if (obj instanceof Javah)
- return (Javah) obj;
- }
- catch (Throwable t)
- {
- }
- throw new ClassNotFoundException("Unable to create instance of " + impl);
- }
- private String output_directory = null;
- private String output_file = null;
- private boolean output_jni = false;
- private boolean output_stubs = false;
- private boolean output_verbose = false;
- private Util util = new Util();
-
- /**
- * Escapes the '[' character with '_3'. Useful only for descriptors, as in
- * method signatures
- */
- public final String escapeArray(String s)
- {
- StringBuffer buf = new StringBuffer(s);
- int start = -1;
- while ((start = s.indexOf('[', start + 1)) != -1)
- {
- buf.replace(start, start + 1, "_3");
- s = buf.toString();
- }
- s = buf.toString();
- return s;
- }
-
- /**
- * Escapes the ';' character with '_2'. Useful only for descriptors, as in
- * method signatures.
- */
- public final String escapeSemicolon(String s)
- {
- StringBuffer buf = new StringBuffer(s);
- int start = -1;
- while ((start = s.indexOf(';', start + 1)) != -1)
- {
- buf.replace(start, start + 1, "_2");
- s = buf.toString();
- }
- s = buf.toString();
- return s;
- }
-
- /**
- * Escapes any '_' character with '_1'
- */
- public final String escapeUnderscore(String s)
- {
- StringBuffer buf = new StringBuffer(s);
- int start = -1;
- while ((start = s.indexOf('_', start + 1)) != -1)
- {
- buf.replace(start, start + 1, "_1");
- s = buf.toString();
- }
- s = buf.toString();
- return s;
- }
-
- /**
- * Escapes any Unicode character XXXX with '_0XXXX'
- */
- public final String escapeUnicode(String s)
- {
- StringBuffer buf = new StringBuffer(s);
- int start = -1;
- while ((start = s.indexOf("\\u", start + 1)) != -1)
- {
- if (s.length() > start + 5)
- {
- buf.replace(start, start + 2, "_0");
- s = buf.toString();
- }
- }
- s = buf.toString();
- return s;
- }
-
- /**
- * Escapes any '$' with _00024
- */
- public final String escapeUnicodeInner(String s)
- {
- StringBuffer buf = new StringBuffer(s);
- int start = -1;
- while ((start = s.indexOf("$", start + 1)) != -1)
- {
- buf.replace(start, start + 1, "_00024");
- s = buf.toString();
- }
- s = buf.toString();
- return s;
- }
-
- public InputStream findClass(String className) throws ClassNotFoundException
- {
- return util.findClass(className);
- }
-
- public final String getJNIType(String jtype)
- {
- String ntype = null;
- boolean isArray = false;
- if (jtype.indexOf("[]") != -1)
- {
- jtype = jtype.substring(0, jtype.indexOf("[]"));
- isArray = true;
- }
- if (jtype.equals("void"))
- ntype = "void";
- else if (jtype.equals("boolean"))
- ntype = "jboolean";
- else if (jtype.equals("byte"))
- ntype = "jbyte";
- else if (jtype.equals("char"))
- ntype = "jchar";
- else if (jtype.equals("short"))
- ntype = "jshort";
- else if (jtype.equals("int"))
- ntype = "jint";
- else if (jtype.equals("long"))
- ntype = "jlong";
- else if (jtype.equals("float"))
- ntype = "jfloat";
- else if (jtype.equals("double"))
- ntype = "jdouble";
- if (isArray)
- {
- if (ntype == null)
- ntype = "jobject";
- ntype = ntype + "Array";
- }
- if (ntype != null)
- return ntype;
- ntype = "jobject";
- if (jtype.equals("java.lang.String"))
- ntype = "jstring";
- else if (jtype.equals("java.lang.Throwable"))
- ntype = "jthrowable";
- else if (jtype.equals("java.lang.Class"))
- ntype = "jclass";
- return ntype;
- }
-
- public final String getOutputDirectory()
- {
- return output_directory;
- }
-
- public final String getOutputFile()
- {
- return output_file;
- }
-
- public final String getSearchPath()
- {
- return util.getSearchPath();
- }
-
- /**
- * Copied largely from gnu.bytecode.ClassTypeWriter
- */
- public final String getUnicodeName(String s)
- {
- StringBuffer namebuf = new StringBuffer();
- int len = s.length();
- for (int i = 0; i < len; i++)
- {
- char ch = s.charAt(i);
- if (ch >= ' ' && ch < 127)
- namebuf.append(ch);
- else
- {
- namebuf.append("\\u");
- for (int j = 4; --j >= 0;)
- namebuf.append(Character.forDigit((ch >> (j * 4)) & 15, 16));
- }
- }
- return namebuf.toString();
- }
-
- public final boolean isOutputJNI()
- {
- return output_jni;
- }
-
- public final boolean isOutputStubs()
- {
- return output_stubs;
- }
-
- public final boolean isOutputVerbose()
- {
- return output_verbose;
- }
-
- /**
- * Providers will implement this method to appropriately print the given class
- * to the provided output stream in javah format. This format depends upon the
- * command line options specified.
- *
- * @param className The name of the class that would be examined
- * @param out The output stream to write to
- */
- public abstract void printClassFile(String className, PrintStream out);
-
- public final void setClasspath(String path)
- {
- util.setClasspath(path);
- }
-
- public final void setOutputDirectory(String output_directory)
- {
- this.output_directory = output_directory;
- }
-
- public final void setOutputFile(String output_file)
- {
- this.output_file = output_file;
- }
-
- public final void setOutputJNI(boolean output_jni)
- {
- this.output_jni = output_jni;
- }
-
- public final void setOutputStubs(boolean output_stubs)
- {
- this.output_stubs = output_stubs;
- }
-
- public final void setOutputVerbose(boolean output_verbose)
- {
- this.output_verbose = output_verbose;
- }
-}
\ No newline at end of file
diff -Naur cp-tools/src/gnu/classpath/tools/javah/JavahMain.java cp-tools-psj/src/gnu/classpath/tools/javah/JavahMain.java
--- cp-tools/src/gnu/classpath/tools/javah/JavahMain.java 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/src/gnu/classpath/tools/javah/JavahMain.java 1970-01-01 01:00:00.000000000 +0100
@@ -1,101 +0,0 @@
-/*
- * gnu.classpath.tools.JavahMain Copyright (C) 2001 Free Software Foundation,
- * Inc.
- *
- * This file is part of GNU Classpath.
- *
- * GNU Classpath is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2, or (at your option) any later version.
- *
- * GNU Classpath is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * GNU Classpath; see the file COPYING. If not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-package gnu.classpath.tools.javah;
-
-public class JavahMain
-{
- public static void main(String argv[])
- {
- Javah p = parseArguments(argv);
- System.exit(0);
- }
-
- /**
- * Parses the arguments to determine what this program should do.
- */
- private static Javah parseArguments(String s[])
- {
- Javah p = null;
- try
- {
- p = Javah.getInstance();
- }
- catch (ClassNotFoundException e)
- {
- System.err.println(e.getMessage());
- return null;
- }
- if (s.length == 0)
- usage();
- boolean processArguments = true;
- int i = 0;
- while (processArguments)
- {
- if (s[i].equals("-classpath"))
- p.setClasspath(s[++i]);
- else if (s[i].equals("-d"))
- p.setOutputDirectory(s[++i]);
- else if (s[i].equals("-help"))
- usage();
- else if (s[i].equals("-jni"))
- p.setOutputJNI(true);
- else if (s[i].equals("-o"))
- p.setOutputFile(s[++i]);
- else if (s[i].equals("-verbose"))
- p.setOutputVerbose(true);
- else if (s[i].startsWith("-"))
- {
- System.err.println("Invalid flag: " + s[i]);
- usage();
- }
- else
- break;
- i++;
- }
- if ((s.length - i) == 0)
- usage();
- for (int j = i; j < s.length; j++)
- p.printClassFile(s[j], System.out);
- return p;
- }
-
- /**
- * Prints generic usage message to System.out.
- */
- private static void usage()
- {
- System.out.println("Usage: javah [OPTION]... [CLASS]...");
- System.out.println("Generate header files for the given classes.");
- System.out.println("");
- System.out
- .println(" -classpath PATH Specify where to find user class files");
- System.out
- .println(" -d DIR Specify an output directory");
- System.out.println(" -help Print this usage message");
- System.out
- .println(" -jni Generate JNI header file (default)");
- System.out
- .println(" -o FILE Specify an output file, cannot be used with -d");
- System.out
- .println(" -stubs Generate an implementation stub file");
- System.out.println(" -verbose Enable verbose output");
- System.exit(0);
- }
-}
\ No newline at end of file
diff -Naur cp-tools/bin/gjavap.in cp-tools-psj/bin/gjavap.in
--- cp-tools/bin/gjavap.in 2008-07-12 16:08:00.000000000 +0100
+++ cp-tools-psj/bin/gjavap.in 2008-07-12 21:32:12.000000000 +0100
@@ -43,6 +43,6 @@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@/@PACKAGE@
-tools_cp=${tools_dir}/cptools.zip
+tools_cp=${tools_dir}/cptools.jar
exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.javap.JavapMain "$@"