Fixed a problem reading hex numbers that have the high bit set when the
[external/ragel.git] / ragel / Makefile.in
1 #
2 #   Copyright 2001-2008 Adrian Thurston <thurston@complang.org>
3 #
4
5 #   This file is part of Ragel.
6 #
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.
11 #
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.
16 #
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 
20
21 INCS += -I../aapl
22 DEFS +=
23
24 CXXFLAGS += -g -Wall
25 LDFLAGS +=
26
27 CC_SRCS = \
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 \
32         cdcodegen.cpp \
33         cdtable.cpp cdftable.cpp cdflat.cpp \
34         cdfflat.cpp cdgoto.cpp cdfgoto.cpp \
35         cdipgoto.cpp cdsplit.cpp  \
36         javacodegen.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 \
42         dotcodegen.cpp \
43         xmlcodegen.cpp \
44
45 GEN_SRC = version.h rlscan.cpp rlparse.h rlparse.cpp \
46         xmltags.cpp xmlscan.cpp xmlparse.h
47
48 LIBS =
49 MINGW_LIBS = -lpsapi
50
51 #*************************************
52
53 prefix = @prefix@
54 BUILD_PARSERS = @BUILD_PARSERS@
55 EXEEXT = @EXEEXT@
56 CXX = @CXX@
57
58 ifeq ($(EXEEXT), .exe)
59 LIBS += $(MINGW_LIBS)
60 endif
61
62 # Get objects and dependencies from sources.
63 OBJS = $(CC_SRCS:%.cpp=%.o)
64 DEPS = $(CC_SRCS:%.cpp=.%.d)
65
66 # Get the version info.
67 include ../version.mk
68
69 # Rules.
70 all: ragel$(EXEEXT)
71
72 ragel$(EXEEXT): $(GEN_SRC) $(OBJS)
73         $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
74
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
79
80 ifeq ($(BUILD_PARSERS),true)
81
82 rlparse.h: rlparse.kh
83         kelbt -o $@ $<
84
85 rlparse.cpp: rlparse.kl rlparse.kh
86         kelbt -o $@ $<
87
88 # This dependency comes from the import of the parser defines
89 # into the scanner.
90 rlscan.cpp: rlparse.h
91
92 rlscan.cpp: rlscan.rl
93         ragel -G2 -o $@ $<
94
95 xmlparse.h: xmlparse.kh
96         kelbt -o $@ $<
97
98 xmlparse.cpp: xmlparse.kl xmlparse.kh
99         kelbt -o $@ $<
100
101 xmlscan.cpp: xmlscan.rl
102         ragel -G2 -o xmlscan.cpp xmlscan.rl
103
104 xmltags.cpp: xmltags.gperf
105         gperf -L C++ -t $< > $@
106
107 endif
108
109 %.o: %.cpp
110         @$(CXX) -M $(DEFS) $(INCS) $< > .$*.d
111         $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCS) -o $@ $<
112
113 distclean: clean
114         rm -f Makefile 
115
116 ifeq ($(BUILD_PARSERS),true)
117 EXTRA_CLEAN = $(GEN_SRC)
118 endif
119
120 clean:
121         rm -f tags .*.d *.o ragel $(EXTRA_CLEAN)
122
123 install: all
124         install -d $(DESTDIR)$(prefix)/bin
125         install -s ragel $(DESTDIR)$(prefix)/bin/ragel
126
127 -include $(DEPS)