From 5a7713ae1aa21f3ddd06bfd21c8a63740fa178ee Mon Sep 17 00:00:00 2001
From: jochen
Date: Wed, 7 Jul 1999 16:54:18 +0000
Subject: [PATCH] added automake/autoconf files for automatically building.
reordered directory structure a bit (hidden)
git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1046 379699f6-c40d-0410-875b-85095c16579e
---
jode/.cvsignore | 9 +
jode/AUTHORS | 1 +
jode/ChangeLog | 0
jode/INSTALL | 33 +++
jode/Makefile.am | 7 +
jode/NEWS | 10 +
jode/README | 106 ++++++++
jode/acinclude.m4 | 43 ++++
jode/configure.in | 128 ++++++++++
jode/doc/.cvsignore | 2 +
jode/doc/Makefile.am | 0
jode/jode/.cvsignore | 4 +
...obalOptions.java => GlobalOptions.java.in} | 2 +-
jode/jode/Makefile.am | 231 ++++++++++++++++++
jode/jode/swingui/{Main.java => Main.java.in} | 14 +-
...eeModel.java => PackagesTreeModel.java.in} | 19 +-
jode/test/.cvsignore | 2 +
jode/test/Makefile.am | 0
18 files changed, 589 insertions(+), 22 deletions(-)
create mode 100644 jode/.cvsignore
create mode 100644 jode/AUTHORS
create mode 100644 jode/ChangeLog
create mode 100644 jode/INSTALL
create mode 100644 jode/Makefile.am
create mode 100644 jode/NEWS
create mode 100644 jode/README
create mode 100644 jode/acinclude.m4
create mode 100644 jode/configure.in
create mode 100644 jode/doc/.cvsignore
create mode 100644 jode/doc/Makefile.am
create mode 100644 jode/jode/.cvsignore
rename jode/jode/{GlobalOptions.java => GlobalOptions.java.in} (98%)
create mode 100644 jode/jode/Makefile.am
rename jode/jode/swingui/{Main.java => Main.java.in} (97%)
rename jode/jode/swingui/{PackagesTreeModel.java => PackagesTreeModel.java.in} (91%)
create mode 100644 jode/test/.cvsignore
create mode 100644 jode/test/Makefile.am
diff --git a/jode/.cvsignore b/jode/.cvsignore
new file mode 100644
index 0000000..92379e3
--- /dev/null
+++ b/jode/.cvsignore
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+configure
+config.log
+config.cache
+config.status
+stamp-h
+libtool
+aclocal.m4
diff --git a/jode/AUTHORS b/jode/AUTHORS
new file mode 100644
index 0000000..fc38b9f
--- /dev/null
+++ b/jode/AUTHORS
@@ -0,0 +1 @@
+Jochen Hoenicke
\ No newline at end of file
diff --git a/jode/ChangeLog b/jode/ChangeLog
new file mode 100644
index 0000000..e69de29
diff --git a/jode/INSTALL b/jode/INSTALL
new file mode 100644
index 0000000..2aafeea
--- /dev/null
+++ b/jode/INSTALL
@@ -0,0 +1,33 @@
+Before installing, make sure you have a java compiler (e.g javac or
+jikes) and the java 1.1 runtime class library installed. If you want
+to run this program you need at least a 1.1 compatible java virtual
+machine. There are some bugs in javac included in the SUN JDK 1.1, it
+won't work.
+
+This package was designed to use the GNU standard for configuration
+and makefiles. To build and install do the following:
+
+0). Make sure that you have all libraries that are needed in you
+classpath. You need gnu.getopt, and if you have JDK 1.1 you also need
+the collection classes and swing for 1.1.
+
+1). Run "aclocal && autoconf && automake --add-missing".
+
+2). Run the "configure" script to configure the package. There are
+various options you might want to pass to configure to control how the
+package is built. "configure --help" will give a complete list.
+
+If you have jikes, you should specify it with --with-jikes. You can
+give a path to the directory where it resides, otherwise it is
+searched in the path.
+
+3). Type "make" to build the package. If you don't have jikes, you
+should make clean first, since the dependency problem is not yet
+resolved.
+
+4). Type "make install" to install everything. This doesn't work yet.
+
+The created jar file is stored in the share directory.
+
+ Jochen
+
diff --git a/jode/Makefile.am b/jode/Makefile.am
new file mode 100644
index 0000000..3cefb32
--- /dev/null
+++ b/jode/Makefile.am
@@ -0,0 +1,7 @@
+## Input file for automake to generate the Makefile.in used by configure
+
+SUBDIRS = jode doc test
+
+EXTRA_DIST = TODO \
+ jode.html jode-applet.html jode-obfuscator.html jode-unix.html \
+ jode-useapplet.html jode-win.html
diff --git a/jode/NEWS b/jode/NEWS
new file mode 100644
index 0000000..de761b2
--- /dev/null
+++ b/jode/NEWS
@@ -0,0 +1,10 @@
+1.0.90 is a prerelease..
+* First version using configure. Jode can now be almost automatically
+ build, see INSTALL for instructions.
+* The decompiler can handler inner and anoymous classes.
+* You now need the gnu getopt package.
+* You need JDK 1.2 or alternatively the swing and collection packages
+ for 1.1
+
+
+
diff --git a/jode/README b/jode/README
new file mode 100644
index 0000000..c3f70f8
--- /dev/null
+++ b/jode/README
@@ -0,0 +1,106 @@
+takes class-files as input and produces something similar to the
+original java-File. Of course this can't be perfect: There is no way
+to produce the comments or the names of local variables (except when
+compiled with -g
) and there are often more ways to write
+the same thing. But it does its job quite well.
+
+Quick Test
+I have now an applet interface to the decompiler.
+Check it out.
+
+How to get it
+You can donwload the files in zip form.
+The sources contain only the
+java
files, the classes
+contain only the class
files.
+
+I also have a tar.gz file containing only
+the RCS
directories. This is the form I maintain the
+project, but you probably need unix and a few tools to use them.
+
+There are also some snapshots that have new
+features like inner and anonymous classes.
+
+Click here to browse the files online.
+
+
+
+
+How to use it
+
+I have some simple step by step pages. There are three
+possibilities:
+
+- Using the applet version.
+This can make problem due to java's security policy, but is the
+simplest way and works on most platforms.
+
+- If you use Windows, you should look on this page.
+- Unix users should look on this page.
+
+
+Known bugs
+
+There may be situations, where the code doesn't understand complex
+expressions. In this many ugly temporary variables are used, but the
+code should still be compileable. This does especially happen when
+you compile with `-O' flag and javac has inlined some methods.
+
+Sometimes this program may exit with an Exception
or
+produce incorrect code. Most time the code can't be compiled, so that
+it can be easily spotted. If you have one of these problems (except
+those that occur on some of the jode.test
files, I would
+be very interested in a bug report (including the class
+file, if possible).
+
+Sometimes it generates some GOTO
expression and
+labels. This can't be compiled, but shouldn't happen any more with
+javac or jikes.
+
+It doesn't handle inner and anonymous classes, yet. You can
+decompile them separately, though (use `+$
' switch under
+jikes), but there is a bug in javac, so that a final variable is twice
+initialized. If you encounter this problem just remove the doubled
+line by hand.
+
+New! The latest snapshot can handle
+inner and anonymous classes.
+
+
+Why did I wrote it?
+
+Someday I found guavad
, a disassembler for java byte
+code (it does similar things like javap -c
). I used
+it on a class file, and found that it was possible to reconstruct the
+original java code. First I did it by hand on some small routines,
+but I soon realized that it was a rather stupid task, and that I could
+write a perl
script
+that does the same. At the end of the next day I had a working
+decompiler.
+
+Now while it was working, it was not easy to use. You had to
+decompile the code first with a disassembler, cut the method, you
+wanted to decompile and then run the perl script on it. So I decided
+to get some information of the class files and do this all
+automatically. I decided to write it in java
now,
+because it suited best.
+
+Just for the records: the java code is now more than 50 times
+bigger than the original perl script and is still growing.
+
+License
+
+This code is under GNU GPL. That basically means, that you can copy
+or modify this code, as long as you put all your modification under
+the GPL again. Look
+here for the complete license.
+
+
+
+
+http://www.informatik.uni-oldenburg.de/~delwi/jode/jode.html, last
+updated on 17-Jun-1999.
+
+