Just discovered that $srcdir is available in the configure script for checking
[external/ragel.git] / configure.in
1 dnl 
2 dnl   Copyright 2001-2009 Adrian Thurston <thurston@complang.org>
3 dnl
4
5 dnl   This file is part of Ragel.
6 dnl  
7 dnl   Ragel is free software; you can redistribute it and/or modify
8 dnl   it under the terms of the GNU General Public License as published by
9 dnl   the Free Software Foundation; either version 2 of the License, or
10 dnl   (at your option) any later version.
11 dnl   
12 dnl   Ragel is distributed in the hope that it will be useful,
13 dnl   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl   GNU General Public License for more details.
16 dnl   
17 dnl   You should have received a copy of the GNU General Public License
18 dnl   along with Ragel; if not, write to the Free Software
19 dnl   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
20   
21 AC_INIT(ragel, 6.5)
22 PUBDATE="May 2009"
23
24 AM_INIT_AUTOMAKE
25 AC_SUBST(PUBDATE)
26 AC_CONFIG_HEADER(ragel/config.h)
27
28 dnl Choose defaults for the build_parsers and build_manual vars. If the dist
29 dnl file is present in the root then default to no, otherwise go for it.
30 AC_CHECK_FILES( $srcdir/DIST, 
31         [ build_parsers=no; build_manual=no; ], 
32         [ build_parsers=yes; build_manual=yes; ] )
33
34 dnl Set to true if the build system should generate parsers from ragel and kelbt
35 dnl sources. Set to false if generated files are included and not to be built
36 dnl (production).
37 AM_CONDITIONAL(BUILD_PARSERS, [test "x$build_parsers" = "xyes"])
38
39 dnl Set to true if the manual should be built.
40 AM_CONDITIONAL(BUILD_MANUAL, [test "x$build_manual" = "xyes"])
41
42 dnl Checks for programs.
43 AC_PROG_CC
44 AC_PROG_CXX
45 AC_CHECK_TOOL(AR, ar)
46 AC_PROG_RANLIB
47
48 # Default flags.
49 CXXFLAGS="-g"
50
51 dnl Set test on c++ compiler.
52 AC_LANG_CPLUSPLUS
53
54 dnl Check for definition of MAKE.
55 AC_PROG_MAKE_SET
56
57 if test "x$build_parsers" = "xyes"; then
58
59 dnl Check for Ragel
60 AC_CHECK_PROG(RAGEL, ragel, ragel)
61 if test -z "$RAGEL"; then
62         echo
63         echo "error: ragel is required to build the parsers"
64         echo
65         exit 1
66 fi
67
68 dnl Check for Kelbt
69 AC_CHECK_PROG(KELBT, kelbt, kelbt)
70 if test -z "$KELBT"; then
71         echo
72         echo "error: kelbt is required to build the parsers"
73         echo
74         exit 1
75 fi
76
77 fi # BUILD_PARSERS
78
79 dnl Check for the D compiler
80 AC_CHECK_PROG(GDC, gdc, gdc)
81
82 dnl Check for the Objective-C compiler
83 AC_MSG_CHECKING([for the Objective-C compiler])
84 cat > conftest.m <<EOF
85 int main() { return 0; }
86 EOF
87 GOBJC=""
88 if gcc -x objective-c conftest.m -o conftest.bin 2>/dev/null; then
89         GOBJC="gcc -x objective-c"
90         AC_MSG_RESULT([yes])
91 else
92         AC_MSG_RESULT([no])
93 fi
94 AC_SUBST(GOBJC)
95
96 dnl Check for the Java compiler.
97 AC_CHECK_PROG(JAVAC, javac, javac)
98
99 dnl Check for TXL.
100 AC_CHECK_PROG(TXL, txl, txl)
101
102 dnl Check for Ruby.
103 AC_CHECK_PROG(RUBY, ruby, ruby)
104
105 dnl Check for the C# compiler.
106 AC_CHECK_PROG(GMCS, gmcs, gmcs)
107
108 dnl write output files
109 AC_OUTPUT(
110         [
111                 Makefile ragel/Makefile aapl/Makefile 
112                 doc/Makefile doc/ragel.1
113                 contrib/Makefile
114                 test/Makefile test/runtests
115                 examples/Makefile
116         ],
117         [chmod +x test/runtests]
118 )
119
120 echo "configuration of ragel complete"