"Fossies" - the Fresh Open Source Software Archive 
Member "ragel-7.0.4/configure.ac" (15 Feb 2021, 14400 Bytes) of package /linux/misc/ragel-7.0.4.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "configure.ac":
7.0.3_vs_7.0.4.
1 dnl
2 dnl Copyright 2006-2018 Adrian Thurston <thurston@colm.net>
3 dnl
4
5 dnl Permission is hereby granted, free of charge, to any person obtaining a copy
6 dnl of this software and associated documentation files (the "Software"), to
7 dnl deal in the Software without restriction, including without limitation the
8 dnl rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9 dnl sell copies of the Software, and to permit persons to whom the Software is
10 dnl furnished to do so, subject to the following conditions:
11 dnl
12 dnl The above copyright notice and this permission notice shall be included in all
13 dnl copies or substantial portions of the Software.
14 dnl
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 dnl AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 dnl OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 dnl SOFTWARE.
22
23 AC_INIT(ragel, 7.0.4)
24 PUBDATE="February 2021"
25
26 AM_INIT_AUTOMAKE([foreign])
27
28 : ${CFLAGS="-Wall -g"}
29 : ${CXXFLAGS="-Wall -g"}
30
31 AC_CONFIG_MACRO_DIR([m4])
32
33 AC_SUBST(PUBDATE)
34 AC_CHECK_SIZEOF([int])
35 AC_CHECK_SIZEOF([long])
36 AC_CHECK_SIZEOF([void *])
37 AC_CHECK_SIZEOF([long])
38 AC_CHECK_SIZEOF([unsigned long])
39 AC_CHECK_SIZEOF([unsigned long long])
40 AC_CHECK_HEADERS([sys/mman.h sys/wait.h unistd.h])
41
42 AC_ARG_WITH(colm,
43 [AC_HELP_STRING([--with-colm], [location of colm install])],
44 [
45 COLM="$withval/bin/colm"
46 COLM_WRAP="$withval/bin/colm-wrap"
47 CPPFLAGS="-I$withval/include ${CPPFLAGS}"
48 CPPFLAGS="-I$withval/include/aapl ${CPPFLAGS}"
49 LDFLAGS="-L$withval/lib ${LDFLAGS}"
50 LIBCOLM_LA="$withval/lib/libcolm.la"
51 LIBFSM_LA="$withval/lib/libfsm.la"
52 COLM_SHARE="$withval/share"
53 ],
54 []
55 )
56
57 AC_CHECK_FILES(
58 [$COLM],
59 [],
60 [AC_ERROR([colm is required to build ragel])]
61 )
62 AC_SUBST(COLM)
63 AC_SUBST(COLM_WRAP)
64 AC_SUBST(COLM_SHARE)
65 AC_SUBST(LIBCOLM_LA)
66 AC_SUBST(LIBFSM_LA)
67
68 EXPECTED_COLM_VER=0.14.7
69 INSTALLED_COLM_VER=`$COLM -v | sed -n -e '1 {' -e 's/^.*version //' -e 's/ .*$//' -e p -e '}'`
70 if test "x$INSTALLED_COLM_VER" != "x$EXPECTED_COLM_VER"; then
71 AC_ERROR( [check colm: expected version $EXPECTED_COLM_VER, but $INSTALLED_COLM_VER is installed] )
72 fi
73
74 dnl Set to true if build system should generate parsers from ragel, kelbt, and
75 dnl gperf sources. Set to false if generated files are included and not to be
76 dnl built (production).
77 dnl AC_SUBST(BUILD_PARSERS,true)
78
79 dnl Checks for programs.
80 AC_PROG_CC
81 AC_PROG_CXX
82 AC_CHECK_TOOL(AR, ar)
83 AC_PROG_RANLIB
84 AC_PROG_LIBTOOL
85
86 SED_SUBST=["\
87 -e 's|@CXX@|${CXX}|g' \
88 -e 's|@CC@|${CC}|g' \
89 "]
90
91 SED_SUBST="$SED_SUBST -e 's|@COLM_SHARE@|${COLM_SHARE}|g'"
92
93 dnl Set test on c++ compiler.
94 AC_LANG_CPLUSPLUS
95
96 dnl Check for definition of MAKE.
97 AC_PROG_MAKE_SET
98
99 AC_ARG_ENABLE(pool-malloc,
100 AC_HELP_STRING([--enable-pool-malloc], [allocate pool objects with malloc]),
101 AC_DEFINE([POOL_MALLOC], [1], [allocate pool objects with malloc]))
102
103 AC_ARG_ENABLE(debug,
104 AC_HELP_STRING([--enable-debug], [enable debug statements]),
105 AC_DEFINE([DEBUG], [1], [enable debug statements]))
106
107 AC_CHECK_PROG([ASCIIDOC], [asciidoc], [asciidoc])
108 AC_CHECK_PROG([PYGMENTIZE], [pygmentize], [pygmentize])
109 AM_CONDITIONAL([BUILD_MANUAL], [test "x$ASCIIDOC" != x && test "x$PYGMENTIZE" != x])
110
111 dnl Choose a default for the build_manual var. If the dist file is present in
112 dnl the root then default to no, otherwise go for it.
113 AC_CHECK_FILES( [$srcdir/DIST],
114 [. $srcdir/DIST;],
115 [build_manual=yes; ] )
116
117 dnl
118 dnl Enable arg to explicitly control the building of the manual
119 dnl
120 AC_ARG_ENABLE(manual,
121 [ --enable-manual do we want to build the manual?],
122 [
123 if test "x$enableval" = "xyes"; then
124 build_manual=yes;
125 else
126 build_manual=no;
127 fi
128 ],
129 )
130
131 dnl Checks to carry out if we are building the manual.
132 if test "x$build_manual" = "xyes"; then
133 AC_CHECK_PROG(FIG2DEV, fig2dev, fig2dev)
134 if test -z "$FIG2DEV"; then
135 echo
136 echo "error: fig2dev is required to build the manual (maybe use --disable-manual)"
137 echo
138 exit 1
139 fi
140
141 AC_CHECK_PROG(PDFLATEX, pdflatex, pdflatex)
142 if test -z "$PDFLATEX"; then
143 echo
144 echo "error: pdflatex is required to build the manual (maybe use --disable-manual)"
145 echo
146 exit 1
147 fi
148 fi
149
150 dnl Set to true if the manual should be built.
151 AM_CONDITIONAL(BUILD_MANUAL, [test "x$build_manual" = "xyes"])
152
153 dnl
154 dnl Build the program? ( no means just build libfsm )
155 dnl
156 AC_ARG_ENABLE(program,
157 [AC_HELP_STRING([--enable-program], [build the program? no means libfsm only] )],
158 [
159 if test "x$enableval" = "xyes"; then
160 build_program=yes;
161 else
162 build_program=no;
163 fi
164 ],
165 [
166 build_program=yes;
167 ]
168 )
169
170 AM_CONDITIONAL([BUILD_PROGRAM], [test "x$build_program" = "xyes"])
171 AM_CONDITIONAL([WITH_RAGEL_KELBT], [test "x$RAGEL_KELBT" = "xyes"])
172
173 dnl This is from ragel, but already have one above from colm. Need to merge.
174 dnl AM_CONDITIONAL([BUILD_MANUAL], [test "x$build_manual" = "xyes"])
175
176 AC_CANONICAL_HOST()
177 AM_CONDITIONAL([LINKER_NO_UNDEFINED], [test "x$host_os" = "xlinux-gnu"])
178
179 dnl
180 dnl Testing
181 dnl
182 dnl Which installed target to test. Without this option supplied testing is
183 dnl done against what is in the source tree.
184 dnl
185 AC_ARG_WITH(subject,
186 [AC_HELP_STRING([--with-subject], [location of install tree test (defaults source tree)])],
187 [
188 SUBJ_AAPL_CPPFLAGS="-I${withval}/include/aapl"
189
190 SUBJ_COLM_BIN="${withval}/bin/colm"
191 SUBJ_COLM_CPPFLAGS="-I${withval}/include"
192 SUBJ_COLM_LDFLAGS="-L${withval}/lib -Wl,-rpath,${withval}/lib"
193
194 SUBJ_RAGEL_BIN="$withval/bin/ragel"
195 SUBJ_RAGEL_CPPFLAGS="-I$withval/include"
196 SUBJ_RAGEL_LDFLAGS="-L$withval/lib -Wl,-rpath,${withval}/lib"
197 SUBJ_RAGEL_LM="${withval}/share"
198
199 SUBJ_RAGEL_C_BIN="$withval/bin/ragel-c"
200 SUBJ_RAGEL_D_BIN="$withval/bin/ragel-d"
201 SUBJ_RAGEL_JAVA_BIN="$withval/bin/ragel-java"
202 SUBJ_RAGEL_RUBY_BIN="$withval/bin/ragel-ruby"
203 SUBJ_RAGEL_CSHARP_BIN="$withval/bin/ragel-csharp"
204 SUBJ_RAGEL_GO_BIN="$withval/bin/ragel-go"
205 SUBJ_RAGEL_OCAML_BIN="$withval/bin/ragel-ocaml"
206 SUBJ_RAGEL_ASM_BIN="$withval/bin/ragel-asm"
207 SUBJ_RAGEL_RUST_BIN="$withval/bin/ragel-rust"
208 SUBJ_RAGEL_CRACK_BIN="$withval/bin/ragel-crack"
209 SUBJ_RAGEL_JULIA_BIN="$withval/bin/ragel-julia"
210 ],
211 [
212 SUBJ_AAPL_CPPFLAGS='-I$(abs_top_builddir)/aapl'
213
214 SUBJ_COLM_BIN='$(abs_top_builddir)/colm/colm'
215 SUBJ_COLM_CPPFLAGS='-I$(abs_top_builddir)/colm/include'
216 SUBJ_COLM_LDFLAGS='-L$(abs_top_builddir)/colm/.libs -Wl,-rpath,${abs_top_builddir}/colm/.libs'
217
218 SUBJ_RAGEL_BIN='$(abs_top_builddir)/src/ragel'
219 SUBJ_RAGEL_CPPFLAGS='-I$(abs_top_builddir)/src/include -I$(abs_top_builddir)/aapl'
220 SUBJ_RAGEL_LDFLAGS='-L$(abs_top_builddir)/src/.libs -Wl,-rpath,$(abs_top_builddir)/src/.libs'
221 SUBJ_RAGEL_LM='$(abs_top_builddir)/src'
222
223 SUBJ_RAGEL_C_BIN='$(abs_top_builddir)/src/host-c/ragel-c'
224 SUBJ_RAGEL_D_BIN='$(abs_top_builddir)/src/host-d/ragel-d'
225 SUBJ_RAGEL_JAVA_BIN='$(abs_top_builddir)/src/host-java/ragel-java'
226 SUBJ_RAGEL_RUBY_BIN='$(abs_top_builddir)/src/host-ruby/ragel-ruby'
227 SUBJ_RAGEL_CSHARP_BIN='$(abs_top_builddir)/src/host-csharp/ragel-csharp'
228 SUBJ_RAGEL_GO_BIN='$(abs_top_builddir)/src/host-go/ragel-go'
229 SUBJ_RAGEL_OCAML_BIN='$(abs_top_builddir)/src/host-ocaml/ragel-ocaml'
230 SUBJ_RAGEL_ASM_BIN='$(abs_top_builddir)/src/host-asm/ragel-asm'
231 SUBJ_RAGEL_RUST_BIN='$(abs_top_builddir)/src/host-rust/ragel-rust'
232 SUBJ_RAGEL_CRACK_BIN='$(abs_top_builddir)/src/host-crack/ragel-crack'
233 SUBJ_RAGEL_JULIA_BIN='$(abs_top_builddir)/src/host-julia/ragel-julia'
234 ]
235 )
236
237 SED_SUBST="$SED_SUBST -e 's|@SUBJ_COLM_BIN@|${SUBJ_COLM_BIN}|g'"
238 SED_SUBST="$SED_SUBST -e 's|@SUBJ_COLM_CPPFLAGS@|${SUBJ_COLM_CPPFLAGS}|g'"
239 SED_SUBST="$SED_SUBST -e 's|@SUBJ_COLM_LDFLAGS@|${SUBJ_COLM_LDFLAGS}|g'"
240 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_BIN@|${SUBJ_RAGEL_BIN}|g'"
241 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_CPPFLAGS@|${SUBJ_RAGEL_CPPFLAGS}|g'"
242 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_LDFLAGS@|${SUBJ_RAGEL_LDFLAGS}|g'"
243 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_LM@|${SUBJ_RAGEL_LM}|g'"
244 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_C_BIN@|${SUBJ_RAGEL_C_BIN}|g'"
245 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_D_BIN@|${SUBJ_RAGEL_D_BIN}|g'"
246 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_JAVA_BIN@|${SUBJ_RAGEL_JAVA_BIN}|g'"
247 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_RUBY_BIN@|${SUBJ_RAGEL_RUBY_BIN}|g'"
248 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_CSHARP_BIN@|${SUBJ_RAGEL_CSHARP_BIN}|g'"
249 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_GO_BIN@|${SUBJ_RAGEL_GO_BIN}|g'"
250 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_OCAML_BIN@|${SUBJ_RAGEL_OCAML_BIN}|g'"
251 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_ASM_BIN@|${SUBJ_RAGEL_ASM_BIN}|g'"
252 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_RUST_BIN@|${SUBJ_RAGEL_RUST_BIN}|g'"
253 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_CRACK_BIN@|${SUBJ_RAGEL_CRACK_BIN}|g'"
254 SED_SUBST="$SED_SUBST -e 's|@SUBJ_RAGEL_JULIA_BIN@|${SUBJ_RAGEL_JULIA_BIN}|g'"
255
256 AC_SUBST(SUBJ_AAPL_CPPFLAGS)
257
258 AC_SUBST(SUBJ_COLM_BIN)
259 AC_SUBST(SUBJ_COLM_CPPFLAGS)
260 AC_SUBST(SUBJ_COLM_LDFLAGS)
261
262 AC_SUBST(SUBJ_RAGEL_BIN)
263 AC_SUBST(SUBJ_RAGEL_CPPFLAGS)
264 AC_SUBST(SUBJ_RAGEL_LDFLAGS)
265 AC_SUBST(SUBJ_RAGEL_LM)
266
267 dnl
268 dnl Installed programs to test in
269 dnl
270
271 AC_PATH_PROG([D_BIN], [gdc-8])
272 if test "x$D_BIN" = x; then
273 AC_PATH_PROG([D_BIN], [gdc-7])
274 if test "x$D_BIN" = x; then
275 AC_PATH_PROG([D_BIN], [gdc-6])
276 if test "x$D_BIN" = x; then
277 AC_PATH_PROG([D_BIN], [gdc-5])
278 fi
279 fi
280 fi
281
282 AC_PATH_PROG([JAVAC_BIN], [javac])
283
284 dnl
285 dnl Java test cases are now requring a large virtual address space. On systems
286 dnl where this is limited by ulimit, java will fail to run.
287 dnl
288
289 if test "x$JAVAC_BIN" != x; then
290 echo 'class conftest { public static void main( String[] args ) { } }' > conftest.java
291 echo -n "checking if javac is able to compile programs ... "
292 if sh -c "$JAVAC_BIN conftest.java" >>config.log 2>&1; then
293 echo "yes"
294 else
295 echo "no"
296 JAVAC_BIN=""
297 fi
298 rm -f conftest.java conftest.class
299 fi
300
301 AC_PATH_PROG([RUBY_BIN], [ruby])
302 AC_PATH_PROG([CSHARP_BIN], [mcs])
303 AC_PATH_PROG([GO_BIN], [go])
304 AC_PATH_PROG([OCAML_BIN], [ocaml])
305 AC_PATH_PROG([RUST_BIN], [rustc])
306 AC_PATH_PROG([JULIA_BIN], [julia])
307
308 dnl
309 dnl Julia requires a large virtual address space. On systems where this is
310 dnl limited by ulimit, julia will fail to run.
311 dnl
312
313 if test "x$JULIA_BIN" != x; then
314 echo 'println( "can run julia programs" );' > conftest.jl
315 echo -n "checking if julia is able to run programs ... "
316 if sh -c "$JULIA_BIN conftest.jl" >>config.log 2>&1; then
317 echo "yes"
318 else
319 echo "no"
320 JULIA_BIN=""
321 fi
322 rm -f conftest.jl
323 fi
324
325 dnl We can run julia, now make sure we have 1.0
326 if test "x$JULIA_BIN" != x; then
327 echo -n "checking if julia is version 1.0 or later ... "
328
329 dnl We assume the form "julia version X.X.X"
330 dnl 1. everything before the version number.
331 dnl 2. Remove trailing version.
332 dnl 3. Verify it is plain number greater than 1.
333 dnl Any failure comes out as empty string. Note the sed command is wrapped
334 dnl in [] so autotools do not interpret anything in it.
335 JULIA1="`$JULIA_BIN -v | sed ['s/[A-Za-z ]\+//g; s/\.[0-9\.]*//; /^[1-9][0-9]*/!d;']`"
336 if test "x$JULIA1" != x; then
337 echo "yes"
338 else
339 JULIA_BIN=""
340 echo "no"
341 fi
342 fi
343
344 AC_PATH_PROG([GNUSTEP_CONFIG], [gnustep-config])
345
346 dnl
347 dnl The ASM tests have been based off of sources that are non-relocatable
348 dnl These won't assemble on some systems (with the right architecture). Check
349 dnl our specific flavour of ASM now so we can avoid some test failures.
350 dnl
351
352 ASM_BIN=$CC
353
354 cat <<\EOF > conftest.s
355 .section .rodata
356 .L_works:
357 .string "works"
358
359 .text
360 .globl main
361 main:
362 pushq %rbp
363 movq %rsp, %rbp
364 pushq %rdi
365 movq $.L_works, %rdi
366 call puts
367 popq %rdi
368 mov $0, %rax
369 ret
370 EOF
371
372 echo -n "checking if ragel ASM tests will build ... "
373 if sh -c "$ASM_BIN -o conftest.bin conftest.s" >>config.log 2>&1; then
374 echo "yes"
375 else
376 echo "no"
377 ASM_BIN=""
378 fi
379 rm -f conftest.s
380
381 SED_SUBST="$SED_SUBST -e 's|@D_BIN@|${D_BIN}|g'"
382 SED_SUBST="$SED_SUBST -e 's|@JAVAC_BIN@|${JAVAC_BIN}|g'"
383 SED_SUBST="$SED_SUBST -e 's|@RUBY_BIN@|${RUBY_BIN}|g'"
384 SED_SUBST="$SED_SUBST -e 's|@CSHARP_BIN@|${CSHARP_BIN}|g'"
385 SED_SUBST="$SED_SUBST -e 's|@GO_BIN@|${GO_BIN}|g'"
386 SED_SUBST="$SED_SUBST -e 's|@OCAML_BIN@|${OCAML_BIN}|g'"
387 SED_SUBST="$SED_SUBST -e 's|@RUST_BIN@|${RUST_BIN}|g'"
388 SED_SUBST="$SED_SUBST -e 's|@JULIA_BIN@|${JULIA_BIN}|g'"
389 SED_SUBST="$SED_SUBST -e 's|@GNUSTEP_CONFIG@|${GNUSTEP_CONFIG}|g'"
390 SED_SUBST="$SED_SUBST -e 's|@ASM_BIN@|${ASM_BIN}|g'"
391
392 AC_ARG_WITH(crack,
393 [AC_HELP_STRING([--with-crack], [location of crack install])],
394 [CRACK_BIN="$withval/bin/crack"],
395 [AC_PATH_PROG([CRACK_BIN], [crack])]
396 )
397 SED_SUBST="$SED_SUBST -e 's|@CRACK_BIN@|${CRACK_BIN}|g'"
398
399 AC_SUBST(CRACK_BIN)
400
401 dnl Skip bootstrap process and build using an existing version of colm. Allows us to
402 dnl break colm without breaking the build of colm.
403 dnl
404 dnl WARNING: DO NOT USE FOR PRODUCTION BUILD
405 dnl
406 dnl Only use this when you need to in order to get colm to build. Using an external
407 dnl colm program (and library) has the consequence that parsing of patterns and
408 dnl constructors in colm programs will also use this external library, since there
409 dnl can only be one set of colm functions linked. It's not possible to use the
410 dnl external parser for parsing the colm program, then use the internal parser for
411 dnl the patterns.
412 AC_ARG_WITH(colm,
413 [AC_HELP_STRING([--with-colm], [prefix of colm install to build with, instead of bootstrapping])],
414 [
415 EXTERNAL_COLM="$withval"
416 EXTERNAL_INC="-I$withval/include"
417 EXTERNAL_LIBS="-L$withval/lib"
418 AC_CHECK_FILES(["$EXTERNAL_COLM/bin/colm"], [],
419 [AC_ERROR(["could not find $EXTERNAL_COLM/bin/colm"])])
420 ],
421 []
422 )
423
424 AM_CONDITIONAL([EXTERNAL_COLM], [test "x$EXTERNAL_COLM" != x])
425 AC_SUBST(EXTERNAL_COLM)
426 AC_SUBST(EXTERNAL_INC)
427 AC_SUBST(EXTERNAL_LIBS)
428
429 mkdir -p src/include
430 test -e src/include/ragel || ln -s .. src/include/ragel
431
432 dnl
433 dnl Wrap up.
434 dnl
435
436 AC_SUBST(SED_SUBST)
437 AC_CONFIG_HEADERS([src/config.h])
438 AC_OUTPUT([
439 Makefile
440 src/Makefile
441 src/host-ruby/Makefile
442 src/host-asm/Makefile
443 src/host-julia/Makefile
444 src/host-ocaml/Makefile
445 src/host-c/Makefile
446 src/host-d/Makefile
447 src/host-csharp/Makefile
448 src/host-go/Makefile
449 src/host-java/Makefile
450 src/host-rust/Makefile
451 src/host-crack/Makefile
452 src/host-js/Makefile
453 test/Makefile
454 test/ragel.d/Makefile
455 doc/Makefile
456 doc/ragel/Makefile
457 ])
458
459 echo "configuration of colm complete"