# # Copyright 2001-2006 Adrian Thurston # # This file is part of Ragel. # # Ragel is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Ragel is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ragel; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA INCS += -I../common -I../aapl DEFS += CFLAGS += -g -Wall LDFLAGS += CC_SRCS = redfsm.cpp gendata.cpp xmltags.cpp xmlscan.cpp xmlparse.cpp GEN_SRC = xmltags.cpp xmlscan.cpp xmlparse.cpp xmlparse.h BUILD_PARSERS = @BUILD_PARSERS@ #************************************* # Programs CXX = @CXX@ # Get objects and dependencies from sources. OBJS = $(CC_SRCS:%.cpp=%.o) DEPS = $(CC_SRCS:%.cpp=.%.d) # Get the version info. include ../version.mk # Rules. all: redfsm.a redfsm.a: $(GEN_SRC) $(OBJS) ar -cr $@ $(OBJS) ifeq ($(BUILD_PARSERS),true) xmlparse.h: xmlparse.kh kelbt -o $@ $< xmlparse.cpp: xmlparse.kl xmlparse.kh kelbt -o $@ $< xmlscan.cpp: xmlscan.rl ragel xmlscan.rl | rlcodegen -G2 -o xmlscan.cpp xmltags.cpp: xmltags.gperf gperf -L C++ -t $< > $@ endif %.o: %.cpp @$(CXX) -M $(DEFS) $(INCS) $< > .$*.d $(CXX) -c $(CFLAGS) $(DEFS) $(INCS) -o $@ $< distclean: clean rm -f Makefile ifeq ($(BUILD_PARSERS),true) EXTRA_CLEAN = $(GEN_SRC) endif clean: rm -f tags .*.d *.o rlcodegen $(EXTRA_CLEAN) -include $(DEPS)