###########################################################
# Makefile for the XPath engine.
#
# See ../Makefile for important environment notes
#
###########################################################

# Include common targets and variables
include ../make.include

SINCE_FILE       = sincexpath.last

# Define our directory structure
PROJDIR = org$(PATHSEP)apache$(PATHSEP)xalan
XPATHDIR = $(PROJDIR)$(PATHSEP)xpath
UTILSDIR = $(PROJDIR)$(PATHSEP)utils
XSLT4JDIR = $(PROJDIR)$(PATHSEP)xslt
CLIENTDIR = $(PROJDIR)$(PATHSEP)xslt$(PATHSEP)client
EXTENSIONSDIR = $(PROJDIR)$(PATHSEP)xslt$(PATHSEP)extensions
TRACEDIR = $(PROJDIR)$(PATHSEP)xslt$(PATHSEP)trace
RESDIR = $(PROJDIR)$(PATHSEP)xpath$(PATHSEP)res
DTMDIR = $(PROJDIR)$(PATHSEP)dtm
FUNCDIR = $(PROJDIR)$(PATHSEP)xpath$(PATHSEP)functions
SUBDIRS = 

# List of all files to compile for this module
SRCS = \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)Arg.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)DOM2Helper.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)DOMHelper.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)DOMOrder.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)Expression.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)FoundIndex.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)NodeSet.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)SourceTree.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)SourceTreeManager.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)VariableStack.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPath.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPathAPI.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPathContext.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPathException.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPathFactory.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)XPathProcessorException.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ChildWalkerMultiStep.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)SelfWalkerOneStep.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)AttributeWalkerOneStep.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ChildWalkerOneStep.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)AncestorOrSelfWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)AncestorWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)AttributeWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)AxesWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ChildWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ContextNodeList.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)DescendantOrSelfWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)DescendantWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)FilterExprWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)FollowingSiblingWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)FollowingWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)LocPathIterator.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ChildIterator.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)NamespaceWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ParentWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)PrecedingSiblingWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)PrecedingWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)ReverseAxesWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)RootWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)SelfWalker.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)UnionPathIterator.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)SubContextList.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)axes$(PATHSEP)WalkerFactory.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)Compiler.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)FuncLoader.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)FunctionTable.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)Keywords.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)Lexer.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)OpCodes.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)OpMap.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)PsuedoNames.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)XPathDumper.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)compiler$(PATHSEP)XPathParser.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XBoolean.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XBooleanStatic.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XNodeSet.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XNull.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XNumber.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XObject.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XRTreeFrag.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)objects$(PATHSEP)XString.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)And.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Bool.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Div.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Equals.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Gt.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Gte.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Lt.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Lte.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Minus.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Mod.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Mult.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Neg.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)NotEquals.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Number.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Operation.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Or.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Plus.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Quo.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)String.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)UnaryOperation.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)operations$(PATHSEP)Variable.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)AncestorStepPattern.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)FunctionPattern.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)NodeTest.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)NodeTestFilter.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)StepPattern.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)patterns$(PATHSEP)UnionPattern.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)res$(PATHSEP)XPATHErrorResourceBundle.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)res$(PATHSEP)XPATHErrorResources.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)res$(PATHSEP)XPATHErrorResources_en.java
 	
SRCS2 = \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncBoolean.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncCeiling.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncConcat.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncContains.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncCount.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncCurrent.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncDoclocation.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncExtElementAvailable.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncExtFunction.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncExtFunctionAvailable.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncFalse.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncFloor.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncFormatNumber.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncGenerateId.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncId.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncLang.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncLast.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncLocalPart.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncNamespace.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncNormalizeSpace.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncNot.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncNumber.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncPosition.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncQname.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncRound.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncStartsWith.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncString.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncStringLength.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncSubstring.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncSubstringAfter.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncSubstringBefore.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncSum.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncSystemProperty.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)Function.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)Function2Args.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)Function3Args.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FunctionDef1Arg.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FunctionMultiArgs.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FunctionOneArg.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncTranslate.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncTrue.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)FuncUnparsedEntityURI.java \
    org$(PATHSEP)apache$(PATHSEP)xpath$(PATHSEP)functions$(PATHSEP)WrongNumberArgsException.java

OBJS = $(SRCS:%.java=classes/%.class)

all: sincelast sincelast2 makesubdirs

# Note double-colon targets are treated specially
clean::
	$(RM) $(CLASS_DIR)/$(XPATHDIR)/*.class \
	$(CLASS_DIR)/$(XPATHDIR)/xml4j2dom/*.class \
	$(CLASS_DIR)/$(UTILSDIR)/*.class \
	$(CLASS_DIR)/$(RESDIR)/*.class \
	$(SINCE_FILE) sincexpath2.last

include ../make.include2

sincelast2: sincexpath2.last
sincexpath2.last: $(SRCS2)
	-mkdir $(CLASSESDIR)
	$(JAVAC) $(JAVACFLAGS) -classpath "$(EXTRA_CLASSPATH)" $?
	touch sincexpath2.last