OSDN Git Service

libjava
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Mar 2007 18:50:14 +0000 (18:50 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Mar 2007 18:50:14 +0000 (18:50 +0000)
* Makefile.in: Rebuilt.
* Makefile.am (bin_PROGRAMS): Added gcjh.
(gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD,
gcjh_DEPENDENCIES): New variables.
libjava/classpath
* tools/gnu/classpath/tools/javah/Main.java (getName): New
method.
(getParser): Now protected.  Use getName.  Add '-v' alias for
--verbose.
(postParse): New method.
(run): Now protected.  Use postParse.
* tools/gnu/classpath/tools/javah/GcjhMain.java: New file.
* tools/Makefile.in: Rebuilt.
* tools/Makefile.am: Remove vm-tools.lst before creating it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122631 138bc75d-0d04-0410-961f-82ee72b054a4

28 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/classpath/ChangeLog.gcj
libjava/classpath/tools/Makefile.am
libjava/classpath/tools/Makefile.in
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/javah/Main.java

index b44c352..2707712 100644 (file)
@@ -1,4 +1,12 @@
+2007-03-06  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (bin_PROGRAMS): Added gcjh.
+       (gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD,
+       gcjh_DEPENDENCIES): New variables.
+
 2007-03-06  Kyle Galloway  <kgallowa@redhat.com>
+
        * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters.
        * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
        (do_getlocalvartable_tests): Add Deallocate calls to free strings.
index 42475b6..58ea100 100644 (file)
@@ -72,7 +72,7 @@ db_pathtail = gcj-$(gcc_version)/$(db_name)
 ## For now, only on native systems.  FIXME.
 if NATIVE
 bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \
-       gappletviewer gjarsigner gkeytool gjar gjavah gnative2ascii \
+       gappletviewer gjarsigner gkeytool gjar gcjh gjavah gnative2ascii \
        gorbd grmid gserialver gtnameserv gc-analyze
 
 ## It is convenient to actually build and install the default database
@@ -757,6 +757,15 @@ gjavah_LDADD = -L$(here)/.libs libgcj-tools.la
 gjavah_DEPENDENCIES = libgcj-tools.la
 
 ## This is a dummy definition.
+gcjh_SOURCES =
+gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+gcjh_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gcjh_LDADD = -L$(here)/.libs libgcj-tools.la
+gcjh_DEPENDENCIES = libgcj-tools.la
+
+## This is a dummy definition.
 gnative2ascii_SOURCES =
 gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \
        -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
index eca65f3..e2e26d8 100644 (file)
@@ -48,7 +48,7 @@ target_triplet = @target@
 @NATIVE_TRUE@  grmic$(EXEEXT) grmiregistry$(EXEEXT) \
 @NATIVE_TRUE@  gcj-dbtool$(EXEEXT) gappletviewer$(EXEEXT) \
 @NATIVE_TRUE@  gjarsigner$(EXEEXT) gkeytool$(EXEEXT) \
-@NATIVE_TRUE@  gjar$(EXEEXT) gjavah$(EXEEXT) \
+@NATIVE_TRUE@  gjar$(EXEEXT) gcjh$(EXEEXT) gjavah$(EXEEXT) \
 @NATIVE_TRUE@  gnative2ascii$(EXEEXT) gorbd$(EXEEXT) \
 @NATIVE_TRUE@  grmid$(EXEEXT) gserialver$(EXEEXT) \
 @NATIVE_TRUE@  gtnameserv$(EXEEXT) gc-analyze$(EXEEXT)
@@ -442,6 +442,8 @@ am_gc_analyze_OBJECTS =
 gc_analyze_OBJECTS = $(am_gc_analyze_OBJECTS)
 am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT)
 gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS)
+am_gcjh_OBJECTS =
+gcjh_OBJECTS = $(am_gcjh_OBJECTS)
 am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \
        gnu/gcj/convert/make-trie.c
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am_gen_from_JIS_OBJECTS = gnu/gcj/convert/gen-from-JIS.$(OBJEXT) \
@@ -503,7 +505,7 @@ SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \
        $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) \
        $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \
        $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \
-       $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) \
+       $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
        $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjar_SOURCES) \
        $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \
        $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
@@ -514,12 +516,13 @@ DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
        $(libgij_la_SOURCES) $(libjvm_la_SOURCES) $(ecjx_SOURCES) \
        $(gappletviewer_SOURCES) $(gc_analyze_SOURCES) \
-       $(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \
-       $(gij_SOURCES) $(gjar_SOURCES) $(gjarsigner_SOURCES) \
-       $(gjavah_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \
-       $(gorbd_SOURCES) $(grmic_SOURCES) $(grmid_SOURCES) \
-       $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
-       $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
+       $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
+       $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
+       $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \
+       $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
+       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+       $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
+       $(jv_convert_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-exec-recursive install-info-recursive \
@@ -7885,6 +7888,13 @@ gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \
 gjavah_LINK = $(GCJLINK)
 gjavah_LDADD = -L$(here)/.libs libgcj-tools.la
 gjavah_DEPENDENCIES = libgcj-tools.la
+gcjh_SOURCES = 
+gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+
+gcjh_LINK = $(GCJLINK)
+gcjh_LDADD = -L$(here)/.libs libgcj-tools.la
+gcjh_DEPENDENCIES = libgcj-tools.la
 gnative2ascii_SOURCES = 
 gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \
        -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
@@ -8719,6 +8729,9 @@ gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT):  \
 gcj-dbtool$(EXEEXT): $(gcj_dbtool_OBJECTS) $(gcj_dbtool_DEPENDENCIES) 
        @rm -f gcj-dbtool$(EXEEXT)
        $(gcj_dbtool_LINK) $(gcj_dbtool_LDFLAGS) $(gcj_dbtool_OBJECTS) $(gcj_dbtool_LDADD) $(LIBS)
+gcjh$(EXEEXT): $(gcjh_OBJECTS) $(gcjh_DEPENDENCIES) 
+       @rm -f gcjh$(EXEEXT)
+       $(gcjh_LINK) $(gcjh_LDFLAGS) $(gcjh_OBJECTS) $(gcjh_LDADD) $(LIBS)
 gnu/gcj/convert/gen-from-JIS.$(OBJEXT):  \
        gnu/gcj/convert/$(am__dirstamp) \
        gnu/gcj/convert/$(DEPDIR)/$(am__dirstamp)
index f7d7868..6bb8214 100644 (file)
@@ -1,3 +1,15 @@
+2007-03-06  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/Main.java (getName): New
+       method.
+       (getParser): Now protected.  Use getName.  Add '-v' alias for
+       --verbose.
+       (postParse): New method.
+       (run): Now protected.  Use postParse.
+       * tools/gnu/classpath/tools/javah/GcjhMain.java: New file.
+       * tools/Makefile.in: Rebuilt.
+       * tools/Makefile.am: Remove vm-tools.lst before creating it.
+
 2007-03-05  Matthias Klose  <doko@ubuntu.com>
 
        * doc/Makefile.am(man_MANS): Add $(TOOLS_MANFILES).
index 8ba984b..a719b1d 100755 (executable)
@@ -156,6 +156,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
        find $(srcdir)/external/asm -name '*.java' -print > asm.lst
        find $(srcdir)/gnu/classpath/tools -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
+           : > vm-tools.lst; \
            for pkg in `cat $(top_builddir)/../vm-tools-packages`; do \
              $(FIND) $(top_srcdir)/../$$pkg -follow -name '*.java' -print >> vm-tools.lst; \
            done \
index 960dc6e..4558f8a 100644 (file)
@@ -1080,6 +1080,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
        find $(srcdir)/external/asm -name '*.java' -print > asm.lst
        find $(srcdir)/gnu/classpath/tools -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
+           : > vm-tools.lst; \
            for pkg in `cat $(top_builddir)/../vm-tools-packages`; do \
              $(FIND) $(top_srcdir)/../$$pkg -follow -name '*.java' -print >> vm-tools.lst; \
            done \
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class
new file mode 100644 (file)
index 0000000..12eb315
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class
new file mode 100644 (file)
index 0000000..3163e84
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class
new file mode 100644 (file)
index 0000000..0dbe2c8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class
new file mode 100644 (file)
index 0000000..56d4887
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class
new file mode 100644 (file)
index 0000000..362d0e0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class
new file mode 100644 (file)
index 0000000..9544202
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class
new file mode 100644 (file)
index 0000000..7617743
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class
new file mode 100644 (file)
index 0000000..5412b9d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class
new file mode 100644 (file)
index 0000000..0a7b34f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
new file mode 100644 (file)
index 0000000..961fa5c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class differ
index 6ec567c..8c33dd3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class differ
index a4a19b4..7bebfc8 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class differ
index 68e8f83..b59e017 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class differ
index ef7248b..db5582d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class differ
index 0bcc044..ef70381 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class differ
index 9b90b1e..e2e627d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class differ
index 8d0e8b0..249ec5c 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class differ
index ba3351c..001bfa0 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class differ
index 4f71d9e..aee9be7 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class differ
index c20b0af..27c3b7e 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class differ
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java b/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
new file mode 100644 (file)
index 0000000..7faed16
--- /dev/null
@@ -0,0 +1,152 @@
+/* GcjhMain.java - gcjh main program
+ Copyright (C) 2007 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., 51 Franklin Street, 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. */
+
+
+package gnu.classpath.tools.javah;
+
+import gnu.classpath.tools.getopt.Option;
+import gnu.classpath.tools.getopt.OptionException;
+import gnu.classpath.tools.getopt.OptionGroup;
+import gnu.classpath.tools.getopt.Parser;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+public class GcjhMain extends Main
+{
+  ArrayList commands = new ArrayList();
+
+  public GcjhMain()
+  {
+    cni = true;
+  }
+
+  protected String getName()
+  {
+    return "gcjh";
+  }
+
+  protected Parser getParser()
+  {
+    Parser result = super.getParser();
+
+    result.setHeader("usage: gcjh [OPTION]... CLASS...");
+
+    OptionGroup text = new OptionGroup("CNI text options");
+    text.add(new Option("add", "Insert TEXT into class body", "TEXT")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+         commands.add(new Text(Text.ADD, arg));
+       }
+      });
+    text.add(new Option("append", "Append TEXT after class declaration",
+                       "TEXT")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+         commands.add(new Text(Text.APPEND, arg));
+       }
+      });
+    text.add(new Option("friend", "Insert TEXT as a 'friend' declaration",
+                       "TEXT")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+         commands.add(new Text(Text.FRIEND, arg));
+       }
+      });
+    text.add(new Option("prepend", "Insert TEXT before start of class", "TEXT")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+         commands.add(new Text(Text.PREPEND, arg));
+       }
+      });
+    result.add(text);
+
+    OptionGroup compat = new OptionGroup("Compatibility options (unused)");
+    // gcjh itself had compatibility options -old and -trace.  I
+    // didn't add them here since they should really be unused by now.
+    compat.add(new Option("td", "Unused compatibility option", "DIRECTORY")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+       }
+      });
+    // I don't believe anyone ever used these options.
+    compat.add(new Option("M", "Unused compatibility option")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+       }
+      });
+    compat.add(new Option("MM", "Unused compatibility option")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+       }
+      });
+    compat.add(new Option("MD", "Unused compatibility option")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+       }
+      });
+    compat.add(new Option("MMD", "Unused compatibility option")
+      {
+       public void parsed(String arg) throws OptionException
+       {
+       }
+      });
+
+    result.add(compat);
+
+    return result;
+  }
+
+  protected void postParse(String[] names)
+  {
+    for (int i = 0; i < names.length; ++i)
+      textMap.put(names[i].replace('.', '/'), commands);
+  }
+
+  public static void main(String[] args) throws IOException
+  {
+    new GcjhMain().run(args);
+  }
+}
index 2cddbaa..729af47 100644 (file)
@@ -1,5 +1,5 @@
 /* Main.java - javah main program
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -179,9 +179,14 @@ public class Main
       results.addAll(Arrays.asList(files));
   }
 
-  private Parser getParser()
+  protected String getName()
   {
-    ClasspathToolParser result = new ClasspathToolParser("javah", true);
+    return "javah";
+  }
+
+  protected Parser getParser()
+  {
+    ClasspathToolParser result = new ClasspathToolParser(getName(), true);
     result.setHeader("usage: javah [OPTIONS] CLASS...");
     result.add(classpath);
     result.add(new Option('d', "Set output directory", "DIR")
@@ -249,7 +254,7 @@ public class Main
         cni = true;
       }
     });
-    result.add(new Option("verbose", "Set verbose mode")
+    result.add(new Option('v', "verbose", "Set verbose mode")
     {
       public void parsed(String arg0) throws OptionException
       {
@@ -317,10 +322,16 @@ public class Main
       }
   }
 
-  private void run(String[] args) throws IOException
+  protected void postParse(String[] names)
+  {
+    // Nothing here.
+  }
+
+  protected void run(String[] args) throws IOException
   {
     Parser p = getParser();
     String[] classNames = p.parse(args);
+    postParse(classNames);
     loader = classpath.getLoader();
 
     boolean isDirectory = outFileName == null;