## This file is part of ANTLR (http://www.antlr.org).  Have a
## look into LICENSE.txt for  license  details. This file has 
## been written by (C) Wolfgang Haefelinger, 2004.

## do not change this value 
subdir=examples/java/calc

## get  configured  (standard) variables - checkout or modify
## scripts/config.vars[.in] for details.
@stdvars@

## two abbrevs to make shorten things
_srcdir = @abs_top_srcdir@/examples/java/calc
thisdir = @abs_this_builddir@/examples/java/calc

## By default we compile class files so we are ready to carry
## out a test. Note that deps have been setup in such a way
## that you can do a 'make compile' whithout having made 
## antlr.jar before. 
this : compile
test :: test1
all  :: compile

## All ANTLR grammar files
g_FILES = \
	$(_srcdir)/calc.g \
	$(eol)

## All java files generated 
g_src_FILES = \
  $(thisdir)/CalcLexer.java \
	$(thisdir)/CalcParser.java \
	$(thisdir)/CalcTreeWalker.java \
	$(thisdir)/CalcParserTokenTypes.java \
  $(eol)

## All "generated" class files
g_class_FILES = \
  $(thisdir)/CalcLexer.class \
	$(thisdir)/CalcParser.class \
	$(thisdir)/CalcTreeWalker.class \
	$(thisdir)/CalcParserTokenTypes.class \
  $(eol)

# All generated text files
g_txt_FILES = \
	$(thisdir)/CalcParserTokenTypes.txt \
	$(eol)

## All generated files
g_gen_FILES = \
	$(g_src_FILES) \
	$(g_txt_FILES) \
	$(eol)

## All source files required for test1 
test1_java_FILES = \
	$(g_src_FILES) \
	$(_srcdir)/Calc.java  \
	$(eol)

## All object files required for test1
test1_class_FILES = \
	$(g_class_FILES) \
	$(thisdir)/Calc.class  \
	$(eol)

## Test commands ..
test1_exe = $(test1_class_FILES)
test1_cmd = @JAVA_CMD@ Calc < $(_srcdir)/test.in

## Tests to be executed
test1 : ${test1_exe}
	@ v="$(verbose)"; \
    if test $$v -gt 0 ; then \
      @ECHO@ "$(test1_cmd)" ; \
    else \
      @ECHO@ "exec test1 .."; \
    fi
	@ $(test1_cmd)

## How to make binaries ..
${test1_exe} : $(test1_java_FILES)
	@@JAVA_COMPILE_CMD@ $(test1_java_FILES)

## When being asked to compile update/create class files. 
compile : ${test1_exe} 

## How to compile ANTLR grammar files - to pass flags please
## use (environment variable) ANTLRFLAGS - for example, to 
## enable trace information, please do a 
##
##  $ make ANTLRFLAGS="-trace"
##
$(g_gen_FILES) : $(g_FILES) 
	@ @RMF@ $(g_gen_FILES)
	@ @ANTLR_COMPILE_CMD@  $(g_FILES)

## In  case  antlr.jar  has  changed  we  need to recompile our
## grammar files - it might be the case that code generator has
## changed.
$(g_gen_FILES) : @ANTLR_JAR@

## Housecleaning - note that we have to remove subdir "antlr" here.
## This directory exists due to a bug in Jikes. For details in this
## problem consult:
##   http://www-124.ibm.com/developerworks/bugs/?group_id=10
## Checkout bug #276.
clean ::
	@RMF@ *.o *.obj *.exe calc1  $(g_gen_FILES) *.dll *.class antlr

distclean :: clean
	@RMF@ Makefile

## If  antlr.jar has changed we recompile Java files. That's bit
## against Java philosophy but we do it in any case - just to be
## sure.
$(test1_exe) : @ANTLR_JAR@

## Recompile if our compiler has changed
$(test1_exe) : @abs_this_builddir@/scripts/javac.sh

## Recompile if this file has changed
$(test1_exe) : Makefile


### get configured dependencies - for example, just list
### autoconf variable ANTLR_JAR as reference and it will
### be  done  automatically  as stddeps contains appropr.
### rule. For details, checkout scripts/config.vars[.in] 
@stddeps@

.PHONY: compile
