blob: d5071b07f3b24082df71ea55775d9b2d691db991 [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
Bryan Duxburyb005c1f2011-02-09 17:05:11 +000027PKG_PROG_PKG_CONFIG
Marc Slemkob09f5882006-08-23 22:03:34 +000028
David Reissd6832192007-09-05 00:47:32 +000029AC_ARG_VAR([PY_PREFIX], [Prefix for installing Python modules.
30 (Normal --prefix is ignored for Python because
31 Python has different conventions.)
32 Default = "/usr"])
David Reisscdd6f3c2008-03-04 21:10:29 +000033AS_IF([test "x$PY_PREFIX" = x], [PY_PREFIX="/usr"])
David Reissd6832192007-09-05 00:47:32 +000034
David Reissf0c21a72008-07-11 01:26:16 +000035AC_ARG_VAR([JAVA_PREFIX], [Prefix for installing the Java lib jar.
36 (Normal --prefix is ignored for Java because
37 Java has different conevntions.)
38 Default = "/usr/local/lib"])
39AS_IF([test "x$JAVA_PREFIX" = x], [JAVA_PREFIX="/usr/local/lib"])
David Reiss832b2622007-12-28 18:25:33 +000040
Bryan Duxbury3f0b5262010-05-12 21:31:58 +000041AC_ARG_VAR([RUBY_PREFIX], [Prefix for installing Ruby modules.
42 (Normal --prefix is ignored for Ruby because
43 Ruby has different conventions.)
44 Default = none, let ruby setup decide])
45
Bryan Duxbury6a681872010-05-02 22:39:31 +000046AC_ARG_VAR([PHP_PREFIX], [Prefix for installing PHP modules.
47 (Normal --prefix is ignored for PHP because
48 PHP has different conventions.)
49 Default = "/usr/lib/php"])
50AS_IF([test "x$PHP_PREFIX" = x], [PHP_PREFIX="/usr/lib/php"])
51
Bryan Duxbury89200e12010-08-25 17:09:02 +000052AC_ARG_VAR([PHP_CONFIG_PREFIX],
53 [Prefix for installing PHP extension module .ini file.
54 (Normal --prefix is ignored for PHP because PHP has
55 different conventions.)
56 Default = "/etc/php.d"])
57AS_IF([test "x$PHP_CONFIG_PREFIX" = x], [PHP_CONFIG_PREFIX="/etc/php.d"])
58
David Reissc07057e2010-06-11 17:57:32 +000059AC_ARG_VAR([PERL_PREFIX], [Prefix for installing Perl modules.
60 (Normal --prefix is ignored for Perl because
61 Perl has different conventions.)
62 Default = "/usr/local/lib"])
63AS_IF([test "x$PERL_PREFIX" = x], [PERL_PREFIX="/usr/local"])
64
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +000065AC_ARG_VAR([CABAL_CONFIGURE_FLAGS],
66 [Extra flags to pass to cabal: "cabal Setup.lhs configure $CABAL_CONFIGURE_FLAGS".
67 (Typically used to set --user or force --global.)])
68
69AC_SUBST(CABAL_CONFIGURE_FLAGS)
70
David Reiss832b2622007-12-28 18:25:33 +000071AC_PROG_CC
72AC_PROG_CPP
73AC_PROG_CXX
74AC_PROG_INSTALL
75AC_PROG_LIBTOOL
76AC_PROG_MAKE_SET
77AC_PROG_YACC
78AC_PROG_LEX
79AM_PROG_LEX
David Reiss7ed4b982008-02-11 23:24:47 +000080AC_PROG_LN_S
81AC_PROG_MKDIR_P
David Reiss832b2622007-12-28 18:25:33 +000082
83AC_LANG([C++])
David Reiss832b2622007-12-28 18:25:33 +000084
David Reissea4c9812010-08-31 16:51:21 +000085AX_THRIFT_LIB(cpp, [C++], yes)
86have_cpp=no
87if test "$with_cpp" = "yes"; then
David Reissef5e81b2010-08-31 16:51:28 +000088 AX_BOOST_BASE([1.33.1])
89 if test "x$succeeded" == "xyes" ; then
90 have_cpp="yes"
91 fi
David Reiss5cc3ba82010-08-31 16:51:20 +000092
David Reissea4c9812010-08-31 16:51:21 +000093 AX_LIB_EVENT([1.0])
94 have_libevent=$success
David Reiss832b2622007-12-28 18:25:33 +000095
David Reissea4c9812010-08-31 16:51:21 +000096 AX_LIB_ZLIB([1.2.3])
97 have_zlib=$success
98fi
99AM_CONDITIONAL([WITH_CPP], [test "$have_cpp" = "yes"])
100AM_CONDITIONAL([AMX_HAVE_LIBEVENT], [test "$have_libevent" = "yes"])
101AM_CONDITIONAL([AMX_HAVE_ZLIB], [test "$have_zlib" = "yes"])
David Reiss832b2622007-12-28 18:25:33 +0000102
Roger Meier213a6642010-10-27 12:30:11 +0000103AX_THRIFT_LIB(c_glib, [C (GLib)], no)
104if test "$with_c_glib" = "yes"; then
105 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no)
106 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, have_gobject2=no)
107 if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then
108 have_c_glib="yes"
109 fi
110fi
111AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" -a "$have_gobject2" = "yes"])
112
David Reiss520b5ee2008-03-02 07:00:26 +0000113AX_THRIFT_LIB(csharp, [C#], yes)
114if test "$with_csharp" = "yes"; then
David Reissd831a212009-02-13 03:09:52 +0000115 PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no)
116 PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no)
David Reiss5cc3ba82010-08-31 16:51:20 +0000117 if test "$have_mono" = "yes" ; then
118 have_csharp="yes"
119 fi
David Reiss520b5ee2008-03-02 07:00:26 +0000120fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000121AM_CONDITIONAL(WITH_MONO, [test "$have_csharp" = "yes"])
David Reissd831a212009-02-13 03:09:52 +0000122AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"])
David Reiss1fdb5922008-02-06 22:10:12 +0000123
David Reiss62d39812008-03-02 07:00:22 +0000124AX_THRIFT_LIB(java, [Java], yes)
125if test "$with_java" = "yes"; then
David Reissd9cdf422009-03-13 21:25:29 +0000126 AX_JAVAC_AND_JAVA
Bryan Duxbury38bab122010-08-12 00:27:14 +0000127 AC_PATH_PROG([ANT], [ant])
Bryan Duxburyc27cda52009-08-14 20:04:15 +0000128 AX_CHECK_JAVA_CLASS(org.slf4j.Logger)
129 have_slf4j="$success"
130 AX_CHECK_JAVA_CLASS(org.slf4j.impl.SimpleLogger)
131 have_slf4j_simple="$success"
David Reissfdfcebd2009-05-22 19:50:29 +0000132 AX_CHECK_JAVA_CLASS(org.apache.commons.lang.builder.HashCodeBuilder)
133 have_hashcode="$success"
Bryan Duxburyc27cda52009-08-14 20:04:15 +0000134 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 +0000135 ANT_FLAGS="$ANT_FLAGS -Dnoivy="
136 fi
David Reissfff84d12009-05-22 19:50:33 +0000137 AC_SUBST(CLASSPATH)
David Reiss4ca0c8e2009-05-12 23:16:55 +0000138 AC_SUBST(ANT_FLAGS)
David Reiss5cc3ba82010-08-31 16:51:20 +0000139 if test "x$JAVAC" != "x" && test "x$JAVAC" != "x" && test "x$ANT" != "x" ; then
140 have_java="yes"
141 fi
David Reiss62d39812008-03-02 07:00:22 +0000142fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000143AM_CONDITIONAL([WITH_JAVA], [test "$have_java" = "yes"])
David Reiss1fdb5922008-02-06 22:10:12 +0000144
Christopher Pirob6f18c22008-03-04 07:09:12 +0000145AX_THRIFT_LIB(erlang, [Erlang], yes)
146if test "$with_erlang" = "yes"; then
David Reiss9e2fd792010-05-18 16:52:48 +0000147 AC_ERLANG_PATH_ERL
148 AC_ERLANG_PATH_ERLC
David Reiss31e1b6e2010-08-24 20:45:24 +0000149 if test -n "$ERLC" ; then
150 AC_ERLANG_SUBST_LIB_DIR
151 # Install into the detected Erlang directory instead of $libdir/erlang/lib
152 ERLANG_INSTALL_LIB_DIR="$ERLANG_LIB_DIR"
153 AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
154 fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000155 if test -n "$ERL" -a -n "$ERLC" ; then
156 have_erlang="yes"
157 fi
Christopher Pirob6f18c22008-03-04 07:09:12 +0000158fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000159AM_CONDITIONAL(WITH_ERLANG, [test "$have_erlang" = "yes"])
Christopher Pirob6f18c22008-03-04 07:09:12 +0000160
David Reiss5cc3ba82010-08-31 16:51:20 +0000161AX_THRIFT_LIB(python, [Python], yes)
162if test "$with_python" = "yes"; then
David Reiss1a140912008-06-11 01:16:37 +0000163 AM_PATH_PYTHON(2.4,, :)
David Reiss5cc3ba82010-08-31 16:51:20 +0000164 if test "x$PYTHON" != "x" && test "x$PYTHON" != "x:" ; then
165 have_python="yes"
166 fi
David Reiss1a140912008-06-11 01:16:37 +0000167fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000168AM_CONDITIONAL(WITH_PYTHON, [test "$have_python" = "yes"])
David Reiss1a140912008-06-11 01:16:37 +0000169
Roger Meier50e43492010-10-08 17:46:06 +0000170AC_PATH_PROG([TRIAL], [trial])
171
T Jake Luciani1952e542009-02-01 04:47:30 +0000172AX_THRIFT_LIB(perl, [Perl], yes)
173if test "$with_perl" = "yes"; then
174 AC_PATH_PROG([PERL], [perl])
David Reissdcc7e9b2010-08-31 16:51:22 +0000175 if test -n "$PERL" ; then
176 AC_PROG_PERL_MODULES([Bit::Vector], success="yes", success="no")
177 have_perl_bit_vector="$success"
Bryan Duxbury12373692010-08-19 05:23:59 +0000178 fi
David Reissdcc7e9b2010-08-31 16:51:22 +0000179 if test -n "$PERL" -a "$have_perl_bit_vector" = "yes" ; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000180 have_perl="yes"
181 fi
T Jake Luciani1952e542009-02-01 04:47:30 +0000182fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000183AM_CONDITIONAL(WITH_PERL, [test "$have_perl" = "yes"])
T Jake Luciani1952e542009-02-01 04:47:30 +0000184
Bryan Duxbury6a681872010-05-02 22:39:31 +0000185AX_THRIFT_LIB(php, [PHP], yes)
186if test "$with_php" = "yes"; then
187 AC_PATH_PROG([PHP], [php])
David Reiss5cc3ba82010-08-31 16:51:20 +0000188 if test -n "$PHP" ; then
189 have_php="yes"
190 fi
Bryan Duxbury6a681872010-05-02 22:39:31 +0000191fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000192AM_CONDITIONAL(WITH_PHP, [test "$have_php" = "yes"])
Bryan Duxbury6a681872010-05-02 22:39:31 +0000193
Bryan Duxbury89200e12010-08-25 17:09:02 +0000194AX_THRIFT_LIB(php_extension, [PHP_EXTENSION], yes)
195if test "$with_php_extension" = "yes"; then
196 AC_PATH_PROG([PHP_CONFIG], [php-config])
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000197 if test -n "$PHP_CONFIG" ; then
198 AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol])
199 have_php_extension="yes"
200 fi
Bryan Duxbury89200e12010-08-25 17:09:02 +0000201fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000202AM_CONDITIONAL(WITH_PHP_EXTENSION, [test "$have_php_extension" = "yes"])
Bryan Duxbury89200e12010-08-25 17:09:02 +0000203
Kevin Clark4bd89162008-07-08 00:47:49 +0000204AX_THRIFT_LIB(ruby, [Ruby], yes)
David Reiss5cc3ba82010-08-31 16:51:20 +0000205have_ruby=no
Kevin Clark4bd89162008-07-08 00:47:49 +0000206if test "$with_ruby" = "yes"; then
207 AC_PATH_PROG([RUBY], [ruby])
Bryan Duxburyec473582009-04-07 16:31:04 +0000208 AC_PATH_PROG([RSPEC], [spec])
David Reiss5cc3ba82010-08-31 16:51:20 +0000209 if test "x$RUBY" != "x" ; then
210 have_ruby="yes"
211 fi
Kevin Clark4bd89162008-07-08 00:47:49 +0000212fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000213AM_CONDITIONAL(WITH_RUBY, [test "$have_ruby" = "yes"])
214AM_CONDITIONAL(HAVE_RSPEC, [test "x$RSPEC" != "x"])
Bryan Duxburyec473582009-04-07 16:31:04 +0000215
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000216AX_THRIFT_LIB(haskell, [Haskell], yes)
217have_haskell=no
218RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000219CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000220if test "$with_haskell" = "yes"; then
Bryan Duxburyc6574472010-10-06 00:12:33 +0000221 AC_PATH_PROG([CABAL], [cabal])
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000222 AC_PATH_PROG([RUNHASKELL], [runhaskell])
Bryan Duxburyc6574472010-10-06 00:12:33 +0000223 if test "x$CABAL" != "x" -a "x$RUNHASKELL" != "x"; then
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000224 have_haskell="yes"
225 else
226 RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000227 CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000228 fi
229fi
Bryan Duxburyc6574472010-10-06 00:12:33 +0000230AC_SUBST(CABAL)
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000231AC_SUBST(RUNHASKELL)
232AM_CONDITIONAL(WITH_HASKELL, [test "$have_haskell" = "yes"])
Kevin Clark4bd89162008-07-08 00:47:49 +0000233
David Reiss832b2622007-12-28 18:25:33 +0000234AC_C_CONST
235AC_C_INLINE
236AC_C_VOLATILE
237
238AC_HEADER_STDBOOL
239AC_HEADER_STDC
240AC_HEADER_TIME
241AC_CHECK_HEADERS([arpa/inet.h])
Bryan Duxbury184d2622010-08-17 17:43:58 +0000242AC_CHECK_HEADERS([sys/param.h])
David Reiss832b2622007-12-28 18:25:33 +0000243AC_CHECK_HEADERS([fcntl.h])
244AC_CHECK_HEADERS([inttypes.h])
David Reiss7ed4b982008-02-11 23:24:47 +0000245AC_CHECK_HEADERS([limits.h])
David Reiss832b2622007-12-28 18:25:33 +0000246AC_CHECK_HEADERS([netdb.h])
247AC_CHECK_HEADERS([netinet/in.h])
248AC_CHECK_HEADERS([pthread.h])
249AC_CHECK_HEADERS([stddef.h])
David Reissd7a16f42008-02-19 22:47:29 +0000250AC_CHECK_HEADERS([stdlib.h])
David Reiss832b2622007-12-28 18:25:33 +0000251AC_CHECK_HEADERS([sys/socket.h])
252AC_CHECK_HEADERS([sys/time.h])
253AC_CHECK_HEADERS([unistd.h])
254AC_CHECK_HEADERS([libintl.h])
255AC_CHECK_HEADERS([malloc.h])
256
257AC_CHECK_LIB(pthread, pthread_create)
David Reisse4ca1792009-05-21 02:28:19 +0000258dnl NOTE(dreiss): I haven't been able to find any really solid docs
259dnl on what librt is and how it fits into various Unix systems.
260dnl My best guess is that it is where glibc stashes its implementation
261dnl of the POSIX Real-Time Extensions. This seems necessary on Linux,
262dnl and we haven't yet found a system where this is a problem.
263AC_CHECK_LIB(rt, clock_gettime)
David Reiss9b903442009-10-21 05:51:28 +0000264AC_CHECK_LIB(socket, setsockopt)
David Reiss832b2622007-12-28 18:25:33 +0000265
266AC_TYPE_INT16_T
267AC_TYPE_INT32_T
268AC_TYPE_INT64_T
269AC_TYPE_INT8_T
270AC_TYPE_MODE_T
271AC_TYPE_OFF_T
272AC_TYPE_SIZE_T
David Reiss847a2942008-04-21 18:07:43 +0000273AC_TYPE_SSIZE_T
David Reiss832b2622007-12-28 18:25:33 +0000274AC_TYPE_UINT16_T
275AC_TYPE_UINT32_T
276AC_TYPE_UINT64_T
277AC_TYPE_UINT8_T
David Reiss33fc5ad2008-05-09 07:17:34 +0000278AC_CHECK_TYPES([ptrdiff_t], [], [exit 1])
David Reiss832b2622007-12-28 18:25:33 +0000279
David Reiss7ed4b982008-02-11 23:24:47 +0000280AC_STRUCT_TM
281
David Reiss85a8f7b2009-05-21 02:28:16 +0000282dnl NOTE(dreiss): AI_ADDRCONFIG is not defined on OpenBSD.
283AC_CHECK_DECL([AI_ADDRCONFIG], [],
284 [AC_DEFINE([AI_ADDRCONFIG], 0,
285 [Define if the AI_ADDRCONFIG symbol is unavailable])],
286 [
287 #include <sys/types.h>
288 #include <sys/socket.h>
289 #include <netdb.h>
290])
291
David Reiss832b2622007-12-28 18:25:33 +0000292AC_FUNC_ALLOCA
Roger Meier213a6642010-10-27 12:30:11 +0000293AC_FUNC_FORK
David Reiss832b2622007-12-28 18:25:33 +0000294AC_FUNC_MALLOC
David Reiss7ed4b982008-02-11 23:24:47 +0000295AC_FUNC_MEMCMP
David Reiss832b2622007-12-28 18:25:33 +0000296AC_FUNC_REALLOC
297AC_FUNC_SELECT_ARGTYPES
298AC_FUNC_STAT
299AC_FUNC_STRERROR_R
David Reiss7ed4b982008-02-11 23:24:47 +0000300AC_FUNC_STRFTIME
David Reiss832b2622007-12-28 18:25:33 +0000301AC_FUNC_VPRINTF
302AC_CHECK_FUNCS([strtoul])
303AC_CHECK_FUNCS([bzero])
David Reiss7ed4b982008-02-11 23:24:47 +0000304AC_CHECK_FUNCS([ftruncate])
David Reiss832b2622007-12-28 18:25:33 +0000305AC_CHECK_FUNCS([gethostbyname])
306AC_CHECK_FUNCS([gettimeofday])
307AC_CHECK_FUNCS([memmove])
308AC_CHECK_FUNCS([memset])
309AC_CHECK_FUNCS([mkdir])
310AC_CHECK_FUNCS([realpath])
311AC_CHECK_FUNCS([select])
312AC_CHECK_FUNCS([socket])
313AC_CHECK_FUNCS([strchr])
314AC_CHECK_FUNCS([strdup])
David Reiss7ed4b982008-02-11 23:24:47 +0000315AC_CHECK_FUNCS([strerror])
David Reiss832b2622007-12-28 18:25:33 +0000316AC_CHECK_FUNCS([strstr])
317AC_CHECK_FUNCS([strtol])
318AC_CHECK_FUNCS([sqrt])
David Reisse4ca1792009-05-21 02:28:19 +0000319dnl The following functions are optional.
Roger Meier213a6642010-10-27 12:30:11 +0000320AC_CHECK_FUNCS([alarm])
David Reisse4ca1792009-05-21 02:28:19 +0000321AC_CHECK_FUNCS([clock_gettime])
322AC_CHECK_FUNCS([sched_get_priority_min])
323AC_CHECK_FUNCS([sched_get_priority_max])
David Reiss832b2622007-12-28 18:25:33 +0000324
David Reiss79db3e12010-08-31 16:51:31 +0000325if test "$cross_compiling" = "no" ; then
326 AX_SIGNED_RIGHT_SHIFT
327fi
David Reisse4d4ea02009-04-02 21:37:17 +0000328
David Reiss5ddabb82010-10-06 17:09:37 +0000329dnl autoscan thinks we need this macro because we have a member function
330dnl called "error". Invoke the macro but don't run the check so autoscan
331dnl thinks we are in the clear. It's highly unlikely that we will ever
332dnl actually use the function that this checks for.
333if false ; then
334 AC_FUNC_ERROR_AT_LINE
335fi
336
David Reiss22585732008-02-27 01:55:33 +0000337AX_THRIFT_GEN(cpp, [C++], yes)
338AM_CONDITIONAL([THRIFT_GEN_cpp], [test "$ax_thrift_gen_cpp" = "yes"])
Roger Meier213a6642010-10-27 12:30:11 +0000339AX_THRIFT_GEN(c_glib, [C (GLib)], yes)
340AM_CONDITIONAL([THRIFT_GEN_c_glib], [test "$ax_thrift_gen_c_glib" = "yes"])
David Reisse8a87de2008-02-27 02:39:25 +0000341AX_THRIFT_GEN(java, [Java], yes)
342AM_CONDITIONAL([THRIFT_GEN_java], [test "$ax_thrift_gen_java" = "yes"])
Bryan Duxbury321eb7a2010-04-22 21:17:39 +0000343AX_THRIFT_GEN(as3, [AS3], yes)
344AM_CONDITIONAL([THRIFT_GEN_as3], [test "$ax_thrift_gen_as3" = "yes"])
David Reissce4f4f02008-03-27 21:41:31 +0000345AX_THRIFT_GEN(csharp, [C#], yes)
346AM_CONDITIONAL([THRIFT_GEN_csharp], [test "$ax_thrift_gen_csharp" = "yes"])
David Reissbfd26dc2008-03-27 21:41:49 +0000347AX_THRIFT_GEN(py, [Python], yes)
348AM_CONDITIONAL([THRIFT_GEN_py], [test "$ax_thrift_gen_py" = "yes"])
David Reissae253582008-03-27 21:42:11 +0000349AX_THRIFT_GEN(rb, [Ruby], yes)
350AM_CONDITIONAL([THRIFT_GEN_rb], [test "$ax_thrift_gen_rb" = "yes"])
David Reissfdc21aa2008-03-27 21:42:34 +0000351AX_THRIFT_GEN(perl, [Perl], yes)
352AM_CONDITIONAL([THRIFT_GEN_perl], [test "$ax_thrift_gen_perl" = "yes"])
David Reiss32272d92009-02-17 20:28:30 +0000353AX_THRIFT_GEN(php, [PHP], yes)
354AM_CONDITIONAL([THRIFT_GEN_php], [test "$ax_thrift_gen_php" = "yes"])
David Reissf3b0db32009-02-17 20:28:01 +0000355AX_THRIFT_GEN(erl, [Erlang], yes)
356AM_CONDITIONAL([THRIFT_GEN_erl], [test "$ax_thrift_gen_erl" = "yes"])
David Reiss4b349aa2008-03-27 21:41:02 +0000357AX_THRIFT_GEN(cocoa, [Cocoa], yes)
358AM_CONDITIONAL([THRIFT_GEN_cocoa], [test "$ax_thrift_gen_cocoa" = "yes"])
David Reissb3ac8a62008-03-27 21:40:42 +0000359AX_THRIFT_GEN(st, [Smalltalk], yes)
360AM_CONDITIONAL([THRIFT_GEN_st], [test "$ax_thrift_gen_st" = "yes"])
David Reiss3d671b52008-03-27 21:40:11 +0000361AX_THRIFT_GEN(ocaml, [OCaml], yes)
362AM_CONDITIONAL([THRIFT_GEN_ocaml], [test "$ax_thrift_gen_ocaml" = "yes"])
David Reiss22812f82008-03-27 21:40:26 +0000363AX_THRIFT_GEN(hs, [Haskell], yes)
364AM_CONDITIONAL([THRIFT_GEN_hs], [test "$ax_thrift_gen_hs" = "yes"])
David Reiss782cb672009-02-17 20:28:13 +0000365AX_THRIFT_GEN(xsd, [XSD], yes)
366AM_CONDITIONAL([THRIFT_GEN_xsd], [test "$ax_thrift_gen_xsd" = "yes"])
David Reissdc0aada2008-10-21 00:09:23 +0000367AX_THRIFT_GEN(html, [HTML], yes)
368AM_CONDITIONAL([THRIFT_GEN_html], [test "$ax_thrift_gen_html" = "yes"])
T Jake Luciani322caa22010-02-15 03:24:55 +0000369AX_THRIFT_GEN(js, [JavaScript], yes)
370AM_CONDITIONAL([THRIFT_GEN_js], [test "$ax_thrift_gen_js" = "yes"])
Bryan Duxbury1237dcb2010-09-20 17:49:09 +0000371AX_THRIFT_GEN(javame, [JavaME], yes)
372AM_CONDITIONAL([THRIFT_GEN_javame], [test "$ax_thrift_gen_javame" = "yes"])
David Reiss22585732008-02-27 01:55:33 +0000373
Roger Meier213a6642010-10-27 12:30:11 +0000374# --- Coverage hooks ---
375
376AC_ARG_ENABLE(coverage,
377 [ --enable-coverage turn on -fprofile-arcs -ftest-coverage],
378 [case "${enableval}" in
379 yes) ENABLE_COVERAGE=1 ;;
380 no) ENABLE_COVERAGE=0 ;;
381 *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;;
382 esac],
383 [ENABLE_COVERAGE=2])
384
385if test "x[$]ENABLE_COVERAGE" = "x1"; then
386 AC_MSG_WARN(enable coverage)
387 GCOV_CFLAGS="`echo \"[$]CFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
388 GCOV_CXXFLAGS="`echo \"[$]CXXFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
389 GCOV_LDFLAGS="-XCClinker -fprofile-arcs -XCClinker -ftest-coverage"
390fi
391
392AC_SUBST(ENABLE_COVERAGE)
393AC_SUBST(GCOV_CFLAGS)
394AC_SUBST(GCOV_CXXFLAGS)
395AC_SUBST(GCOV_LDFLAGS)
396
David Reiss832b2622007-12-28 18:25:33 +0000397AC_CONFIG_HEADERS(config.h:config.hin)
398
399AC_CONFIG_FILES([
400 Makefile
401 compiler/cpp/Makefile
Bryan Duxburya1e268c2010-05-03 21:33:00 +0000402 compiler/cpp/version.h
David Reiss832b2622007-12-28 18:25:33 +0000403 lib/Makefile
404 lib/cpp/Makefile
David Reiss351e22b2010-08-31 16:51:19 +0000405 lib/cpp/test/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000406 lib/cpp/thrift-nb.pc
407 lib/cpp/thrift-z.pc
Bryan Duxburyc6574472010-10-06 00:12:33 +0000408 lib/cpp/thrift.pc
Roger Meier213a6642010-10-27 12:30:11 +0000409 lib/c_glib/Makefile
410 lib/c_glib/thrift_c_glib.pc
411 lib/c_glib/test/Makefile
David Reiss1fdb5922008-02-06 22:10:12 +0000412 lib/csharp/Makefile
Bryan Duxbury7173bd92010-05-02 22:54:22 +0000413 lib/erl/Makefile
Anthony F. Molinaroef164202010-09-07 03:35:30 +0000414 lib/erl/src/Makefile
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000415 lib/hs/Makefile
David Reissf8dcf032008-02-23 22:07:39 +0000416 lib/java/Makefile
T Jake Luciani1952e542009-02-01 04:47:30 +0000417 lib/perl/Makefile
418 lib/perl/test/Makefile
Bryan Duxbury6a681872010-05-02 22:39:31 +0000419 lib/php/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000420 lib/py/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000421 lib/rb/Makefile
David Reiss8180c0c2008-02-04 21:14:14 +0000422 test/Makefile
Bryan Duxburyc6574472010-10-06 00:12:33 +0000423 test/hs/Makefile
David Reiss9ff3b9d2008-02-15 01:10:23 +0000424 test/py/Makefile
Roger Meier50e43492010-10-08 17:46:06 +0000425 test/py.twisted/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000426 test/rb/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000427])
Marc Slemkob09f5882006-08-23 22:03:34 +0000428
429AC_OUTPUT
David Reiss5cc3ba82010-08-31 16:51:20 +0000430
431
432echo
433echo "$PACKAGE $VERSION"
434echo
435echo "Building code generators ..... :$thrift_generators"
436echo
David Reissea4c9812010-08-31 16:51:21 +0000437echo "Building C++ Library ......... : $have_cpp"
Roger Meier213a6642010-10-27 12:30:11 +0000438echo "Building C (GLib) Library .... : $have_c_glib"
David Reiss5cc3ba82010-08-31 16:51:20 +0000439echo "Building Java Library ........ : $have_java"
440echo "Building C# Library .......... : $have_csharp"
441echo "Building Python Library ...... : $have_python"
442echo "Building Ruby Library ........ : $have_ruby"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000443echo "Building Haskell Library ..... : $have_haskell"
David Reiss5cc3ba82010-08-31 16:51:20 +0000444echo "Building Perl Library ........ : $have_perl"
445echo "Building PHP Library ......... : $have_php"
446echo "Building Erlang Library ...... : $have_erlang"
447if test "$have_cpp" = "yes" ; then
448 echo
449 echo "Building TZlibTransport ...... : $have_zlib"
450 echo "Building TNonblockingServer .. : $have_libevent"
451fi
452if test "$have_java" = "yes" ; then
453 echo
454 echo "Using javac .................. : $JAVAC"
455 echo "Using java ................... : $JAVA"
456 echo "Using ant .................... : $ANT"
457fi
458if test "$have_csharp" = "yes" ; then
459 echo
460 echo "Using .NET 3.5 ............... : $net_3_5"
461fi
462if test "$have_python" = "yes" ; then
463 echo
464 echo "Using Python ................. : $PYTHON"
465fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000466if test "$have_php" = "yes" ; then
467 echo
468 echo "Using php-config ............. : $PHP_CONFIG"
469fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000470if test "$have_ruby" = "yes" ; then
471 echo
472 echo "Using Ruby ................... : $RUBY"
473 echo "Using rspec .................. : $RSPEC"
474fi
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000475if test "$have_haskell" = "yes" ; then
476 echo
477 echo "Using Haskell ................ : $RUNHASKELL"
Bryan Duxburyc6574472010-10-06 00:12:33 +0000478 echo "Using Cabal .................. : $CABAL"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000479fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000480if test "$have_perl" = "yes" ; then
481 echo
482 echo "Using Perl ................... : $PERL"
483fi
484if test "$have_erlang" = "yes" ; then
485 echo
486 echo "Using erlc ................... : $ERLC"
487fi
488echo
489echo "If something is missing that you think should be present,"
490echo "please skim the output of configure to find the missing"
491echo "component. Details are present in config.log."