##xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@stdvars@
##xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

## do not change this value 
subdir=antlr

## compile java files
all: @ANTLR_JAR@

## 
antlr_java_action_FILES = \
  actions/java/ActionLexer.java \
  actions/java/ActionLexerTokenTypes.java \
  $(eol)

##
antlr_cpp_action_FILES = \
  actions/cpp/ActionLexer.java \
  actions/cpp/ActionLexerTokenTypes.java \
  $(eol)

##
antlr_csharp_action_FILES = \
  actions/csharp/ActionLexer.java \
  actions/csharp/ActionLexerTokenTypes.java \
  $(eol)

##
antlr_python_action_FILES = \
  actions/python/ActionLexer.java \
  actions/python/ActionLexerTokenTypes.java \
  $(eol)

##
antlr_python_code_FILES = \
  actions/python/CodeLexer.java \
  actions/python/CodeLexerTokenTypes.java \
  $(eol)

##
antlr_antlr_FILES = \
  ANTLRParser.java \
  ANTLRTokenTypes.java \
  ANTLRLexer.java  \
  $(eol)

##
antlr_tokdef_FILES = \
  ANTLRTokdefParser.java \
  ANTLRTokdefLexer.java \
  ANTLRTokdefParserTokenTypes.java \
	$(eol)

## all actions files 
antlr_action_FILES = \
 $(antlr_java_action_FILES) \
 $(antlr_cpp_action_FILES) \
 $(antlr_csharp_action_FILES) \
 $(antlr_python_action_FILES) \
 $(antlr_python_code_FILES) \
 $(eol)

## all generated files 
antlr_gen_FILES = \
  $(antlr_antlr_FILES) \
  $(antlr_tokdef_FILES) \
  $(antlr_action_FILES) \
  $(eol)

## all java files 
antlr_java1_FILES = \
  Version.java \
  $(antlr_gen_FILES) \
  @abs_top_srcdir@/antlr/ANTLRError.java \
  @abs_top_srcdir@/antlr/ANTLRException.java \
  @abs_top_srcdir@/antlr/ANTLRGrammarParseBehavior.java \
  @abs_top_srcdir@/antlr/ANTLRHashString.java \
  @abs_top_srcdir@/antlr/ANTLRStringBuffer.java \
  @abs_top_srcdir@/antlr/ASTFactory.java \
  @abs_top_srcdir@/antlr/ASTIterator.java \
  @abs_top_srcdir@/antlr/ASTNULLType.java \
  @abs_top_srcdir@/antlr/ASTPair.java \
  @abs_top_srcdir@/antlr/ASTVisitor.java \
  @abs_top_srcdir@/antlr/ASdebug/ASDebugStream.java \
  @abs_top_srcdir@/antlr/ASdebug/IASDebugStream.java \
  @abs_top_srcdir@/antlr/ASdebug/TokenOffsetInfo.java \
  @abs_top_srcdir@/antlr/ActionElement.java \
  @abs_top_srcdir@/antlr/ActionTransInfo.java \
  @abs_top_srcdir@/antlr/Alternative.java \
  @abs_top_srcdir@/antlr/AlternativeBlock.java \
  @abs_top_srcdir@/antlr/AlternativeElement.java \
  @abs_top_srcdir@/antlr/BaseAST.java \
  @abs_top_srcdir@/antlr/BlockContext.java \
  @abs_top_srcdir@/antlr/BlockEndElement.java \
  @abs_top_srcdir@/antlr/BlockWithImpliedExitPath.java \
  @abs_top_srcdir@/antlr/ByteBuffer.java \
  @abs_top_srcdir@/antlr/CSharpBlockFinishingInfo.java \
  @abs_top_srcdir@/antlr/CSharpCharFormatter.java \
  @abs_top_srcdir@/antlr/CSharpCodeGenerator.java \
  @abs_top_srcdir@/antlr/CSharpNameSpace.java \
  @abs_top_srcdir@/antlr/CharBuffer.java \
  @abs_top_srcdir@/antlr/CharFormatter.java \
  @abs_top_srcdir@/antlr/CharLiteralElement.java \
  @abs_top_srcdir@/antlr/CharQueue.java \
  @abs_top_srcdir@/antlr/CharRangeElement.java \
  @abs_top_srcdir@/antlr/CharScanner.java \
  @abs_top_srcdir@/antlr/CharStreamException.java \
  @abs_top_srcdir@/antlr/CharStreamIOException.java \
  @abs_top_srcdir@/antlr/CodeGenerator.java \
  @abs_top_srcdir@/antlr/CommonAST.java \
  @abs_top_srcdir@/antlr/CommonASTWithHiddenTokens.java \
  @abs_top_srcdir@/antlr/CommonHiddenStreamToken.java \
  @abs_top_srcdir@/antlr/CommonToken.java \
  @abs_top_srcdir@/antlr/CppBlockFinishingInfo.java \
  @abs_top_srcdir@/antlr/CppCharFormatter.java \
  @abs_top_srcdir@/antlr/CppCodeGenerator.java \
  @abs_top_srcdir@/antlr/DefaultFileLineFormatter.java \
  @abs_top_srcdir@/antlr/DefaultJavaCodeGeneratorPrintWriterManager.java \
  @abs_top_srcdir@/antlr/DefaultToolErrorHandler.java \
  @abs_top_srcdir@/antlr/DefineGrammarSymbols.java \
  @abs_top_srcdir@/antlr/DiagnosticCodeGenerator.java \
  @abs_top_srcdir@/antlr/DocBookCodeGenerator.java \
  @abs_top_srcdir@/antlr/DumpASTVisitor.java \
  @abs_top_srcdir@/antlr/ExceptionHandler.java \
  @abs_top_srcdir@/antlr/ExceptionSpec.java \
  @abs_top_srcdir@/antlr/FileCopyException.java \
  @abs_top_srcdir@/antlr/FileLineFormatter.java \
  @abs_top_srcdir@/antlr/Grammar.java \
  @abs_top_srcdir@/antlr/GrammarAnalyzer.java \
  @abs_top_srcdir@/antlr/GrammarAtom.java \
  @abs_top_srcdir@/antlr/GrammarElement.java \
  @abs_top_srcdir@/antlr/GrammarSymbol.java \
  @abs_top_srcdir@/antlr/HTMLCodeGenerator.java \
  @abs_top_srcdir@/antlr/ImportVocabTokenManager.java \
  @abs_top_srcdir@/antlr/InputBuffer.java \
  @abs_top_srcdir@/antlr/JavaBlockFinishingInfo.java \
  @abs_top_srcdir@/antlr/JavaCharFormatter.java \
  @abs_top_srcdir@/antlr/JavaCodeGenerator.java \
  @abs_top_srcdir@/antlr/JavaCodeGeneratorPrintWriterManager.java \
  @abs_top_srcdir@/antlr/LLkAnalyzer.java \
  @abs_top_srcdir@/antlr/LLkGrammarAnalyzer.java \
  @abs_top_srcdir@/antlr/LLkParser.java \
  @abs_top_srcdir@/antlr/LexerGrammar.java \
  @abs_top_srcdir@/antlr/LexerSharedInputState.java \
  @abs_top_srcdir@/antlr/Lookahead.java \
  @abs_top_srcdir@/antlr/MakeGrammar.java \
  @abs_top_srcdir@/antlr/MismatchedCharException.java \
  @abs_top_srcdir@/antlr/MismatchedTokenException.java \
  @abs_top_srcdir@/antlr/NameSpace.java \
  @abs_top_srcdir@/antlr/NoViableAltException.java \
  @abs_top_srcdir@/antlr/NoViableAltForCharException.java \
  @abs_top_srcdir@/antlr/OneOrMoreBlock.java \
  @abs_top_srcdir@/antlr/ParseTree.java \
  @abs_top_srcdir@/antlr/ParseTreeRule.java \
  @abs_top_srcdir@/antlr/ParseTreeToken.java \
  @abs_top_srcdir@/antlr/Parser.java \
  @abs_top_srcdir@/antlr/ParserGrammar.java \
  @abs_top_srcdir@/antlr/ParserSharedInputState.java \
  @abs_top_srcdir@/antlr/PreservingFileWriter.java \
  @abs_top_srcdir@/antlr/PrintWriterWithSMAP.java \
  @abs_top_srcdir@/antlr/PythonBlockFinishingInfo.java \
  @abs_top_srcdir@/antlr/PythonCharFormatter.java \
  @abs_top_srcdir@/antlr/PythonCodeGenerator.java \
  @abs_top_srcdir@/antlr/RecognitionException.java \
  @abs_top_srcdir@/antlr/RuleBlock.java \
  @abs_top_srcdir@/antlr/RuleEndElement.java \
  @abs_top_srcdir@/antlr/RuleRefElement.java \
  @abs_top_srcdir@/antlr/RuleSymbol.java \
  @abs_top_srcdir@/antlr/SemanticException.java \
  @abs_top_srcdir@/antlr/SimpleTokenManager.java \
  @abs_top_srcdir@/antlr/StringLiteralElement.java \
  @abs_top_srcdir@/antlr/StringLiteralSymbol.java \
  @abs_top_srcdir@/antlr/StringUtils.java \
  @abs_top_srcdir@/antlr/SynPredBlock.java \
  @abs_top_srcdir@/antlr/Token.java \
  @abs_top_srcdir@/antlr/TokenBuffer.java \
  @abs_top_srcdir@/antlr/TokenManager.java \
  @abs_top_srcdir@/antlr/TokenQueue.java \
  @abs_top_srcdir@/antlr/TokenRangeElement.java \
  @abs_top_srcdir@/antlr/TokenRefElement.java \
  @abs_top_srcdir@/antlr/TokenStream.java \
  @abs_top_srcdir@/antlr/TokenStreamBasicFilter.java \
  @abs_top_srcdir@/antlr/TokenStreamException.java \
  @abs_top_srcdir@/antlr/TokenStreamHiddenTokenFilter.java \
  @abs_top_srcdir@/antlr/TokenStreamIOException.java \
  @abs_top_srcdir@/antlr/TokenStreamRecognitionException.java \
  @abs_top_srcdir@/antlr/TokenStreamRetryException.java \
  @abs_top_srcdir@/antlr/TokenStreamRewriteEngine.java \
  @abs_top_srcdir@/antlr/TokenStreamSelector.java \
  @abs_top_srcdir@/antlr/TokenSymbol.java \
  @abs_top_srcdir@/antlr/TokenWithIndex.java \
  @abs_top_srcdir@/antlr/Tool.java \
  @abs_top_srcdir@/antlr/ToolErrorHandler.java \
  @abs_top_srcdir@/antlr/TreeBlockContext.java \
  @abs_top_srcdir@/antlr/TreeElement.java \
  @abs_top_srcdir@/antlr/TreeParser.java \
  @abs_top_srcdir@/antlr/TreeParserSharedInputState.java \
  @abs_top_srcdir@/antlr/TreeSpecifierNode.java \
  @abs_top_srcdir@/antlr/TreeWalkerGrammar.java \
  @abs_top_srcdir@/antlr/Utils.java \
  @abs_top_srcdir@/antlr/WildcardElement.java \
  @abs_top_srcdir@/antlr/ZeroOrMoreBlock.java \
  @abs_top_srcdir@/antlr/build/ANTLR.java \
  @abs_top_srcdir@/antlr/build/StreamScarfer.java \
  @abs_top_srcdir@/antlr/build/Tool.java \
  @abs_top_srcdir@/antlr/collections/AST.java \
  @abs_top_srcdir@/antlr/collections/ASTEnumeration.java \
  @abs_top_srcdir@/antlr/collections/Enumerator.java \
  @abs_top_srcdir@/antlr/collections/List.java \
  @abs_top_srcdir@/antlr/collections/Stack.java \
  @abs_top_srcdir@/antlr/collections/impl/ASTArray.java \
  @abs_top_srcdir@/antlr/collections/impl/ASTEnumerator.java \
  @abs_top_srcdir@/antlr/collections/impl/BitSet.java \
  @abs_top_srcdir@/antlr/collections/impl/IndexedVector.java \
  @abs_top_srcdir@/antlr/collections/impl/IntRange.java \
  @abs_top_srcdir@/antlr/collections/impl/LLCell.java \
  @abs_top_srcdir@/antlr/collections/impl/LLEnumeration.java \
  @abs_top_srcdir@/antlr/collections/impl/LList.java \
  @abs_top_srcdir@/antlr/collections/impl/Vector.java \
  @abs_top_srcdir@/antlr/collections/impl/VectorEnumeration.java \
  @abs_top_srcdir@/antlr/collections/impl/VectorEnumerator.java \
  @abs_top_srcdir@/antlr/debug/DebuggingCharScanner.java \
  @abs_top_srcdir@/antlr/debug/DebuggingInputBuffer.java \
  @abs_top_srcdir@/antlr/debug/DebuggingParser.java \
  @abs_top_srcdir@/antlr/debug/Event.java \
  @abs_top_srcdir@/antlr/debug/GuessingEvent.java \
  @abs_top_srcdir@/antlr/debug/InputBufferAdapter.java \
  @abs_top_srcdir@/antlr/debug/InputBufferEvent.java \
  @abs_top_srcdir@/antlr/debug/InputBufferEventSupport.java \
  @abs_top_srcdir@/antlr/debug/InputBufferListener.java \
  @abs_top_srcdir@/antlr/debug/InputBufferReporter.java \
  @abs_top_srcdir@/antlr/debug/LLkDebuggingParser.java \
  @abs_top_srcdir@/antlr/debug/ListenerBase.java \
  @abs_top_srcdir@/antlr/debug/MessageAdapter.java \
  @abs_top_srcdir@/antlr/debug/MessageEvent.java \
  @abs_top_srcdir@/antlr/debug/MessageListener.java \
  @abs_top_srcdir@/antlr/debug/NewLineEvent.java \
  @abs_top_srcdir@/antlr/debug/NewLineListener.java \
  @abs_top_srcdir@/antlr/debug/ParseTreeDebugParser.java \
  @abs_top_srcdir@/antlr/debug/ParserAdapter.java \
  @abs_top_srcdir@/antlr/debug/ParserController.java \
  @abs_top_srcdir@/antlr/debug/ParserEventSupport.java \
  @abs_top_srcdir@/antlr/debug/ParserListener.java \
  @abs_top_srcdir@/antlr/debug/ParserMatchAdapter.java \
  @abs_top_srcdir@/antlr/debug/ParserMatchEvent.java \
  @abs_top_srcdir@/antlr/debug/ParserMatchListener.java \
  @abs_top_srcdir@/antlr/debug/ParserReporter.java \
  @abs_top_srcdir@/antlr/debug/ParserTokenAdapter.java \
  @abs_top_srcdir@/antlr/debug/ParserTokenEvent.java \
  @abs_top_srcdir@/antlr/debug/ParserTokenListener.java \
  @abs_top_srcdir@/antlr/debug/SemanticPredicateAdapter.java \
  @abs_top_srcdir@/antlr/debug/SemanticPredicateEvent.java \
  @abs_top_srcdir@/antlr/debug/SemanticPredicateListener.java \
  @abs_top_srcdir@/antlr/debug/SyntacticPredicateAdapter.java \
  @abs_top_srcdir@/antlr/debug/SyntacticPredicateEvent.java \
  @abs_top_srcdir@/antlr/debug/SyntacticPredicateListener.java \
  @abs_top_srcdir@/antlr/debug/TraceAdapter.java \
  @abs_top_srcdir@/antlr/debug/TraceEvent.java \
  @abs_top_srcdir@/antlr/debug/TraceListener.java \
  @abs_top_srcdir@/antlr/debug/Tracer.java \
  @abs_top_srcdir@/antlr/debug/misc/ASTFrame.java \
  @abs_top_srcdir@/antlr/preprocessor/Grammar.java \
  @abs_top_srcdir@/antlr/preprocessor/GrammarFile.java \
  @abs_top_srcdir@/antlr/preprocessor/Hierarchy.java \
  @abs_top_srcdir@/antlr/preprocessor/Option.java \
  @abs_top_srcdir@/antlr/preprocessor/Preprocessor.java \
  @abs_top_srcdir@/antlr/preprocessor/PreprocessorLexer.java \
  @abs_top_srcdir@/antlr/preprocessor/PreprocessorTokenTypes.java \
  @abs_top_srcdir@/antlr/preprocessor/Rule.java \
  @abs_top_srcdir@/antlr/preprocessor/Tool.java \
	$(eol)

antlr_swing_FILES = \
	@abs_top_srcdir@/antlr/debug/misc/JTreeASTModel.java \
  @abs_top_srcdir@/antlr/debug/misc/JTreeASTPanel.java \
  $(eol)


## damned ugly hack ..
#ifeq (gcj,@javac@)
#	antlr_java_FILES = $(antlr_java1_FILES)
#else
	antlr_java_FILES = $(antlr_java1_FILES) $(antlr_swing_FILES)
#endif

## rule how to compile java files 
@ANTLR_JAR@ :: $(antlr_java_FILES)
	@ -@RMF@ $@
	@ @JAVA_COMPILE_CMD@ $?
	@ @JAR_CMD@ $@ antlr
	@ test -f $@ || { exit 1; }

## how ANTLR grammar files ..
$(antlr_java_action_FILES) : @abs_top_srcdir@/antlr/actions/java/action.g
	@cd actions/java && @ANTLR_COMPILE_CMD@ $<

$(antlr_cpp_action_FILES) : @abs_top_srcdir@/antlr/actions/cpp/action.g
	@cd actions/cpp && @ANTLR_COMPILE_CMD@ $<

$(antlr_csharp_action_FILES) : @abs_top_srcdir@/antlr/actions/csharp/action.g
	@cd actions/csharp && @ANTLR_COMPILE_CMD@ $<

$(antlr_python_action_FILES) : @abs_top_srcdir@/antlr/actions/python/action.g
	@cd actions/python && @ANTLR_COMPILE_CMD@ $<

$(antlr_python_code_FILES) : @abs_top_srcdir@/antlr/actions/python/code.g
	@cd actions/python && @ANTLR_COMPILE_CMD@ $<

$(antlr_antlr_FILES) : @abs_top_srcdir@/antlr/antlr.g
	@ANTLR_COMPILE_CMD@ $<

$(antlr_tokdef_FILES) : @abs_top_srcdir@/antlr/tokdef.g
	@ANTLR_COMPILE_CMD@ $<

clean ::
	@RMF@ *.class antlr @ANTLR_JAR@

distclean :: clean
	@RMF@ $(antlr_gen_FILES)

## install antlr.jar in libdirectory if exists
install ::	@ANTLR_JAR@ 
	-$(MKDIR) -p "$(libdir)"
	-$(MKDIR) -p "$(datadir)/$(versioneddir)"
	-test -f @ANTLR_JAR@ && {\
	 $(INSTALL) -m 444 @ANTLR_JAR@ "$(datadir)/$(versioneddir)" ; \
	 $(INSTALL) -m 444 @ANTLR_JAR@ "$(libdir)" ; \
	}

distclean :: clean
	@RMF@ Makefile Version.java

## get configured dependencies
@stddeps@


