2 # do *not* add CXXFLAGS here, add them in configure.ac
3 AM_CXXFLAGS = $(CXXFLAGSDEFAULT)
5 AM_CXXFLAGS += -DRE2C_DEBUG
15 src/codegen/bitmap.h \
18 src/codegen/input_api.h \
20 src/codegen/output.h \
26 src/dfa/closure_leftmost.h \
27 src/dfa/closure_posix.h \
28 src/dfa/determinization.h \
30 src/dfa/posix_precedence.h \
31 src/dfa/tag_history.h \
32 src/dfa/tagver_table.h \
36 src/encoding/ebcdic/ebcdic.h \
37 src/encoding/ebcdic/ebcdic_regexp.h \
39 src/encoding/range_suffix.h \
40 src/encoding/utf8/utf8.h \
41 src/encoding/utf8/utf8_regexp.h \
42 src/encoding/utf16/utf16_regexp.h \
43 src/encoding/utf16/utf16.h \
46 src/msg/ver_to_vernum.h \
48 src/regexp/empty_class_policy.h \
54 src/skeleton/skeleton.h \
59 src/parse/unescape.h \
62 src/util/attribute.h \
63 src/util/c99_stdint.h \
65 src/util/fixed_allocator.h \
66 src/util/forbid_copy.h \
67 src/util/free_list.h \
70 src/util/local_increment.h \
73 src/util/s_to_n32_unsafe.h \
74 src/util/slab_allocator.h \
75 src/util/smart_ptr.h \
76 src/util/static_assert.h \
77 src/util/string_utils.h \
78 src/util/temp_file.h \
80 src/util/uniq_vector.h \
83 src/codegen/bitmap.cc \
84 src/codegen/emit_action.cc \
85 src/codegen/emit_dfa.cc \
86 src/codegen/label.cc \
87 src/codegen/go_construct.cc \
88 src/codegen/go_destruct.cc \
89 src/codegen/go_emit.cc \
90 src/codegen/go_used_labels.cc \
91 src/codegen/input_api.cc \
92 src/codegen/output.cc \
93 src/codegen/print.cc \
95 src/nfa/estimate_size.cc \
96 src/nfa/re_to_nfa.cc \
99 src/debug/dump_adfa.cc \
100 src/debug/dump_cfg.cc \
101 src/debug/dump_dfa.cc \
102 src/debug/dump_interf.cc \
103 src/debug/dump_nfa.cc \
108 src/cfg/interfere.cc \
109 src/cfg/liveanal.cc \
110 src/cfg/normalize.cc \
111 src/cfg/optimize.cc \
113 src/cfg/varalloc.cc \
115 src/dfa/dead_rules.cc \
116 src/dfa/determinization.cc \
117 src/dfa/fallback_tags.cc \
118 src/dfa/fillpoints.cc \
119 src/dfa/find_state.cc \
120 src/dfa/minimization.cc \
121 src/dfa/tagver_table.cc \
123 src/encoding/ebcdic/ebcdic_regexp.cc \
124 src/encoding/enc.cc \
125 src/encoding/range_suffix.cc \
126 src/encoding/utf8/utf8_regexp.cc \
127 src/encoding/utf8/utf8.cc \
128 src/encoding/utf16/utf16_regexp.cc \
129 src/encoding/utf16/utf16.cc \
132 src/regexp/ast_to_re.cc \
133 src/regexp/default_tags.cc \
134 src/regexp/fixed_tags.cc \
135 src/regexp/nullable.cc \
137 src/regexp/split_charset.cc \
140 src/skeleton/control_flow.cc \
141 src/skeleton/generate_code.cc \
142 src/skeleton/generate_data.cc \
143 src/skeleton/maxpath.cc \
144 src/skeleton/skeleton.cc \
147 src/parse/normalize.cc \
148 src/parse/scanner.cc \
149 src/parse/unescape.cc \
150 src/parse/validate.cc \
151 src/util/get_dir.cc \
152 src/util/s_to_n32_unsafe.cc \
153 src/util/temp_file.cc \
160 # autogenerated sources
161 re2c_GEN_HELP = src/msg/help.cc
162 re2c_GEN_LEX = src/parse/lex.cc
163 re2c_GEN_PARSER = src/parse/parser.cc
164 re2c_GEN_PARSER_HDR = src/parse/parser.h
165 re2c_GEN_VER_TO_VERNUM = src/msg/ver_to_vernum.cc
170 $(re2c_GEN_VER_TO_VERNUM) \
171 src/parse/lex_conf.cc \
172 src/options/parse_opts.cc
175 $(re2c_GEN_PARSER_HDR)
179 nodist_re2c_SOURCES = $(re2c_GEN)
181 # custom rules create headers and must go before normal rules
182 BUILT_SOURCES = $(re2c_GEN_SRC)
185 re2c_BOOT_PARSER = bootstrap/src/parse/parser.cc
186 re2c_BOOT_PARSER_HDR = bootstrap/src/parse/parser.h
187 re2c_BOOT_DOC = bootstrap/doc/re2c.1
188 re2c_BOOT_HELP = bootstrap/src/msg/help.cc
192 $(re2c_BOOT_PARSER) \
193 $(re2c_BOOT_PARSER_HDR) \
194 bootstrap/src/parse/lex.cc \
195 bootstrap/src/parse/lex.h \
196 bootstrap/src/parse/lex_conf.cc \
197 bootstrap/src/options/parse_opts.cc \
198 bootstrap/src/msg/ver_to_vernum.cc
201 re2c_CUSTOM_PARSER = src/parse/parser.ypp
202 re2c_CUSTOM_HELP = doc/help.rst
204 $(re2c_CUSTOM_PARSER) \
205 $(re2c_CUSTOM_HELP) \
207 src/parse/lex_conf.re \
208 src/options/parse_opts.re \
209 src/msg/ver_to_vernum.re
212 re2c_SRC_DOC = doc/manpage.rst
214 doc/manual/contributors.rst_ \
215 doc/manual/syntax/rules.rst_ \
216 doc/manual/syntax/interface.rst_ \
217 doc/manual/syntax/configurations.rst_ \
218 doc/manual/syntax/named_definitions.rst_ \
219 doc/manual/syntax/regular_expressions.rst_ \
220 doc/manual/warnings/warnings_list.rst \
221 doc/manual/warnings/warnings_general.rst \
222 doc/manual/features/generic_api/generic_api.rst_ \
223 doc/manual/features/conditions/conditions.rst_ \
224 doc/manual/features/state/state.rst_ \
225 doc/manual/features/submatch/submatch.rst_ \
226 doc/manual/features/encodings/encodings.rst_ \
227 doc/manual/options/options_list.rst
234 $(re2c_SRC_DOC_EXT) \
251 $(AM_V_at)$(MKDIR_P) $(@D)
252 $(AM_V_GEN) if test -x $(RE2C); \
254 $(top_builddir)/$(RE2C) $(RE2CFLAGS) -o $@ $< && \
255 cp $(@:cc=[ch]*) $(top_srcdir)/bootstrap/$(@D); \
257 cp $(top_srcdir)/bootstrap/$(@:cc=*) $(@D); \
260 # cannot update bootstrap with distcheck (it makes srcdir readonly),
261 # so we update bootstrap only on incremental build (if re2c binary exists)
263 $(AM_V_at)$(MKDIR_P) $(@D)
264 $(AM_V_GEN) if test $(BISON) = "no"; \
266 cp $(top_srcdir)/bootstrap/$(@:cc=*) $(@D); \
268 $(BISON) --output=$@ --defines=$(@:cc=h) $< && \
269 if test -x $(RE2C); then \
270 cp $@ $(@:cc=h) $(top_srcdir)/bootstrap/$(@D); \
274 # lexer depends on bison-generated header
275 $(re2c_GEN_LEX): $(re2c_GEN_PARSER)
277 # rebuild all re2c sources using newly built re2c
285 docs: $(DOC) $(re2c_GEN_HELP)
286 $(DOC): $(re2c_SRC_DOC) $(re2c_SRC_DOC_EXT)
287 $(AM_V_at)$(MKDIR_P) $(@D)
288 $(RST2MAN) $(top_builddir)/$(re2c_SRC_DOC) > $@
289 cp $@ $(top_srcdir)/$(re2c_BOOT_DOC)
290 $(re2c_GEN_HELP): $(re2c_CUSTOM_HELP)
291 $(AM_V_at)$(MKDIR_P) $(@D)
292 $(RST2MAN) $(top_builddir)/$(re2c_CUSTOM_HELP) > $@.1
293 $(top_srcdir)/genhelp.sh $@.1 $@
294 cp $@ $(top_srcdir)/$(re2c_BOOT_HELP)
296 docs: $(DOC) $(re2c_GEN_HELP)
297 @echo "Reconfigure to rebuild docs: ./configure --enable-docs"
298 $(DOC): $(re2c_BOOT_DOC)
299 $(AM_V_at)$(MKDIR_P) $(@D)
300 cp $(top_srcdir)/$(re2c_BOOT_DOC) $@
301 $(re2c_GEN_HELP): $(re2c_BOOT_HELP)
302 $(AM_V_at)$(MKDIR_P) $(@D)
303 cp $(top_srcdir)/$(re2c_BOOT_HELP) $@
306 all-local: docs $(re2c_BOOT_PARSER)
309 re2c_TESTSUITE = run_tests.sh
311 tests: all $(re2c_TESTSUITE)
312 $(top_builddir)/$(re2c_TESTSUITE)
314 vtests: all $(re2c_TESTSUITE)
315 $(top_builddir)/$(re2c_TESTSUITE) --valgrind
317 wtests: all $(re2c_TESTSUITE)
318 $(top_builddir)/$(re2c_TESTSUITE) --wine -j1
320 re2c_test_range_SOURCES = \
321 src/test/range/test-impl.h \
322 src/test/range/test.cc \
323 src/test/range/test.h \
326 src/util/static_assert.h
328 re2c_test_s_to_n32_unsafe_SOURCES = \
329 src/test/s_to_n32_unsafe/test.cc \
330 src/util/s_to_n32_unsafe.cc
332 re2c_test_ver_to_vernum_SOURCES = \
333 src/test/ver_to_vernum/test.cc \
334 $(re2c_GEN_VER_TO_VERNUM)
338 re2c_test_s_to_n32_unsafe \
339 re2c_test_ver_to_vernum
345 # libraries go here (in included .am files)
347 ACLOCAL_AMFLAGS = -I m4
349 include $(top_srcdir)/Makefile.lib.am