############################################################################# # Module: Lexer # Module Desc: Lexer and associated files # Project: Pathan, Open Source X-Path module for Xerces C++ # Project Version: 1 # tmake Template: pathanSubdir # Creation Date: 14:44, 2001/09/28 ############################################################################# ###### Include macro definitions MAKEDEFS = ../../Makefile.defs include $(MAKEDEFS) VPATH = $(srcdir)/objs ###### Files SOURCES = LexerDOMStringStream.cpp \ XPath2Lexer.cpp XPLEXERFILE = XPath2Lexer.cpp XPLEXTEMPLATE = XPath2Lexer.lex ###### Build objects: $(PARSERCPP) ${SOURCES:.cpp=.lo} $(XPLEXERFILE) : $(XPLEXTEMPLATE) # ${PERL} SyncLexer.pl XPath2Lexer.lex $(FLEX) -BUs -Pxx XPath2Lexer.lex ${PERL} -pi -e 's/istream/LexerDOMStringStream/g' XPath2Lexer.cpp ${PERL} -pi -e "s/yyin = \&cin/{\/\* Don't ever forget to declare yyin, or bad things will happen \*\/}/g" XPath2Lexer.cpp ${PERL} -pi -e "s/\#include \/\#include \"XPath2Lexer\.hpp\"/g" XPath2Lexer.cpp ${PERL} -pi -e "s/\#include \//g" XPath2Lexer.cpp ${PERL} -pi -e "s/yyout->write\(\(unsigned char \*\) buf/yyout->write\(\(const char \*\)buf/g" XPath2Lexer.cpp ${PERL} -pi -e "s/delete yy_state_buf;/delete yy_state_buf; yy_flex_free\(yy_start_stack\);/g" XPath2Lexer.cpp lexparseTest: all testLexerParser.o $(RM) $(srcdir)/objs/testLexerParser.o $(CXX) $(CXXFLAGS) -ggdb $(INCPATH) $(LIBPATH) testLexerParser.cpp $(srcdir)/objs/*.o -o $@ $(XERCESLIB) $(LIBS) lexTest: $(RM) $(srcdir)/objs/testlexer.o $(CXX) $(CXXFLAGS) -ggdb $(DEFINES) $(INCPATH) -DXPATH_LEXER_DEBUG -c XPath2Lexer.cpp -o $(srcdir)/objs/XPath2Lexer.o $(CXX) $(CXXFLAGS) -ggdb $(DEFINES) $(INCPATH) $(LIBPATH) testlexer.cpp $(srcdir)/objs/*.o -o $@ $(XERCESLIB) $(LIBS) all: objects lexparseclean: $(RM) $(XPLEXERFILE) ###### Include dependences -include $(patsubst %.cpp,$(srcdir)/objs/%.d,$(filter %.cpp,$(SOURCES))) ###### Include Implicit Rules MAKEIMPL = ../../Makefile.implicit include $(MAKEIMPL)