blob: b1ab0a7c43a60a25935871c211ba7448f2fe8835 [file] [log] [blame]
David Reissfeab7732009-03-30 22:52:44 +00001#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
T Jake Luciani03ec1e42011-01-27 02:53:57 +000020AC_PREREQ(2.65)
Marc Slemkob09f5882006-08-23 22:03:34 +000021
Bryan Duxburyc2165562011-01-07 18:45:29 +000022AC_INIT([thrift], [0.7.0-dev])
Marc Slemkob09f5882006-08-23 22:03:34 +000023
24AC_CONFIG_AUX_DIR([.])
25
26AM_INIT_AUTOMAKE
27
David Reissd6832192007-09-05 00:47:32 +000028AC_ARG_VAR([PY_PREFIX], [Prefix for installing Python modules.
29 (Normal --prefix is ignored for Python because
30 Python has different conventions.)
31 Default = "/usr"])
David Reisscdd6f3c2008-03-04 21:10:29 +000032AS_IF([test "x$PY_PREFIX" = x], [PY_PREFIX="/usr"])
David Reissd6832192007-09-05 00:47:32 +000033
David Reissf0c21a72008-07-11 01:26:16 +000034AC_ARG_VAR([JAVA_PREFIX], [Prefix for installing the Java lib jar.
35 (Normal --prefix is ignored for Java because
36 Java has different conevntions.)
37 Default = "/usr/local/lib"])
38AS_IF([test "x$JAVA_PREFIX" = x], [JAVA_PREFIX="/usr/local/lib"])
David Reiss832b2622007-12-28 18:25:33 +000039
Bryan Duxbury3f0b5262010-05-12 21:31:58 +000040AC_ARG_VAR([RUBY_PREFIX], [Prefix for installing Ruby modules.
41 (Normal --prefix is ignored for Ruby because
42 Ruby has different conventions.)
43 Default = none, let ruby setup decide])
44
Bryan Duxbury6a681872010-05-02 22:39:31 +000045AC_ARG_VAR([PHP_PREFIX], [Prefix for installing PHP modules.
46 (Normal --prefix is ignored for PHP because
47 PHP has different conventions.)
48 Default = "/usr/lib/php"])
49AS_IF([test "x$PHP_PREFIX" = x], [PHP_PREFIX="/usr/lib/php"])
50
Bryan Duxbury89200e12010-08-25 17:09:02 +000051AC_ARG_VAR([PHP_CONFIG_PREFIX],
52 [Prefix for installing PHP extension module .ini file.
53 (Normal --prefix is ignored for PHP because PHP has
54 different conventions.)
55 Default = "/etc/php.d"])
56AS_IF([test "x$PHP_CONFIG_PREFIX" = x], [PHP_CONFIG_PREFIX="/etc/php.d"])
57
David Reissc07057e2010-06-11 17:57:32 +000058AC_ARG_VAR([PERL_PREFIX], [Prefix for installing Perl modules.
59 (Normal --prefix is ignored for Perl because
60 Perl has different conventions.)
61 Default = "/usr/local/lib"])
62AS_IF([test "x$PERL_PREFIX" = x], [PERL_PREFIX="/usr/local"])
63
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +000064AC_ARG_VAR([CABAL_CONFIGURE_FLAGS],
65 [Extra flags to pass to cabal: "cabal Setup.lhs configure $CABAL_CONFIGURE_FLAGS".
66 (Typically used to set --user or force --global.)])
67
68AC_SUBST(CABAL_CONFIGURE_FLAGS)
69
David Reiss832b2622007-12-28 18:25:33 +000070AC_PROG_CC
71AC_PROG_CPP
72AC_PROG_CXX
73AC_PROG_INSTALL
74AC_PROG_LIBTOOL
75AC_PROG_MAKE_SET
76AC_PROG_YACC
77AC_PROG_LEX
78AM_PROG_LEX
David Reiss7ed4b982008-02-11 23:24:47 +000079AC_PROG_LN_S
80AC_PROG_MKDIR_P
David Reiss832b2622007-12-28 18:25:33 +000081
82AC_LANG([C++])
David Reiss832b2622007-12-28 18:25:33 +000083
David Reissea4c9812010-08-31 16:51:21 +000084AX_THRIFT_LIB(cpp, [C++], yes)
85have_cpp=no
86if test "$with_cpp" = "yes"; then
David Reissef5e81b2010-08-31 16:51:28 +000087 AX_BOOST_BASE([1.33.1])
88 if test "x$succeeded" == "xyes" ; then
89 have_cpp="yes"
90 fi
David Reiss5cc3ba82010-08-31 16:51:20 +000091
David Reissea4c9812010-08-31 16:51:21 +000092 AX_LIB_EVENT([1.0])
93 have_libevent=$success
David Reiss832b2622007-12-28 18:25:33 +000094
David Reissea4c9812010-08-31 16:51:21 +000095 AX_LIB_ZLIB([1.2.3])
96 have_zlib=$success
97fi
98AM_CONDITIONAL([WITH_CPP], [test "$have_cpp" = "yes"])
99AM_CONDITIONAL([AMX_HAVE_LIBEVENT], [test "$have_libevent" = "yes"])
100AM_CONDITIONAL([AMX_HAVE_ZLIB], [test "$have_zlib" = "yes"])
David Reiss832b2622007-12-28 18:25:33 +0000101
Roger Meier213a6642010-10-27 12:30:11 +0000102AX_THRIFT_LIB(c_glib, [C (GLib)], no)
103if test "$with_c_glib" = "yes"; then
104 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no)
105 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, have_gobject2=no)
106 if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then
107 have_c_glib="yes"
108 fi
109fi
110AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" -a "$have_gobject2" = "yes"])
111
David Reiss520b5ee2008-03-02 07:00:26 +0000112AX_THRIFT_LIB(csharp, [C#], yes)
113if test "$with_csharp" = "yes"; then
David Reissd831a212009-02-13 03:09:52 +0000114 PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no)
115 PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no)
David Reiss5cc3ba82010-08-31 16:51:20 +0000116 if test "$have_mono" = "yes" ; then
117 have_csharp="yes"
118 fi
David Reiss520b5ee2008-03-02 07:00:26 +0000119fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000120AM_CONDITIONAL(WITH_MONO, [test "$have_csharp" = "yes"])
David Reissd831a212009-02-13 03:09:52 +0000121AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"])
David Reiss1fdb5922008-02-06 22:10:12 +0000122
David Reiss62d39812008-03-02 07:00:22 +0000123AX_THRIFT_LIB(java, [Java], yes)
124if test "$with_java" = "yes"; then
David Reissd9cdf422009-03-13 21:25:29 +0000125 AX_JAVAC_AND_JAVA
Bryan Duxbury38bab122010-08-12 00:27:14 +0000126 AC_PATH_PROG([ANT], [ant])
Bryan Duxburyc27cda52009-08-14 20:04:15 +0000127 AX_CHECK_JAVA_CLASS(org.slf4j.Logger)
128 have_slf4j="$success"
129 AX_CHECK_JAVA_CLASS(org.slf4j.impl.SimpleLogger)
130 have_slf4j_simple="$success"
David Reissfdfcebd2009-05-22 19:50:29 +0000131 AX_CHECK_JAVA_CLASS(org.apache.commons.lang.builder.HashCodeBuilder)
132 have_hashcode="$success"
Bryan Duxburyc27cda52009-08-14 20:04:15 +0000133 if test "x$have_slf4j_simple" = "xyes" && test "x$have_slf4j" = "xyes" && test "x$have_hashcode" = "xyes" ; then
David Reiss4ca0c8e2009-05-12 23:16:55 +0000134 ANT_FLAGS="$ANT_FLAGS -Dnoivy="
135 fi
David Reissfff84d12009-05-22 19:50:33 +0000136 AC_SUBST(CLASSPATH)
David Reiss4ca0c8e2009-05-12 23:16:55 +0000137 AC_SUBST(ANT_FLAGS)
David Reiss5cc3ba82010-08-31 16:51:20 +0000138 if test "x$JAVAC" != "x" && test "x$JAVAC" != "x" && test "x$ANT" != "x" ; then
139 have_java="yes"
140 fi
David Reiss62d39812008-03-02 07:00:22 +0000141fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000142AM_CONDITIONAL([WITH_JAVA], [test "$have_java" = "yes"])
David Reiss1fdb5922008-02-06 22:10:12 +0000143
Christopher Pirob6f18c22008-03-04 07:09:12 +0000144AX_THRIFT_LIB(erlang, [Erlang], yes)
145if test "$with_erlang" = "yes"; then
David Reiss9e2fd792010-05-18 16:52:48 +0000146 AC_ERLANG_PATH_ERL
147 AC_ERLANG_PATH_ERLC
David Reiss31e1b6e2010-08-24 20:45:24 +0000148 if test -n "$ERLC" ; then
149 AC_ERLANG_SUBST_LIB_DIR
150 # Install into the detected Erlang directory instead of $libdir/erlang/lib
151 ERLANG_INSTALL_LIB_DIR="$ERLANG_LIB_DIR"
152 AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
153 fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000154 if test -n "$ERL" -a -n "$ERLC" ; then
155 have_erlang="yes"
156 fi
Christopher Pirob6f18c22008-03-04 07:09:12 +0000157fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000158AM_CONDITIONAL(WITH_ERLANG, [test "$have_erlang" = "yes"])
Christopher Pirob6f18c22008-03-04 07:09:12 +0000159
David Reiss5cc3ba82010-08-31 16:51:20 +0000160AX_THRIFT_LIB(python, [Python], yes)
161if test "$with_python" = "yes"; then
David Reiss1a140912008-06-11 01:16:37 +0000162 AM_PATH_PYTHON(2.4,, :)
David Reiss5cc3ba82010-08-31 16:51:20 +0000163 if test "x$PYTHON" != "x" && test "x$PYTHON" != "x:" ; then
164 have_python="yes"
165 fi
David Reiss1a140912008-06-11 01:16:37 +0000166fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000167AM_CONDITIONAL(WITH_PYTHON, [test "$have_python" = "yes"])
David Reiss1a140912008-06-11 01:16:37 +0000168
Roger Meier50e43492010-10-08 17:46:06 +0000169AC_PATH_PROG([TRIAL], [trial])
170
T Jake Luciani1952e542009-02-01 04:47:30 +0000171AX_THRIFT_LIB(perl, [Perl], yes)
172if test "$with_perl" = "yes"; then
173 AC_PATH_PROG([PERL], [perl])
David Reissdcc7e9b2010-08-31 16:51:22 +0000174 if test -n "$PERL" ; then
175 AC_PROG_PERL_MODULES([Bit::Vector], success="yes", success="no")
176 have_perl_bit_vector="$success"
Bryan Duxbury12373692010-08-19 05:23:59 +0000177 fi
David Reissdcc7e9b2010-08-31 16:51:22 +0000178 if test -n "$PERL" -a "$have_perl_bit_vector" = "yes" ; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000179 have_perl="yes"
180 fi
T Jake Luciani1952e542009-02-01 04:47:30 +0000181fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000182AM_CONDITIONAL(WITH_PERL, [test "$have_perl" = "yes"])
T Jake Luciani1952e542009-02-01 04:47:30 +0000183
Bryan Duxbury6a681872010-05-02 22:39:31 +0000184AX_THRIFT_LIB(php, [PHP], yes)
185if test "$with_php" = "yes"; then
186 AC_PATH_PROG([PHP], [php])
David Reiss5cc3ba82010-08-31 16:51:20 +0000187 if test -n "$PHP" ; then
188 have_php="yes"
189 fi
Bryan Duxbury6a681872010-05-02 22:39:31 +0000190fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000191AM_CONDITIONAL(WITH_PHP, [test "$have_php" = "yes"])
Bryan Duxbury6a681872010-05-02 22:39:31 +0000192
Bryan Duxbury89200e12010-08-25 17:09:02 +0000193AX_THRIFT_LIB(php_extension, [PHP_EXTENSION], yes)
194if test "$with_php_extension" = "yes"; then
195 AC_PATH_PROG([PHP_CONFIG], [php-config])
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000196 if test -n "$PHP_CONFIG" ; then
197 AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol])
198 have_php_extension="yes"
199 fi
Bryan Duxbury89200e12010-08-25 17:09:02 +0000200fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000201AM_CONDITIONAL(WITH_PHP_EXTENSION, [test "$have_php_extension" = "yes"])
Bryan Duxbury89200e12010-08-25 17:09:02 +0000202
Kevin Clark4bd89162008-07-08 00:47:49 +0000203AX_THRIFT_LIB(ruby, [Ruby], yes)
David Reiss5cc3ba82010-08-31 16:51:20 +0000204have_ruby=no
Kevin Clark4bd89162008-07-08 00:47:49 +0000205if test "$with_ruby" = "yes"; then
206 AC_PATH_PROG([RUBY], [ruby])
Bryan Duxburyec473582009-04-07 16:31:04 +0000207 AC_PATH_PROG([RSPEC], [spec])
David Reiss5cc3ba82010-08-31 16:51:20 +0000208 if test "x$RUBY" != "x" ; then
209 have_ruby="yes"
210 fi
Kevin Clark4bd89162008-07-08 00:47:49 +0000211fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000212AM_CONDITIONAL(WITH_RUBY, [test "$have_ruby" = "yes"])
213AM_CONDITIONAL(HAVE_RSPEC, [test "x$RSPEC" != "x"])
Bryan Duxburyec473582009-04-07 16:31:04 +0000214
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000215AX_THRIFT_LIB(haskell, [Haskell], yes)
216have_haskell=no
217RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000218CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000219if test "$with_haskell" = "yes"; then
Bryan Duxburyc6574472010-10-06 00:12:33 +0000220 AC_PATH_PROG([CABAL], [cabal])
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000221 AC_PATH_PROG([RUNHASKELL], [runhaskell])
Bryan Duxburyc6574472010-10-06 00:12:33 +0000222 if test "x$CABAL" != "x" -a "x$RUNHASKELL" != "x"; then
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000223 have_haskell="yes"
224 else
225 RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000226 CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000227 fi
228fi
Bryan Duxburyc6574472010-10-06 00:12:33 +0000229AC_SUBST(CABAL)
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000230AC_SUBST(RUNHASKELL)
231AM_CONDITIONAL(WITH_HASKELL, [test "$have_haskell" = "yes"])
Kevin Clark4bd89162008-07-08 00:47:49 +0000232
David Reiss832b2622007-12-28 18:25:33 +0000233AC_C_CONST
234AC_C_INLINE
235AC_C_VOLATILE
236
237AC_HEADER_STDBOOL
238AC_HEADER_STDC
239AC_HEADER_TIME
240AC_CHECK_HEADERS([arpa/inet.h])
Bryan Duxbury184d2622010-08-17 17:43:58 +0000241AC_CHECK_HEADERS([sys/param.h])
David Reiss832b2622007-12-28 18:25:33 +0000242AC_CHECK_HEADERS([fcntl.h])
243AC_CHECK_HEADERS([inttypes.h])
David Reiss7ed4b982008-02-11 23:24:47 +0000244AC_CHECK_HEADERS([limits.h])
David Reiss832b2622007-12-28 18:25:33 +0000245AC_CHECK_HEADERS([netdb.h])
246AC_CHECK_HEADERS([netinet/in.h])
247AC_CHECK_HEADERS([pthread.h])
248AC_CHECK_HEADERS([stddef.h])
David Reissd7a16f42008-02-19 22:47:29 +0000249AC_CHECK_HEADERS([stdlib.h])
David Reiss832b2622007-12-28 18:25:33 +0000250AC_CHECK_HEADERS([sys/socket.h])
251AC_CHECK_HEADERS([sys/time.h])
252AC_CHECK_HEADERS([unistd.h])
253AC_CHECK_HEADERS([libintl.h])
254AC_CHECK_HEADERS([malloc.h])
255
256AC_CHECK_LIB(pthread, pthread_create)
David Reisse4ca1792009-05-21 02:28:19 +0000257dnl NOTE(dreiss): I haven't been able to find any really solid docs
258dnl on what librt is and how it fits into various Unix systems.
259dnl My best guess is that it is where glibc stashes its implementation
260dnl of the POSIX Real-Time Extensions. This seems necessary on Linux,
261dnl and we haven't yet found a system where this is a problem.
262AC_CHECK_LIB(rt, clock_gettime)
David Reiss9b903442009-10-21 05:51:28 +0000263AC_CHECK_LIB(socket, setsockopt)
David Reiss832b2622007-12-28 18:25:33 +0000264
265AC_TYPE_INT16_T
266AC_TYPE_INT32_T
267AC_TYPE_INT64_T
268AC_TYPE_INT8_T
269AC_TYPE_MODE_T
270AC_TYPE_OFF_T
271AC_TYPE_SIZE_T
David Reiss847a2942008-04-21 18:07:43 +0000272AC_TYPE_SSIZE_T
David Reiss832b2622007-12-28 18:25:33 +0000273AC_TYPE_UINT16_T
274AC_TYPE_UINT32_T
275AC_TYPE_UINT64_T
276AC_TYPE_UINT8_T
David Reiss33fc5ad2008-05-09 07:17:34 +0000277AC_CHECK_TYPES([ptrdiff_t], [], [exit 1])
David Reiss832b2622007-12-28 18:25:33 +0000278
David Reiss7ed4b982008-02-11 23:24:47 +0000279AC_STRUCT_TM
280
David Reiss85a8f7b2009-05-21 02:28:16 +0000281dnl NOTE(dreiss): AI_ADDRCONFIG is not defined on OpenBSD.
282AC_CHECK_DECL([AI_ADDRCONFIG], [],
283 [AC_DEFINE([AI_ADDRCONFIG], 0,
284 [Define if the AI_ADDRCONFIG symbol is unavailable])],
285 [
286 #include <sys/types.h>
287 #include <sys/socket.h>
288 #include <netdb.h>
289])
290
David Reiss832b2622007-12-28 18:25:33 +0000291AC_FUNC_ALLOCA
Roger Meier213a6642010-10-27 12:30:11 +0000292AC_FUNC_FORK
David Reiss832b2622007-12-28 18:25:33 +0000293AC_FUNC_MALLOC
David Reiss7ed4b982008-02-11 23:24:47 +0000294AC_FUNC_MEMCMP
David Reiss832b2622007-12-28 18:25:33 +0000295AC_FUNC_REALLOC
296AC_FUNC_SELECT_ARGTYPES
297AC_FUNC_STAT
298AC_FUNC_STRERROR_R
David Reiss7ed4b982008-02-11 23:24:47 +0000299AC_FUNC_STRFTIME
David Reiss832b2622007-12-28 18:25:33 +0000300AC_FUNC_VPRINTF
301AC_CHECK_FUNCS([strtoul])
302AC_CHECK_FUNCS([bzero])
David Reiss7ed4b982008-02-11 23:24:47 +0000303AC_CHECK_FUNCS([ftruncate])
David Reiss832b2622007-12-28 18:25:33 +0000304AC_CHECK_FUNCS([gethostbyname])
305AC_CHECK_FUNCS([gettimeofday])
306AC_CHECK_FUNCS([memmove])
307AC_CHECK_FUNCS([memset])
308AC_CHECK_FUNCS([mkdir])
309AC_CHECK_FUNCS([realpath])
310AC_CHECK_FUNCS([select])
311AC_CHECK_FUNCS([socket])
312AC_CHECK_FUNCS([strchr])
313AC_CHECK_FUNCS([strdup])
David Reiss7ed4b982008-02-11 23:24:47 +0000314AC_CHECK_FUNCS([strerror])
David Reiss832b2622007-12-28 18:25:33 +0000315AC_CHECK_FUNCS([strstr])
316AC_CHECK_FUNCS([strtol])
317AC_CHECK_FUNCS([sqrt])
David Reisse4ca1792009-05-21 02:28:19 +0000318dnl The following functions are optional.
Roger Meier213a6642010-10-27 12:30:11 +0000319AC_CHECK_FUNCS([alarm])
David Reisse4ca1792009-05-21 02:28:19 +0000320AC_CHECK_FUNCS([clock_gettime])
321AC_CHECK_FUNCS([sched_get_priority_min])
322AC_CHECK_FUNCS([sched_get_priority_max])
David Reiss832b2622007-12-28 18:25:33 +0000323
David Reiss79db3e12010-08-31 16:51:31 +0000324if test "$cross_compiling" = "no" ; then
325 AX_SIGNED_RIGHT_SHIFT
326fi
David Reisse4d4ea02009-04-02 21:37:17 +0000327
David Reiss5ddabb82010-10-06 17:09:37 +0000328dnl autoscan thinks we need this macro because we have a member function
329dnl called "error". Invoke the macro but don't run the check so autoscan
330dnl thinks we are in the clear. It's highly unlikely that we will ever
331dnl actually use the function that this checks for.
332if false ; then
333 AC_FUNC_ERROR_AT_LINE
334fi
335
David Reiss22585732008-02-27 01:55:33 +0000336AX_THRIFT_GEN(cpp, [C++], yes)
337AM_CONDITIONAL([THRIFT_GEN_cpp], [test "$ax_thrift_gen_cpp" = "yes"])
Roger Meier213a6642010-10-27 12:30:11 +0000338AX_THRIFT_GEN(c_glib, [C (GLib)], yes)
339AM_CONDITIONAL([THRIFT_GEN_c_glib], [test "$ax_thrift_gen_c_glib" = "yes"])
David Reisse8a87de2008-02-27 02:39:25 +0000340AX_THRIFT_GEN(java, [Java], yes)
341AM_CONDITIONAL([THRIFT_GEN_java], [test "$ax_thrift_gen_java" = "yes"])
Bryan Duxbury321eb7a2010-04-22 21:17:39 +0000342AX_THRIFT_GEN(as3, [AS3], yes)
343AM_CONDITIONAL([THRIFT_GEN_as3], [test "$ax_thrift_gen_as3" = "yes"])
David Reissce4f4f02008-03-27 21:41:31 +0000344AX_THRIFT_GEN(csharp, [C#], yes)
345AM_CONDITIONAL([THRIFT_GEN_csharp], [test "$ax_thrift_gen_csharp" = "yes"])
David Reissbfd26dc2008-03-27 21:41:49 +0000346AX_THRIFT_GEN(py, [Python], yes)
347AM_CONDITIONAL([THRIFT_GEN_py], [test "$ax_thrift_gen_py" = "yes"])
David Reissae253582008-03-27 21:42:11 +0000348AX_THRIFT_GEN(rb, [Ruby], yes)
349AM_CONDITIONAL([THRIFT_GEN_rb], [test "$ax_thrift_gen_rb" = "yes"])
David Reissfdc21aa2008-03-27 21:42:34 +0000350AX_THRIFT_GEN(perl, [Perl], yes)
351AM_CONDITIONAL([THRIFT_GEN_perl], [test "$ax_thrift_gen_perl" = "yes"])
David Reiss32272d92009-02-17 20:28:30 +0000352AX_THRIFT_GEN(php, [PHP], yes)
353AM_CONDITIONAL([THRIFT_GEN_php], [test "$ax_thrift_gen_php" = "yes"])
David Reissf3b0db32009-02-17 20:28:01 +0000354AX_THRIFT_GEN(erl, [Erlang], yes)
355AM_CONDITIONAL([THRIFT_GEN_erl], [test "$ax_thrift_gen_erl" = "yes"])
David Reiss4b349aa2008-03-27 21:41:02 +0000356AX_THRIFT_GEN(cocoa, [Cocoa], yes)
357AM_CONDITIONAL([THRIFT_GEN_cocoa], [test "$ax_thrift_gen_cocoa" = "yes"])
David Reissb3ac8a62008-03-27 21:40:42 +0000358AX_THRIFT_GEN(st, [Smalltalk], yes)
359AM_CONDITIONAL([THRIFT_GEN_st], [test "$ax_thrift_gen_st" = "yes"])
David Reiss3d671b52008-03-27 21:40:11 +0000360AX_THRIFT_GEN(ocaml, [OCaml], yes)
361AM_CONDITIONAL([THRIFT_GEN_ocaml], [test "$ax_thrift_gen_ocaml" = "yes"])
David Reiss22812f82008-03-27 21:40:26 +0000362AX_THRIFT_GEN(hs, [Haskell], yes)
363AM_CONDITIONAL([THRIFT_GEN_hs], [test "$ax_thrift_gen_hs" = "yes"])
David Reiss782cb672009-02-17 20:28:13 +0000364AX_THRIFT_GEN(xsd, [XSD], yes)
365AM_CONDITIONAL([THRIFT_GEN_xsd], [test "$ax_thrift_gen_xsd" = "yes"])
David Reissdc0aada2008-10-21 00:09:23 +0000366AX_THRIFT_GEN(html, [HTML], yes)
367AM_CONDITIONAL([THRIFT_GEN_html], [test "$ax_thrift_gen_html" = "yes"])
T Jake Luciani322caa22010-02-15 03:24:55 +0000368AX_THRIFT_GEN(js, [JavaScript], yes)
369AM_CONDITIONAL([THRIFT_GEN_js], [test "$ax_thrift_gen_js" = "yes"])
Bryan Duxbury1237dcb2010-09-20 17:49:09 +0000370AX_THRIFT_GEN(javame, [JavaME], yes)
371AM_CONDITIONAL([THRIFT_GEN_javame], [test "$ax_thrift_gen_javame" = "yes"])
David Reiss22585732008-02-27 01:55:33 +0000372
Roger Meier213a6642010-10-27 12:30:11 +0000373# --- Coverage hooks ---
374
375AC_ARG_ENABLE(coverage,
376 [ --enable-coverage turn on -fprofile-arcs -ftest-coverage],
377 [case "${enableval}" in
378 yes) ENABLE_COVERAGE=1 ;;
379 no) ENABLE_COVERAGE=0 ;;
380 *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;;
381 esac],
382 [ENABLE_COVERAGE=2])
383
384if test "x[$]ENABLE_COVERAGE" = "x1"; then
385 AC_MSG_WARN(enable coverage)
386 GCOV_CFLAGS="`echo \"[$]CFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
387 GCOV_CXXFLAGS="`echo \"[$]CXXFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
388 GCOV_LDFLAGS="-XCClinker -fprofile-arcs -XCClinker -ftest-coverage"
389fi
390
391AC_SUBST(ENABLE_COVERAGE)
392AC_SUBST(GCOV_CFLAGS)
393AC_SUBST(GCOV_CXXFLAGS)
394AC_SUBST(GCOV_LDFLAGS)
395
David Reiss832b2622007-12-28 18:25:33 +0000396AC_CONFIG_HEADERS(config.h:config.hin)
397
398AC_CONFIG_FILES([
399 Makefile
400 compiler/cpp/Makefile
Bryan Duxburya1e268c2010-05-03 21:33:00 +0000401 compiler/cpp/version.h
David Reiss832b2622007-12-28 18:25:33 +0000402 lib/Makefile
403 lib/cpp/Makefile
David Reiss351e22b2010-08-31 16:51:19 +0000404 lib/cpp/test/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000405 lib/cpp/thrift-nb.pc
406 lib/cpp/thrift-z.pc
Bryan Duxburyc6574472010-10-06 00:12:33 +0000407 lib/cpp/thrift.pc
Roger Meier213a6642010-10-27 12:30:11 +0000408 lib/c_glib/Makefile
409 lib/c_glib/thrift_c_glib.pc
410 lib/c_glib/test/Makefile
David Reiss1fdb5922008-02-06 22:10:12 +0000411 lib/csharp/Makefile
Bryan Duxbury7173bd92010-05-02 22:54:22 +0000412 lib/erl/Makefile
Anthony F. Molinaroef164202010-09-07 03:35:30 +0000413 lib/erl/src/Makefile
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000414 lib/hs/Makefile
David Reissf8dcf032008-02-23 22:07:39 +0000415 lib/java/Makefile
T Jake Luciani1952e542009-02-01 04:47:30 +0000416 lib/perl/Makefile
417 lib/perl/test/Makefile
Bryan Duxbury6a681872010-05-02 22:39:31 +0000418 lib/php/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000419 lib/py/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000420 lib/rb/Makefile
David Reiss8180c0c2008-02-04 21:14:14 +0000421 test/Makefile
Bryan Duxburyc6574472010-10-06 00:12:33 +0000422 test/hs/Makefile
David Reiss9ff3b9d2008-02-15 01:10:23 +0000423 test/py/Makefile
Roger Meier50e43492010-10-08 17:46:06 +0000424 test/py.twisted/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000425 test/rb/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000426])
Marc Slemkob09f5882006-08-23 22:03:34 +0000427
428AC_OUTPUT
David Reiss5cc3ba82010-08-31 16:51:20 +0000429
430
431echo
432echo "$PACKAGE $VERSION"
433echo
434echo "Building code generators ..... :$thrift_generators"
435echo
David Reissea4c9812010-08-31 16:51:21 +0000436echo "Building C++ Library ......... : $have_cpp"
Roger Meier213a6642010-10-27 12:30:11 +0000437echo "Building C (GLib) Library .... : $have_c_glib"
David Reiss5cc3ba82010-08-31 16:51:20 +0000438echo "Building Java Library ........ : $have_java"
439echo "Building C# Library .......... : $have_csharp"
440echo "Building Python Library ...... : $have_python"
441echo "Building Ruby Library ........ : $have_ruby"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000442echo "Building Haskell Library ..... : $have_haskell"
David Reiss5cc3ba82010-08-31 16:51:20 +0000443echo "Building Perl Library ........ : $have_perl"
444echo "Building PHP Library ......... : $have_php"
445echo "Building Erlang Library ...... : $have_erlang"
446if test "$have_cpp" = "yes" ; then
447 echo
448 echo "Building TZlibTransport ...... : $have_zlib"
449 echo "Building TNonblockingServer .. : $have_libevent"
450fi
451if test "$have_java" = "yes" ; then
452 echo
453 echo "Using javac .................. : $JAVAC"
454 echo "Using java ................... : $JAVA"
455 echo "Using ant .................... : $ANT"
456fi
457if test "$have_csharp" = "yes" ; then
458 echo
459 echo "Using .NET 3.5 ............... : $net_3_5"
460fi
461if test "$have_python" = "yes" ; then
462 echo
463 echo "Using Python ................. : $PYTHON"
464fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000465if test "$have_php" = "yes" ; then
466 echo
467 echo "Using php-config ............. : $PHP_CONFIG"
468fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000469if test "$have_ruby" = "yes" ; then
470 echo
471 echo "Using Ruby ................... : $RUBY"
472 echo "Using rspec .................. : $RSPEC"
473fi
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000474if test "$have_haskell" = "yes" ; then
475 echo
476 echo "Using Haskell ................ : $RUNHASKELL"
Bryan Duxburyc6574472010-10-06 00:12:33 +0000477 echo "Using Cabal .................. : $CABAL"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000478fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000479if test "$have_perl" = "yes" ; then
480 echo
481 echo "Using Perl ................... : $PERL"
482fi
483if test "$have_erlang" = "yes" ; then
484 echo
485 echo "Using erlc ................... : $ERLC"
486fi
487echo
488echo "If something is missing that you think should be present,"
489echo "please skim the output of configure to find the missing"
490echo "component. Details are present in config.log."