# Change this to point to your jar file.
BOOTJARFILE=/home/green/latest/i/share/java/libgcj-3.4.jar

SOURCES = compiler/org/eclipse/jdt/core/compiler/CharOperation.java \
compiler/org/eclipse/jdt/core/compiler/IProblem.java \
compiler/org/eclipse/jdt/core/compiler/InvalidInputException.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AND_AND_Expression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AbstractVariableDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AnonymousLocalTypeDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Argument.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ArrayInitializer.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ArrayQualifiedTypeReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ArrayReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ArrayTypeReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AssertStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Assignment.java \
compiler/org/eclipse/jdt/internal/compiler/ast/AstNode.java \
compiler/org/eclipse/jdt/internal/compiler/ast/BinaryExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Block.java \
compiler/org/eclipse/jdt/internal/compiler/ast/BranchStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Break.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Case.java \
compiler/org/eclipse/jdt/internal/compiler/ast/CastExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/CharLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Clinit.java \
compiler/org/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ConditionalExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ConstructorDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Continue.java \
compiler/org/eclipse/jdt/internal/compiler/ast/DefaultCase.java \
compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/DoubleLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/EmptyStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ExplicitConstructorCall.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Expression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ExtendedStringLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/FalseLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/FloatLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ForStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/IfStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ImportReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Initializer.java \
compiler/org/eclipse/jdt/internal/compiler/ast/InnerTypeDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/InstanceOfExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/IntLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/IntLiteralMinValue.java \
compiler/org/eclipse/jdt/internal/compiler/ast/LabeledStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Literal.java \
compiler/org/eclipse/jdt/internal/compiler/ast/LocalDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/LocalTypeDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/LongLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/LongLiteralMinValue.java \
compiler/org/eclipse/jdt/internal/compiler/ast/MagicLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/MemberTypeDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java \
compiler/org/eclipse/jdt/internal/compiler/ast/MethodDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/NameReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/NullLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/NumberLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/OR_OR_Expression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/OperatorExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/OperatorIds.java \
compiler/org/eclipse/jdt/internal/compiler/ast/PostfixExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/PrefixExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedSuperReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedThisReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Reference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/Statement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/StringLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/SuperReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/SynchronizedStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ThisReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/ThrowStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/TrueLiteral.java \
compiler/org/eclipse/jdt/internal/compiler/ast/TryStatement.java \
compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java \
compiler/org/eclipse/jdt/internal/compiler/ast/UnaryExpression.java \
compiler/org/eclipse/jdt/internal/compiler/ast/WhileStatement.java \
compiler/org/eclipse/jdt/internal/compiler/env/IBinaryField.java \
compiler/org/eclipse/jdt/internal/compiler/env/IBinaryMethod.java \
compiler/org/eclipse/jdt/internal/compiler/env/IBinaryNestedType.java \
compiler/org/eclipse/jdt/internal/compiler/env/IBinaryType.java \
compiler/org/eclipse/jdt/internal/compiler/env/ICompilationUnit.java \
compiler/org/eclipse/jdt/internal/compiler/env/IConstants.java \
compiler/org/eclipse/jdt/internal/compiler/env/IDependent.java \
compiler/org/eclipse/jdt/internal/compiler/env/IGenericField.java \
compiler/org/eclipse/jdt/internal/compiler/env/IGenericMethod.java \
compiler/org/eclipse/jdt/internal/compiler/env/IGenericType.java \
compiler/org/eclipse/jdt/internal/compiler/env/INameEnvironment.java \
compiler/org/eclipse/jdt/internal/compiler/env/ISourceField.java \
compiler/org/eclipse/jdt/internal/compiler/env/ISourceMethod.java \
compiler/org/eclipse/jdt/internal/compiler/env/ISourceType.java \
compiler/org/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer.java \
compiler/org/eclipse/jdt/internal/compiler/AbstractSyntaxTreeVisitorAdapter.java \
compiler/org/eclipse/jdt/internal/compiler/ClassFile.java \
compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java \
compiler/org/eclipse/jdt/internal/compiler/Compiler.java \
compiler/org/eclipse/jdt/internal/compiler/ConfigurableOption.java \
compiler/org/eclipse/jdt/internal/compiler/DefaultErrorHandlingPolicies.java \
compiler/org/eclipse/jdt/internal/compiler/DocumentElementParser.java \
compiler/org/eclipse/jdt/internal/compiler/IAbstractSyntaxTreeVisitor.java \
compiler/org/eclipse/jdt/internal/compiler/ICompilerRequestor.java \
compiler/org/eclipse/jdt/internal/compiler/IDebugRequestor.java \
compiler/org/eclipse/jdt/internal/compiler/IDocumentElementRequestor.java \
compiler/org/eclipse/jdt/internal/compiler/IErrorHandlingPolicy.java \
compiler/org/eclipse/jdt/internal/compiler/IProblemFactory.java \
compiler/org/eclipse/jdt/internal/compiler/ISourceElementRequestor.java \
compiler/org/eclipse/jdt/internal/compiler/SourceElementParser.java \
compiler/org/eclipse/jdt/internal/compiler/SourceElementRequestorAdapter.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFileConstants.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFileReader.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFileStruct.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFormatException.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/FieldInfo.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/InnerClassInfo.java \
compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/AttributeNamesConstants.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/CaseLabel.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/CharArrayCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/ConstantPool.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/DoubleCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/ExceptionLabel.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/FieldNameAndTypeCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/FloatCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/IntegerCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/Label.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/LongCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/MethodNameAndTypeCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/ObjectCache.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/Opcodes.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/QualifiedNamesConstants.java \
compiler/org/eclipse/jdt/internal/compiler/codegen/ResetStateForCodeGenerationVisitor.java \
compiler/org/eclipse/jdt/internal/compiler/flow/ConditionalFlowInfo.java \
compiler/org/eclipse/jdt/internal/compiler/flow/ExceptionHandlingFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/FinallyFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/FlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/FlowInfo.java \
compiler/org/eclipse/jdt/internal/compiler/flow/InitializationFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/InsideSubRoutineFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/LabelFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/LoopingFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/SwitchFlowContext.java \
compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java \
compiler/org/eclipse/jdt/internal/compiler/impl/BooleanConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/ByteConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/CharConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java \
compiler/org/eclipse/jdt/internal/compiler/impl/Constant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/DoubleConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/FloatConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/ITypeRequestor.java \
compiler/org/eclipse/jdt/internal/compiler/impl/IntConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/LongConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/ReferenceContext.java \
compiler/org/eclipse/jdt/internal/compiler/impl/ShortConstant.java \
compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ArrayBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/BaseTypes.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/Binding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/BindingIds.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/CompilerModifiers.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/FieldBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ImportBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/InnerEmulationDependency.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/InvocationSite.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/LocalTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/MemberTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/MethodScope.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/NestedTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemFieldBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemMethodBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemReasons.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemReferenceBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/ReferenceBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticAccessMethodBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticArgumentBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticFieldBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/TypeBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/TypeConstants.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/TypeIds.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/UnresolvedReferenceBinding.java \
compiler/org/eclipse/jdt/internal/compiler/lookup/VariableBinding.java \
compiler/org/eclipse/jdt/internal/compiler/parser/NLSLine.java \
compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java \
compiler/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredBlock.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredElement.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredField.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredImport.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredInitializer.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredLocalVariable.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredMethod.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredStatement.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredType.java \
compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredUnit.java \
compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java \
compiler/org/eclipse/jdt/internal/compiler/parser/SourceConstructorDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/parser/SourceFieldDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/parser/SourceMethodDeclaration.java \
compiler/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java \
compiler/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java \
compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java \
compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilationUnit.java \
compiler/org/eclipse/jdt/internal/compiler/problem/AbortMethod.java \
compiler/org/eclipse/jdt/internal/compiler/problem/AbortType.java \
compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblem.java \
compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblemFactory.java \
compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java \
compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java \
compiler/org/eclipse/jdt/internal/compiler/problem/ProblemSeverities.java \
compiler/org/eclipse/jdt/internal/compiler/problem/ShouldNotImplement.java \
compiler/org/eclipse/jdt/internal/compiler/util/CompoundNameVector.java \
compiler/org/eclipse/jdt/internal/compiler/util/HashtableOfInt.java \
compiler/org/eclipse/jdt/internal/compiler/util/HashtableOfLong.java \
compiler/org/eclipse/jdt/internal/compiler/util/HashtableOfObject.java \
compiler/org/eclipse/jdt/internal/compiler/util/HashtableOfPackage.java \
compiler/org/eclipse/jdt/internal/compiler/util/HashtableOfType.java \
compiler/org/eclipse/jdt/internal/compiler/util/ObjectVector.java \
compiler/org/eclipse/jdt/internal/compiler/util/SimpleNameVector.java \
compiler/org/eclipse/jdt/internal/compiler/util/Util.java \
batch/org/eclipse/jdt/internal/compiler/batch/ClasspathDirectory.java \
batch/org/eclipse/jdt/internal/compiler/batch/ClasspathJar.java \
batch/org/eclipse/jdt/internal/compiler/batch/CompilationUnit.java \
batch/org/eclipse/jdt/internal/compiler/batch/FileFinder.java \
batch/org/eclipse/jdt/internal/compiler/batch/FileSystem.java \
batch/org/eclipse/jdt/internal/compiler/batch/Main.java

OBJECTS = $(SOURCES:.java=.o)

CLASSES = $(SOURCES:.java=.class)

SUFFIXES=.java .class .o

# Use ecj when it exists.
%.class: %.java
	if test -f ecj; then \
	  CLASSPATH=compiler:batch ./ecj -bootclasspath $(BOOTJARFILE) -cp compiler:batch $<; \
	else \
	  gcj -C --classpath=.:compiler:batch $<; \
	fi

%.o: %.class
	gcj -c -O2 -g --classpath=.:compiler:batch -o $@ $<

# Make sure we capture all of the ...$...class files.
ecj: $(CLASSES) $(OBJECTS)
	gcj -o ecj -O2 -g --classpath=.:compiler:batch --main=org.eclipse.jdt.internal.compiler.batch.Main $(OBJECTS) `find ./ -name \*$$\*.class`

clean:
	-rm -rf $(CLASSES) $(OBJECTS)
