2 # Copyright 2001-2008 Adrian Thurston <thurston@complang.org>
5 # This file is part of Ragel.
7 # Ragel is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # Ragel is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Ragel; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 main.cpp parsetree.cpp parsedata.cpp fsmstate.cpp fsmbase.cpp \
29 fsmattach.cpp fsmmin.cpp fsmgraph.cpp fsmap.cpp \
30 rlscan.cpp rlparse.cpp inputdata.cpp common.cpp \
31 redfsm.cpp gendata.cpp \
33 cdtable.cpp cdftable.cpp cdflat.cpp \
34 cdfflat.cpp cdgoto.cpp cdfgoto.cpp \
35 cdipgoto.cpp cdsplit.cpp \
37 rubycodegen.cpp rubytable.cpp rubyftable.cpp \
38 rubyflat.cpp rubyfflat.cpp rbxgoto.cpp \
39 cscodegen.cpp cstable.cpp csftable.cpp csflat.cpp \
40 csfflat.cpp csgoto.cpp csfgoto.cpp \
41 csipgoto.cpp cssplit.cpp \
45 GEN_SRC = version.h rlscan.cpp rlparse.h rlparse.cpp \
46 xmltags.cpp xmlscan.cpp xmlparse.h
51 #*************************************
54 BUILD_PARSERS = @BUILD_PARSERS@
58 ifeq ($(EXEEXT), .exe)
62 # Get objects and dependencies from sources.
63 OBJS = $(CC_SRCS:%.cpp=%.o)
64 DEPS = $(CC_SRCS:%.cpp=.%.d)
66 # Get the version info.
72 ragel$(EXEEXT): $(GEN_SRC) $(OBJS)
73 $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
75 version.h: ../version.mk
76 echo '#define VERSION "$(VERSION)"' > version.h
77 echo '#define PUBDATE "$(PUBDATE)"' >> version.h
78 echo '#define PREFIX "$(prefix)"' >> version.h
80 ifeq ($(BUILD_PARSERS),true)
85 rlparse.cpp: rlparse.kl rlparse.kh
88 # This dependency comes from the import of the parser defines
95 xmlparse.h: xmlparse.kh
98 xmlparse.cpp: xmlparse.kl xmlparse.kh
101 xmlscan.cpp: xmlscan.rl
102 ragel -G2 -o xmlscan.cpp xmlscan.rl
104 xmltags.cpp: xmltags.gperf
105 gperf -L C++ -t $< > $@
110 @$(CXX) -M $(DEFS) $(INCS) $< > .$*.d
111 $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCS) -o $@ $<
116 ifeq ($(BUILD_PARSERS),true)
117 EXTRA_CLEAN = $(GEN_SRC)
121 rm -f tags .*.d *.o ragel $(EXTRA_CLEAN)
124 install -d $(DESTDIR)$(prefix)/bin
125 install -s ragel $(DESTDIR)$(prefix)/bin/ragel