From 8377de22ad36ef8a945a02596b832f408e7e8a4f Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 8 Jul 1999 13:55:15 +0000 Subject: [PATCH] handle --classpath option git-svn-id: https://svn.code.sf.net/p/jode/code/branches/stable@1054 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/Decompiler.java | 2 + jode/jode/Makefile.am | 237 +++++--------------------------------- 2 files changed, 32 insertions(+), 207 deletions(-) diff --git a/jode/jode/Decompiler.java b/jode/jode/Decompiler.java index 2ccccad..f0deed2 100644 --- a/jode/jode/Decompiler.java +++ b/jode/jode/Decompiler.java @@ -155,6 +155,8 @@ public class Decompiler { } else if (params[i].equals("--import")) { importPackageLimit = Integer.parseInt(params[++i]); importClassLimit = Integer.parseInt(params[++i]); + } else if (params[i].equals("--classpath")) { + classPath = params[++i]; } else if (params[i].equals("--cp")) { classPath = params[++i]; } else if (params[i].equals("--")) { diff --git a/jode/jode/Makefile.am b/jode/jode/Makefile.am index 289f87c..d39cc04 100644 --- a/jode/jode/Makefile.am +++ b/jode/jode/Makefile.am @@ -1,231 +1,54 @@ ## Input file for automake to generate the Makefile.in used by configure -EXTRA_DIST = \ - AssertError.java \ - bytecode/BinaryInfo.java \ - bytecode/BytecodeInfo.java \ - bytecode/ClassFormatException.java \ - bytecode/ClassInfo.java \ - bytecode/ConstantPool.java \ - bytecode/FieldInfo.java \ - bytecode/GrowableConstantPool.java \ - bytecode/Handler.java \ - bytecode/InnerClassInfo.java \ - bytecode/Instruction.java \ - bytecode/LineNumber.java \ - bytecode/LocalVariableInfo.java \ - bytecode/MethodInfo.java \ - bytecode/Opcodes.java \ - bytecode/Reference.java \ - bytecode/SearchPath.java \ - decompiler/Analyzer.java \ - decompiler/ClassAnalyzer.java \ - decompiler/ClassDeclarer.java \ - decompiler/DeadCodeAnalysis.java \ - decompiler/Declarable.java \ - decompiler/FieldAnalyzer.java \ - decompiler/ImportHandler.java \ - decompiler/LocalInfo.java \ - decompiler/LocalVarEntry.java \ - decompiler/LocalVariableRangeList.java \ - decompiler/LocalVariableTable.java \ - decompiler/MethodAnalyzer.java \ - decompiler/Opcodes.java \ - decompiler/OuterValueListener.java \ - decompiler/Scope.java \ - decompiler/TabbedPrintWriter.java \ - Decompiler.java \ - expr/ArrayLengthOperator.java \ - expr/ArrayLoadOperator.java \ - expr/ArrayStoreOperator.java \ - expr/BinaryOperator.java \ - expr/CheckCastOperator.java \ - expr/CheckNullOperator.java \ - expr/ClassFieldOperator.java \ - expr/CombineableOperator.java \ - expr/CompareBinaryOperator.java \ - expr/CompareToIntOperator.java \ - expr/CompareUnaryOperator.java \ - expr/ConstOperator.java \ - expr/ConstantArrayOperator.java \ - expr/ConstructorOperator.java \ - expr/ConvertOperator.java \ - expr/Expression.java \ - expr/GetFieldOperator.java \ - expr/IIncOperator.java \ - expr/IfThenElseOperator.java \ - expr/InstanceOfOperator.java \ - expr/InvokeOperator.java \ - expr/LValueExpression.java \ - expr/LocalLoadOperator.java \ - expr/LocalStoreOperator.java \ - expr/LocalVarOperator.java \ - expr/MatchableOperator.java \ - expr/MonitorEnterOperator.java \ - expr/MonitorExitOperator.java \ - expr/NewArrayOperator.java \ - expr/NewOperator.java \ - expr/NoArgOperator.java \ - expr/NopOperator.java \ - expr/Operator.java \ - expr/OuterLocalOperator.java \ - expr/PopOperator.java \ - expr/PrePostFixOperator.java \ - expr/PutFieldOperator.java \ - expr/ShiftOperator.java \ - expr/SimpleOperator.java \ - expr/StoreInstruction.java \ - expr/StringAddOperator.java \ - expr/ThisOperator.java \ - expr/UnaryOperator.java \ - flow/BreakBlock.java \ - flow/BreakableBlock.java \ - flow/CaseBlock.java \ - flow/CatchBlock.java \ - flow/CombineIfGotoExpressions.java \ - flow/CompleteSynchronized.java \ - flow/ConditionalBlock.java \ - flow/ContinueBlock.java \ - flow/CreateAssignExpression.java \ - flow/CreateCheckNull.java \ - flow/CreateClassField.java \ - flow/CreateConstantArray.java \ - flow/CreateExpression.java \ - flow/CreateForInitializer.java \ - flow/CreateIfThenElseOperator.java \ - flow/CreateNewConstructor.java \ - flow/CreatePrePostIncExpression.java \ - flow/DescriptionBlock.java \ - flow/EmptyBlock.java \ - flow/FinallyBlock.java \ - flow/FlowBlock.java \ - flow/IfThenElseBlock.java \ - flow/InstructionBlock.java \ - flow/InstructionContainer.java \ - flow/JsrBlock.java \ - flow/Jump.java \ - flow/LoopBlock.java \ - flow/RetBlock.java \ - flow/ReturnBlock.java \ - flow/SequentialBlock.java \ - flow/SlotSet.java \ - flow/SpecialBlock.java \ - flow/StructuredBlock.java \ - flow/SwitchBlock.java \ - flow/SynchronizedBlock.java \ - flow/ThrowBlock.java \ - flow/TransformConstructors.java \ - flow/TransformExceptionHandlers.java \ - flow/TryBlock.java \ - flow/VariableSet.java \ - flow/VariableStack.java \ - GlobalOptions.java.in \ - JodeApplet.java \ - JodeWindow.java \ - jvm/CodeVerifier.java \ - jvm/Interpreter.java \ - jvm/InterpreterException.java \ - jvm/NewObject.java \ - jvm/RuntimeEnvironment.java \ - jvm/SimpleRuntimeEnvironment.java \ - jvm/SyntheticAnalyzer.java \ - jvm/Value.java \ - jvm/VerifyException.java \ - obfuscator/ClassBundle.java \ - obfuscator/ClassIdentifier.java \ - obfuscator/CodeAnalyzer.java \ - obfuscator/CodeTransformer.java \ - obfuscator/ConstantAnalyzer.java \ - obfuscator/ConstantRuntimeEnvironment.java \ - obfuscator/FieldIdentifier.java \ - obfuscator/Identifier.java \ - obfuscator/IdentifierMatcher.java \ - obfuscator/LocalIdentifier.java \ - obfuscator/LocalOptimizer.java \ - obfuscator/LocalizeFieldTransformer.java \ - obfuscator/Main.java \ - obfuscator/MethodIdentifier.java \ - obfuscator/ModifierMatcher.java \ - obfuscator/NameSwapper.java \ - obfuscator/PackageIdentifier.java \ - obfuscator/RemovePopAnalyzer.java \ - obfuscator/Renamer.java \ - obfuscator/SimpleAnalyzer.java \ - obfuscator/StrongRenamer.java \ - obfuscator/TranslationTable.java \ - obfuscator/WildCard.java \ - swingui/Main.java \ - swingui/Main.java.in \ - swingui/PackagesTreeModel.java.in \ - swingui/PackagesTreeModel.java \ - type/ArrayType.java \ - type/ClassInterfacesType.java \ - type/IntegerType.java \ - type/MethodType.java \ - type/NullType.java \ - type/RangeType.java \ - type/ReferenceType.java \ - type/Type.java \ - util/AbstractCollection.java \ - util/AbstractList.java \ - util/AbstractMap.java \ - util/AbstractSequentialList.java \ - util/AbstractSet.java \ - util/ArrayEnum.java \ - util/ArrayList.java \ - util/Arrays.java \ - util/BasicMapEntry.java \ - util/Bucket.java \ - util/Collection.java \ - util/Collections.java \ - util/Comparable.java \ - util/Comparator.java \ - util/ConcurrentModificationException.java \ - util/HashMap.java \ - util/HashSet.java \ - util/Iterator.java \ - util/LinkedList.java \ - util/List.java \ - util/ListIterator.java \ - util/Map.java \ - util/Set.java \ - util/SimpleMap.java \ - util/SimpleSet.java \ - util/SortedMap.java \ - util/SortedSet.java \ - util/TreeMap.java \ - util/TreeSet.java \ - util/UnsupportedOperationException.java +SUBDIRS = bytecode type util jvm expr flow decompiler obfuscator @SWINGUI@ JAR = @JAR@ JAVAC = @JAVAC@ JIKES = @JIKES@ CLASSPATH = @CLASSPATH@ CLASSLIB = @CLASSLIB@ -BUILD_CLASSPATH = $(top_srcdir):$(top_builddir):.:$(CLASSPATH) +BUILD_CLASSPATH = $(top_srcdir):$(top_builddir):.:$(CLASSPATH):$(CLASSLIB) VPATH=$(srcdir):$(top_srcdir):$(top_builddir) -MY_CLASSES = jode/Decompiler.class jode/JodeApplet.class jode/JodeWindow.class jode/obfuscator/Main.class @SWING_CLASSES@ +MY_JAVA_FILES = \ + AssertError.java \ + Decompiler.java \ + GlobalOptions.java \ + JodeApplet.java \ + JodeWindow.java -pkgdata_DATA = jode.jar +noinst_DATA = $(MY_JAVA_FILES:.java=.class) +EXTRA_DIST = $(MY_JAVA_FILES) + + +JARFILE = jode-@VERSION@.jar +data_DATA = $(JARFILE) if HAVE_JIKES -@QUOTE@-include .java.deps +@QUOTE@-include $(top_builddir)/jode/.java.deps %.class: %.java - $(JIKES) -classpath $(BUILD_CLASSPATH):$(CLASSLIB) +M=.java.deps -d . $< + $(JIKES) -classpath $(BUILD_CLASSPATH):$(CLASSLIB) +M=$(top_builddir)/jode/.java.deps -d $(top_builddir) $< else %.class: %.java - $(JAVAC) -classpath $(BUILD_CLASSPATH):$(CLASSLIB) -depend -d . $< + $(JAVAC) -classpath $(BUILD_CLASSPATH):$(CLASSLIB) -depend -d $(top_builddir) $< endif clean-local: - @rm -rf jode - @rm -f jode.jar .java.deps - -jode.jar: $(MY_CLASSES) - CLASSPATH= $(JAR) -cf jode.jar jode + @rm -f *.class + @rm -f $(JARFILE) .java.deps + +$(JARFILE): $(noinst_DATA) + CLASSPATH=$(top_builddir):$(CLASSPATH) $(JAVA) -mx80m \ + jode.obfuscator.Main --dest $(JARFILE) \ + --revtable rename.table \ + --rename=none --breakserial --strip=unreach -v -v \ + --preserve 'jode.Decompiler.main.*' \ + --preserve 'jode.JodeApplet..*' \ + --preserve 'jode.JodeWindow.main.*' \ + --preserve 'jode.obfuscator.Main.main.*' \ + --preserve 'jode.swingui.Main.main.*' jode