blob: 53ada3ab4e66ae4c3d16227bc8a47e246064bcb9 [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)
Jens Geyer4aa95df2015-04-03 12:37:03 +020021AC_CONFIG_MACRO_DIR([./aclocal])
Marc Slemkob09f5882006-08-23 22:03:34 +000022
Jake Farrell6fcecd42012-10-11 20:34:25 +000023AC_INIT([thrift], [1.0.0-dev])
Marc Slemkob09f5882006-08-23 22:03:34 +000024
25AC_CONFIG_AUX_DIR([.])
26
Jens Geyer86777192015-07-25 15:59:46 +020027AM_INIT_AUTOMAKE([1.13 subdir-objects tar-ustar])
Bryan Duxburyb005c1f2011-02-09 17:05:11 +000028PKG_PROG_PKG_CONFIG
Marc Slemkob09f5882006-08-23 22:03:34 +000029
David Reissd6832192007-09-05 00:47:32 +000030AC_ARG_VAR([PY_PREFIX], [Prefix for installing Python modules.
31 (Normal --prefix is ignored for Python because
32 Python has different conventions.)
33 Default = "/usr"])
David Reisscdd6f3c2008-03-04 21:10:29 +000034AS_IF([test "x$PY_PREFIX" = x], [PY_PREFIX="/usr"])
David Reissd6832192007-09-05 00:47:32 +000035
David Reissf0c21a72008-07-11 01:26:16 +000036AC_ARG_VAR([JAVA_PREFIX], [Prefix for installing the Java lib jar.
Randy Abernethyc295c822016-02-16 08:22:49 -080037 Default = "/usr/local/lib"])
38AS_IF([test "x$JAVA_PREFIX" != x], [JAVA_PREFIX="$JAVA_PREFIX/usr/local/lib"],
39 [test "x$PREFIX" != x], [JAVA_PREFIX="$PREFIX/usr/local/lib"],
40 [JAVA_PREFIX="/usr/local/lib"])
David Reiss832b2622007-12-28 18:25:33 +000041
Bryan Duxbury3f0b5262010-05-12 21:31:58 +000042AC_ARG_VAR([RUBY_PREFIX], [Prefix for installing Ruby modules.
43 (Normal --prefix is ignored for Ruby because
44 Ruby has different conventions.)
45 Default = none, let ruby setup decide])
46
Bryan Duxbury6a681872010-05-02 22:39:31 +000047AC_ARG_VAR([PHP_PREFIX], [Prefix for installing PHP modules.
48 (Normal --prefix is ignored for PHP because
49 PHP has different conventions.)
50 Default = "/usr/lib/php"])
51AS_IF([test "x$PHP_PREFIX" = x], [PHP_PREFIX="/usr/lib/php"])
52
Bryan Duxbury89200e12010-08-25 17:09:02 +000053AC_ARG_VAR([PHP_CONFIG_PREFIX],
54 [Prefix for installing PHP extension module .ini file.
55 (Normal --prefix is ignored for PHP because PHP has
56 different conventions.)
57 Default = "/etc/php.d"])
58AS_IF([test "x$PHP_CONFIG_PREFIX" = x], [PHP_CONFIG_PREFIX="/etc/php.d"])
59
Jake Farrell05e0cdb2011-05-05 13:45:26 +000060AC_ARG_VAR([INSTALLDIRS], [When installing Perl modules, specifies which
61 of the sets of installation directories
62 to choose: perl, site or vendor.
63 Default = "vendor"])
64AS_IF([test "x$INSTALLDIRS" = x], [INSTALLDIRS="vendor"])
65
David Reissc07057e2010-06-11 17:57:32 +000066AC_ARG_VAR([PERL_PREFIX], [Prefix for installing Perl modules.
67 (Normal --prefix is ignored for Perl because
68 Perl has different conventions.)
Jake Farrell05e0cdb2011-05-05 13:45:26 +000069 Ignored, when INSTALLDIRS set to site or vendor.
David Reissc07057e2010-06-11 17:57:32 +000070 Default = "/usr/local/lib"])
71AS_IF([test "x$PERL_PREFIX" = x], [PERL_PREFIX="/usr/local"])
72
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +000073AC_ARG_VAR([CABAL_CONFIGURE_FLAGS],
74 [Extra flags to pass to cabal: "cabal Setup.lhs configure $CABAL_CONFIGURE_FLAGS".
75 (Typically used to set --user or force --global.)])
76
77AC_SUBST(CABAL_CONFIGURE_FLAGS)
78
Jake Farrellb95b0ff2012-03-22 21:49:10 +000079AC_ARG_VAR([D_IMPORT_PREFIX], [Prefix for installing D modules.
80 [INCLUDEDIR/d2]])
81AS_IF([test "x$D_IMPORT_PREFIX" = x], [D_IMPORT_PREFIX="${includedir}/d2"])
82
83AC_ARG_VAR([DMD_LIBEVENT_FLAGS], [DMD flags for linking libevent (auto-detected if not set).])
84AC_ARG_VAR([DMD_OPENSSL_FLAGS], [DMD flags for linking OpenSSL (auto-detected if not set).])
85
David Reiss832b2622007-12-28 18:25:33 +000086AC_PROG_CC
87AC_PROG_CPP
88AC_PROG_CXX
89AC_PROG_INSTALL
90AC_PROG_LIBTOOL
91AC_PROG_MAKE_SET
Roger Meier3974aab2014-07-14 20:22:12 +020092AC_PROG_BISON(2.5)
David Reiss832b2622007-12-28 18:25:33 +000093AC_PROG_YACC
94AC_PROG_LEX
95AM_PROG_LEX
David Reiss7ed4b982008-02-11 23:24:47 +000096AC_PROG_LN_S
97AC_PROG_MKDIR_P
Christian Lavoieafc6d8f2011-02-20 02:39:19 +000098AC_PROG_AWK
99AC_PROG_RANLIB
David Reiss832b2622007-12-28 18:25:33 +0000100
101AC_LANG([C++])
Gustavo Zacariase856d682015-04-25 17:53:28 +0200102AX_CXX_COMPILE_STDCXX_11([noext], [optional])
David Reiss832b2622007-12-28 18:25:33 +0000103
Konrad Grochowski16a23a62014-11-13 15:33:38 +0100104AM_EXTRA_RECURSIVE_TARGETS([style])
105AC_SUBST(CPPSTYLE_CMD, 'find . -type f \( -iname "*.h" -or -iname "*.cpp" -or -iname "*.cc" -or -iname "*.tcc" \) -printf "Reformatting: %h/%f\n" -exec clang-format -i {} \;')
106
Roger Meierc92cda02014-02-09 21:13:53 +0100107AC_ARG_ENABLE([libs],
108 AS_HELP_STRING([--enable-libs], [build the Apache Thrift libraries [default=yes]]),
109 [], enable_libs=yes
110)
111have_libs=yes
112if test "$enable_libs" = "no"; then
113 have_libs="no"
114 with_cpp="no"
115 with_c_glib="no"
116 with_java="no"
117 with_csharp="no"
118 with_python="no"
119 with_ruby="no"
120 with_haskell="no"
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200121 with_haxe="no"
Roger Meierc92cda02014-02-09 21:13:53 +0100122 with_perl="no"
123 with_php="no"
124 with_php_extension="no"
Mark Erickson932c4702015-08-29 10:46:51 -0500125 with_dart="no"
Roger Meierc92cda02014-02-09 21:13:53 +0100126 with_erlang="no"
127 with_go="no"
128 with_d="no"
129 with_nodejs="no"
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200130 with_lua="no"
Roger Meierc92cda02014-02-09 21:13:53 +0100131fi
132
133
David Reissea4c9812010-08-31 16:51:21 +0000134AX_THRIFT_LIB(cpp, [C++], yes)
135have_cpp=no
136if test "$with_cpp" = "yes"; then
Sergei Nikulov283899b2015-02-11 16:55:22 +0300137 AX_BOOST_BASE([1.53.0])
Jake Farrell3ad80812011-06-09 19:14:22 +0000138 if test "x$succeeded" = "xyes" ; then
Konrad Grochowskiec8d8772014-12-20 12:19:00 +0100139 AC_SUBST([BOOST_LIB_DIR], [$(echo "$BOOST_LDFLAGS" | sed -e 's/^\-L//')])
Ben Craig1684c422015-04-24 08:52:44 -0500140 AC_SUBST([BOOST_CHRONO_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_chrono.a")])
Jim Kingb0b710a2015-07-28 13:31:27 -0400141 AC_SUBST([BOOST_FILESYSTEM_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_filesystem.a")])
Ben Craig1684c422015-04-24 08:52:44 -0500142 AC_SUBST([BOOST_SYSTEM_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_system.a")])
Konrad Grochowskiec8d8772014-12-20 12:19:00 +0100143 AC_SUBST([BOOST_TEST_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_unit_test_framework.a")])
Ben Craig1684c422015-04-24 08:52:44 -0500144 AC_SUBST([BOOST_THREAD_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_thread.a")])
David Reissef5e81b2010-08-31 16:51:28 +0000145 have_cpp="yes"
146 fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000147
Jon Parisea195a252014-12-11 17:36:12 -0800148 AX_CHECK_OPENSSL()
149
David Reissea4c9812010-08-31 16:51:21 +0000150 AX_LIB_EVENT([1.0])
151 have_libevent=$success
David Reiss832b2622007-12-28 18:25:33 +0000152
David Reissea4c9812010-08-31 16:51:21 +0000153 AX_LIB_ZLIB([1.2.3])
154 have_zlib=$success
Chris Piro20c81ad2013-03-07 11:32:48 -0500155
Jake Farrelld6d3e372012-07-27 16:01:33 +0000156 AX_THRIFT_LIB(qt4, [Qt], yes)
157 have_qt=no
158 if test "$with_qt4" = "yes"; then
159 PKG_CHECK_MODULES([QT], [QtCore >= 4.3, QtNetwork >= 4.3], have_qt=yes, have_qt=no)
160 fi
Roger Meier86e89862012-02-10 19:53:20 +0000161 if test "$have_qt" = "yes"; then
Jens Geyer2ac3a3c2014-12-23 18:18:58 +0100162 AC_PATH_PROGS([QT_MOC], [moc-qt4 moc], "fail")
163 if test "$QT_MOC" = "fail"; then
164 have_qt=no
165 fi
Roger Meier86e89862012-02-10 19:53:20 +0000166 fi
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900167
168 AX_THRIFT_LIB(qt5, [Qt5], yes)
169 have_qt5=no
170 qt_reduce_reloc=""
171 if test "$with_qt5" = "yes"; then
172 PKG_CHECK_MODULES([QT5], [Qt5Core >= 5.0, Qt5Network >= 5.0],
173 [have_qt5=yes;qt_reduce_reloc=`$PKG_CONFIG --variable=qt_config Qt5Core | grep "reduce_relocations"`],
174 [have_qt5=no])
175 fi
176 if test "$have_qt5" = "yes"; then
Jens Geyer2ac3a3c2014-12-23 18:18:58 +0100177 AC_PATH_PROGS([QT5_MOC], [moc-qt5 moc], "fail")
178 if test "$QT5_MOC" = "fail"; then
179 have_qt5=no
180 fi
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900181 fi
David Reissea4c9812010-08-31 16:51:21 +0000182fi
183AM_CONDITIONAL([WITH_CPP], [test "$have_cpp" = "yes"])
184AM_CONDITIONAL([AMX_HAVE_LIBEVENT], [test "$have_libevent" = "yes"])
185AM_CONDITIONAL([AMX_HAVE_ZLIB], [test "$have_zlib" = "yes"])
Roger Meier86e89862012-02-10 19:53:20 +0000186AM_CONDITIONAL([AMX_HAVE_QT], [test "$have_qt" = "yes"])
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900187AM_CONDITIONAL([AMX_HAVE_QT5], [test "$have_qt5" = "yes"])
188AM_CONDITIONAL([QT5_REDUCE_RELOCATIONS], [test "x$qt_reduce_reloc" != "x"])
David Reiss832b2622007-12-28 18:25:33 +0000189
Roger Meier32177232012-05-01 11:19:53 +0000190AX_THRIFT_LIB(c_glib, [C (GLib)], yes)
Roger Meier213a6642010-10-27 12:30:11 +0000191if test "$with_c_glib" = "yes"; then
192 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no)
193 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, have_gobject2=no)
194 if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then
195 have_c_glib="yes"
196 fi
197fi
198AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" -a "$have_gobject2" = "yes"])
199
David Reiss520b5ee2008-03-02 07:00:26 +0000200AX_THRIFT_LIB(csharp, [C#], yes)
201if test "$with_csharp" = "yes"; then
Jens Geyer96d80202015-09-03 21:14:30 +0200202 PKG_CHECK_MODULES(MONO, mono >= 2.11.0, mono_2_11=yes, mono_2_11=no)
203 if test "$mono_2_11" == "yes"; then
204 AC_PATH_PROG([MCS], [mcs])
205 if test "x$MCS" != "x"; then
206 mono_mcs="yes"
207 fi
208 fi
David Reissd831a212009-02-13 03:09:52 +0000209 PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no)
210 PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no)
David Reiss5cc3ba82010-08-31 16:51:20 +0000211 if test "$have_mono" = "yes" ; then
212 have_csharp="yes"
213 fi
David Reiss520b5ee2008-03-02 07:00:26 +0000214fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000215AM_CONDITIONAL(WITH_MONO, [test "$have_csharp" = "yes"])
David Reissd831a212009-02-13 03:09:52 +0000216AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"])
Jens Geyer96d80202015-09-03 21:14:30 +0200217AM_CONDITIONAL(MONO_MCS, [test "$mono_mcs" = "yes"])
David Reiss1fdb5922008-02-06 22:10:12 +0000218
David Reiss62d39812008-03-02 07:00:22 +0000219AX_THRIFT_LIB(java, [Java], yes)
220if test "$with_java" = "yes"; then
David Reissd9cdf422009-03-13 21:25:29 +0000221 AX_JAVAC_AND_JAVA
Bryan Duxbury38bab122010-08-12 00:27:14 +0000222 AC_PATH_PROG([ANT], [ant])
Jake Farrell210d7662011-05-25 21:07:29 +0000223 AX_CHECK_ANT_VERSION($ANT, 1.7)
David Reissfff84d12009-05-22 19:50:33 +0000224 AC_SUBST(CLASSPATH)
David Reiss4ca0c8e2009-05-12 23:16:55 +0000225 AC_SUBST(ANT_FLAGS)
jfarrellea2fbcf2014-11-21 10:06:01 -0500226 if test "x$JAVA" != "x" && test "x$JAVAC" != "x" && test "x$ANT" != "x" ; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000227 have_java="yes"
228 fi
David Reiss62d39812008-03-02 07:00:22 +0000229fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000230AM_CONDITIONAL([WITH_JAVA], [test "$have_java" = "yes"])
David Reiss1fdb5922008-02-06 22:10:12 +0000231
Christopher Pirob6f18c22008-03-04 07:09:12 +0000232AX_THRIFT_LIB(erlang, [Erlang], yes)
233if test "$with_erlang" = "yes"; then
David Reiss9e2fd792010-05-18 16:52:48 +0000234 AC_ERLANG_PATH_ERL
235 AC_ERLANG_PATH_ERLC
Roger Meierc7b30862015-11-14 10:08:33 +0100236 AC_PATH_PROG([REBAR], [rebar])
David Reiss31e1b6e2010-08-24 20:45:24 +0000237 if test -n "$ERLC" ; then
238 AC_ERLANG_SUBST_LIB_DIR
239 # Install into the detected Erlang directory instead of $libdir/erlang/lib
240 ERLANG_INSTALL_LIB_DIR="$ERLANG_LIB_DIR"
241 AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
242 fi
Roger Meierc7b30862015-11-14 10:08:33 +0100243 if test -n "$ERL" -a -n "$ERLC" && test "x$REBAR" != "x" ; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000244 have_erlang="yes"
Jens Geyer57ac33e2015-07-28 23:12:10 +0200245
246 # otp_release is simply a number (like "17") for OTP17+ while "R16..." for OTP16 or less.
247 # OTP version is currently only used for running tests.
248 if $ERL -eval 'erlang:display(erlang:system_info(otp_release)),halt().' -noshell | grep "^\"R" >/dev/null; then
249 erlang_otp16_or_less="yes"
250 fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000251 fi
Christopher Pirob6f18c22008-03-04 07:09:12 +0000252fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000253AM_CONDITIONAL(WITH_ERLANG, [test "$have_erlang" = "yes"])
Jens Geyer57ac33e2015-07-28 23:12:10 +0200254AM_CONDITIONAL(ERLANG_OTP16, [test "$erlang_otp16_or_less" = "yes"])
Christopher Pirob6f18c22008-03-04 07:09:12 +0000255
Roger Meier8909cbd2014-01-26 11:44:27 +0100256AX_THRIFT_LIB(nodejs, [Nodejs], yes)
257have_nodejs=no
258if test "$with_nodejs" = "yes"; then
259 AC_PATH_PROGS([NODEJS], [nodejs node])
260 AC_PATH_PROG([NPM], [npm])
261 if test "x$NODEJS" != "x" -a "x$NPM" != "x"; then
262 have_nodejs="yes"
263 fi
264fi
265AM_CONDITIONAL(WITH_NODEJS, [test "$have_nodejs" = "yes"])
266AM_CONDITIONAL(HAVE_NPM, [test "x$NPM" != "x"])
267
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200268AX_THRIFT_LIB(lua, [Lua], yes)
269have_lua=no
270if test "$with_lua" = "yes"; then
Jens Geyer468e63b2015-02-08 14:43:15 +0100271 AX_PROG_LUA(5.2,, have_lua="yes", have_lua="no")
272 if test "$have_lua" = "yes"; then
273 AX_LUA_HEADERS(, have_lua="no")
274 AX_LUA_LIBS(, have_lua="no")
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200275 fi
276fi
277AM_CONDITIONAL(WITH_LUA, [test "$have_lua" = "yes"])
278
Nobuaki Sukegawaffc2bb32016-01-12 19:20:05 +0900279# Find python regardless of with_python value, because it's needed by make cross
280AM_PATH_PYTHON(2.6,, :)
David Reiss5cc3ba82010-08-31 16:51:20 +0000281AX_THRIFT_LIB(python, [Python], yes)
282if test "$with_python" = "yes"; then
Nobuaki Sukegawa25536ad2016-02-04 15:08:55 +0900283 AC_PATH_PROG([PIP], [pip])
jfarrell6cdbd982015-06-23 21:58:50 -0400284 AC_PATH_PROG([TRIAL], [trial])
jfarrell6cdbd982015-06-23 21:58:50 -0400285 if test -n "$TRIAL" && test "x$PYTHON" != "x" && test "x$PYTHON" != "x:" ; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000286 have_python="yes"
287 fi
David Reiss1a140912008-06-11 01:16:37 +0000288fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000289AM_CONDITIONAL(WITH_PYTHON, [test "$have_python" = "yes"])
David Reiss1a140912008-06-11 01:16:37 +0000290
Nobuaki Sukegawaa185d7e2015-11-06 21:24:24 +0900291# Find "python3" executable.
292# It's distro specific and far from ideal but needed to cross test py2-3 at once.
Nobuaki Sukegawaffc2bb32016-01-12 19:20:05 +0900293AC_PATH_PROG([PYTHON3], [python3])
Nobuaki Sukegawa25536ad2016-02-04 15:08:55 +0900294AC_PATH_PROG([PIP3], [pip3])
295if test "x$PYTHON3" != "x" && test "x$PYTHON3" != "x:" && test "x$PIP3" != "x" ; then
Nobuaki Sukegawaffc2bb32016-01-12 19:20:05 +0900296 have_py3="yes"
Nobuaki Sukegawaa185d7e2015-11-06 21:24:24 +0900297fi
298AM_CONDITIONAL(WITH_PY3, [test "$have_py3" = "yes"])
299
T Jake Luciani1952e542009-02-01 04:47:30 +0000300AX_THRIFT_LIB(perl, [Perl], yes)
301if test "$with_perl" = "yes"; then
302 AC_PATH_PROG([PERL], [perl])
David Reissdcc7e9b2010-08-31 16:51:22 +0000303 if test -n "$PERL" ; then
304 AC_PROG_PERL_MODULES([Bit::Vector], success="yes", success="no")
305 have_perl_bit_vector="$success"
Roger Meieraae8acb2014-01-15 13:55:09 +0100306 AC_PROG_PERL_MODULES([Class::Accessor], success="yes", success="no")
307 have_perl_class_accessor="$success"
Bryan Duxbury12373692010-08-19 05:23:59 +0000308 fi
David Reissdcc7e9b2010-08-31 16:51:22 +0000309 if test -n "$PERL" -a "$have_perl_bit_vector" = "yes" ; then
Roger Meieraae8acb2014-01-15 13:55:09 +0100310 if test -n "$PERL" -a "$have_perl_class_accessor" = "yes" ; then
311 have_perl="yes"
312 fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000313 fi
T Jake Luciani1952e542009-02-01 04:47:30 +0000314fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000315AM_CONDITIONAL(WITH_PERL, [test "$have_perl" = "yes"])
T Jake Luciani1952e542009-02-01 04:47:30 +0000316
Bryan Duxbury6a681872010-05-02 22:39:31 +0000317AX_THRIFT_LIB(php, [PHP], yes)
318if test "$with_php" = "yes"; then
319 AC_PATH_PROG([PHP], [php])
David Reiss5cc3ba82010-08-31 16:51:20 +0000320 if test -n "$PHP" ; then
321 have_php="yes"
322 fi
Bryan Duxbury6a681872010-05-02 22:39:31 +0000323fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000324AM_CONDITIONAL(WITH_PHP, [test "$have_php" = "yes"])
Bryan Duxbury6a681872010-05-02 22:39:31 +0000325
Bryan Duxbury89200e12010-08-25 17:09:02 +0000326AX_THRIFT_LIB(php_extension, [PHP_EXTENSION], yes)
327if test "$with_php_extension" = "yes"; then
jfarrell30a472e2014-07-10 18:42:30 -0400328 if test -f "lib/php/src/ext/thrift_protocol/configure"; then
329 AC_PATH_PROG([PHP_CONFIG], [php-config])
330 if test -n "$PHP_CONFIG" ; then
331 AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol])
332 have_php_extension="yes"
333 fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000334 fi
Bryan Duxbury89200e12010-08-25 17:09:02 +0000335fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000336AM_CONDITIONAL(WITH_PHP_EXTENSION, [test "$have_php_extension" = "yes"])
Bryan Duxbury89200e12010-08-25 17:09:02 +0000337
Roger Meier33b720a2012-01-24 18:42:46 +0000338AC_PATH_PROG([PHPUNIT], [phpunit])
339AM_CONDITIONAL(HAVE_PHPUNIT, [test "x$PHPUNIT" != "x"])
340
Mark Erickson932c4702015-08-29 10:46:51 -0500341AX_THRIFT_LIB(dart, [DART], yes)
342if test "$with_dart" = "yes"; then
343 AC_PATH_PROG([DART], [dart])
344 AC_PATH_PROG([DARTPUB], [pub])
345 if test "x$DART" != "x" -a "x$DARTPUB" != "x"; then
346 have_dart="yes"
347 fi
348fi
349AM_CONDITIONAL(WITH_DART, [test "$have_dart" = "yes"])
350
Kevin Clark4bd89162008-07-08 00:47:49 +0000351AX_THRIFT_LIB(ruby, [Ruby], yes)
David Reiss5cc3ba82010-08-31 16:51:20 +0000352have_ruby=no
Kevin Clark4bd89162008-07-08 00:47:49 +0000353if test "$with_ruby" = "yes"; then
354 AC_PATH_PROG([RUBY], [ruby])
Jake Farrell9c39f772011-08-30 19:12:10 +0000355 AC_PATH_PROG([BUNDLER], [bundle])
jfarrell507740c2014-01-22 22:20:21 -0500356 if test "x$RUBY" != "x" -a "x$BUNDLER" != "x"; then
David Reiss5cc3ba82010-08-31 16:51:20 +0000357 have_ruby="yes"
358 fi
Kevin Clark4bd89162008-07-08 00:47:49 +0000359fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000360AM_CONDITIONAL(WITH_RUBY, [test "$have_ruby" = "yes"])
Jake Farrell9c39f772011-08-30 19:12:10 +0000361AM_CONDITIONAL(HAVE_BUNDLER, [test "x$BUNDLER" != "x"])
Bryan Duxburyec473582009-04-07 16:31:04 +0000362
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000363AX_THRIFT_LIB(haskell, [Haskell], yes)
364have_haskell=no
365RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000366CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000367if test "$with_haskell" = "yes"; then
Bryan Duxburyc6574472010-10-06 00:12:33 +0000368 AC_PATH_PROG([CABAL], [cabal])
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000369 AC_PATH_PROG([RUNHASKELL], [runhaskell])
Bryan Duxburyc6574472010-10-06 00:12:33 +0000370 if test "x$CABAL" != "x" -a "x$RUNHASKELL" != "x"; then
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000371 have_haskell="yes"
372 else
373 RUNHASKELL=true
Bryan Duxburyc6574472010-10-06 00:12:33 +0000374 CABAL=true
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000375 fi
376fi
Bryan Duxburyc6574472010-10-06 00:12:33 +0000377AC_SUBST(CABAL)
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000378AC_SUBST(RUNHASKELL)
379AM_CONDITIONAL(WITH_HASKELL, [test "$have_haskell" = "yes"])
Kevin Clark4bd89162008-07-08 00:47:49 +0000380
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000381AX_THRIFT_LIB(go, [Go], yes)
382if test "$with_go" = "yes"; then
Jens Geyer0e87c462013-06-18 22:25:07 +0200383 AC_PATH_PROG([GO], [go])
384 if [[ -x "$GO" ]] ; then
Jens Geyer0cfdf7c2015-03-18 23:38:43 +0200385 AS_IF([test -n "$GO"],[
386 ax_go_version="1.4"
387
388 AC_MSG_CHECKING([for Go version])
389 golang_version=`$GO version 2>&1 | $SED -e 's/\(go \)\(version \)\(go\)\(@<:@0-9@:>@.@<:@0-9@:>@.@<:@0-9@:>@\)\(@<:@\*@:>@*\).*/\4/'`
390 AC_MSG_RESULT($golang_version)
391 AC_SUBST([golang_version],[$golang_version])
392 AX_COMPARE_VERSION([$ax_go_version],[le],[$golang_version],[
393 :
394 have_go="yes"
395 ],[
396 :
397 have_go="no"
398 ])
399 ],[
400 AC_MSG_WARN([could not find Go ])
401 have_go="no"
402 ])
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000403 fi
404fi
405AM_CONDITIONAL(WITH_GO, [test "$have_go" = "yes"])
406
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000407
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200408AX_THRIFT_LIB(haxe, [Haxe], yes)
409if test "$with_haxe" = "yes"; then
410 AC_PATH_PROG([HAXE], [haxe])
411 if [[ -x "$HAXE" ]] ; then
Jens Geyer22dddc92015-02-11 02:14:14 +0100412 AX_PROG_HAXE_VERSION( [3.1.3], have_haxe="yes", have_haxe="no")
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200413 fi
414fi
415AM_CONDITIONAL(WITH_HAXE, [test "$have_haxe" = "yes"])
416
417
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000418AX_THRIFT_LIB(d, [D], yes)
419if test "$with_d" = "yes"; then
420 AX_DMD
421 AC_SUBST(DMD)
422 if test "x$DMD" != "x"; then
423 have_d="yes"
424 fi
425fi
426
427# Determine actual name of the generated D library for use in the command line
428# when compiling tests. This is needed because the -l<lib> syntax doesn't work
429# with OPTLINK (Windows).
430lib_prefix=lib
431lib_suffix=a
432case "$host_os" in
433 cygwin* | mingw* | pw32* | cegcc*)
434 lib_prefix=""
435 lib_suffix=lib
436 ;;
437esac
438D_LIB_NAME="${lib_prefix}thriftd.${lib_suffix}"
439AC_SUBST(D_LIB_NAME)
440D_EVENT_LIB_NAME="${lib_prefix}thriftd-event.${lib_suffix}"
441AC_SUBST(D_EVENT_LIB_NAME)
442D_SSL_LIB_NAME="${lib_prefix}thriftd-ssl.${lib_suffix}"
443AC_SUBST(D_SSL_LIB_NAME)
444
445if test "$have_d" = "yes"; then
446 AX_CHECK_D_MODULE(deimos.event2.event)
447 have_deimos_event2=$success
448
449 with_d_event_tests="no"
450 if test "$have_deimos_event2" = "yes"; then
451 if test "x$DMD_LIBEVENT_FLAGS" = "x"; then
452 if test "$dmd_optlink" = "yes"; then
453 AC_MSG_WARN([D libevent interface found, but cannot auto-detect \
454linker flags for OPTLINK. Please set DMD_LIBEVENT_FLAGS manually.])
455 else
456 AX_LIB_EVENT([2.0])
457 if test "$success" = "yes"; then
458 DMD_LIBEVENT_FLAGS=$(echo "$LIBEVENT_LDFLAGS $LIBEVENT_LIBS" | \
459 sed -e 's/^ *//g;s/ *$//g;s/^\(.\)/-L\1/g;s/ */ -L/g')
460 with_d_event_tests="yes"
461 else
462 AC_MSG_WARN([D libevent interface present, but libevent library not found.])
463 fi
464 fi
465 else
466 with_d_event_tests="yes"
467 fi
468 fi
469
470 AX_CHECK_D_MODULE(deimos.openssl.ssl)
471 have_deimos_openssl=$success
472
473 with_d_ssl_tests="no"
474 if test "$have_deimos_openssl" = "yes"; then
475 if test "x$DMD_OPENSSL_FLAGS" = "x"; then
476 if test "$dmd_optlink" = "yes"; then
477 AC_MSG_WARN([D OpenSSL interface found, but cannot auto-detect \
478linker flags for OPTLINK. Please set DMD_OPENSSL_FLAGS manually.])
479 else
480 AX_CHECK_OPENSSL([with_d_ssl_tests="yes"])
481 if test "$with_d_ssl_tests" = "yes"; then
482 DMD_OPENSSL_FLAGS=$(echo "$OPENSSL_LDFLAGS $OPENSSL_LIBS" | \
483 sed -e 's/^ *//g;s/ *$//g;s/^\(.\)/-L\1/g;s/ */ -L/g')
484 else
485 AC_MSG_WARN([D OpenSSL interface present, but OpenSSL library not found.])
486 fi
487 fi
488 else
489 with_d_ssl_tests="yes"
490 fi
491 fi
492fi
493
494AM_CONDITIONAL(WITH_D, [test "$have_d" = "yes"])
495AM_CONDITIONAL(DMD_OPTLINK, [test "$dmd_optlink" = "yes"])
496AC_SUBST(DMD_OF_DIRSEP, "$dmd_of_dirsep")
497AM_CONDITIONAL(HAVE_DEIMOS_EVENT2, [test "$have_deimos_event2" = "yes"])
498AM_CONDITIONAL(WITH_D_EVENT_TESTS, [test "$with_d_event_tests" = "yes"])
499AC_SUBST(DMD_LIBEVENT_FLAGS)
500AM_CONDITIONAL(HAVE_DEIMOS_OPENSSL, [test "$have_deimos_openssl" = "yes"])
501AM_CONDITIONAL(WITH_D_SSL_TESTS, [test "$with_d_ssl_tests" = "yes"])
502AC_SUBST(DMD_OPENSSL_FLAGS)
503
Roger Meierc88d5812014-01-26 11:51:26 +0100504AC_ARG_ENABLE([tests],
505 AS_HELP_STRING([--enable-tests], [build tests [default=yes]]),
506 [], enable_tests=yes
507)
Jake Farrell627f1a02011-09-14 03:43:49 +0000508have_tests=yes
Roger Meierc88d5812014-01-26 11:51:26 +0100509if test "$enable_tests" = "no"; then
Jake Farrell627f1a02011-09-14 03:43:49 +0000510 have_tests="no"
511fi
512AM_CONDITIONAL(WITH_TESTS, [test "$have_tests" = "yes"])
513
Roger Meierc88d5812014-01-26 11:51:26 +0100514AC_ARG_ENABLE([tutorial],
515 AS_HELP_STRING([--enable-tutorial], [build tutorial [default=yes]]),
516 [], enable_tutorial=yes
517)
518have_tutorial=yes
519if test "$enable_tutorial" = "no"; then
520 have_tutorial="no"
521fi
522AM_CONDITIONAL(WITH_TUTORIAL, [test "$have_tutorial" = "yes"])
523
Roger Meier6e969652011-12-13 00:36:01 +0000524AM_CONDITIONAL(MINGW, false)
525case "${host_os}" in
526*mingw*)
527 mingw32_support="yes"
528 AC_CHECK_HEADER(windows.h)
529 AM_CONDITIONAL(MINGW, true)
530 ;;
531*)
532 AC_ISC_POSIX
533 ;;
534esac
535
David Reiss832b2622007-12-28 18:25:33 +0000536AC_C_CONST
537AC_C_INLINE
538AC_C_VOLATILE
539
540AC_HEADER_STDBOOL
541AC_HEADER_STDC
542AC_HEADER_TIME
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000543AC_HEADER_SYS_WAIT
544AC_TYPE_SIGNAL
David Reiss832b2622007-12-28 18:25:33 +0000545AC_CHECK_HEADERS([arpa/inet.h])
Bryan Duxbury184d2622010-08-17 17:43:58 +0000546AC_CHECK_HEADERS([sys/param.h])
David Reiss832b2622007-12-28 18:25:33 +0000547AC_CHECK_HEADERS([fcntl.h])
548AC_CHECK_HEADERS([inttypes.h])
David Reiss7ed4b982008-02-11 23:24:47 +0000549AC_CHECK_HEADERS([limits.h])
David Reiss832b2622007-12-28 18:25:33 +0000550AC_CHECK_HEADERS([netdb.h])
551AC_CHECK_HEADERS([netinet/in.h])
552AC_CHECK_HEADERS([pthread.h])
553AC_CHECK_HEADERS([stddef.h])
David Reissd7a16f42008-02-19 22:47:29 +0000554AC_CHECK_HEADERS([stdlib.h])
David Reiss832b2622007-12-28 18:25:33 +0000555AC_CHECK_HEADERS([sys/socket.h])
556AC_CHECK_HEADERS([sys/time.h])
Roger Meier2fa9c312011-09-05 19:15:53 +0000557AC_CHECK_HEADERS([sys/un.h])
558AC_CHECK_HEADERS([sys/poll.h])
559AC_CHECK_HEADERS([sys/resource.h])
David Reiss832b2622007-12-28 18:25:33 +0000560AC_CHECK_HEADERS([unistd.h])
561AC_CHECK_HEADERS([libintl.h])
562AC_CHECK_HEADERS([malloc.h])
Roger Meier9d9c4b92011-02-23 20:27:54 +0000563AC_CHECK_HEADERS([openssl/ssl.h])
564AC_CHECK_HEADERS([openssl/rand.h])
565AC_CHECK_HEADERS([openssl/x509v3.h])
Roger Meier12d70532011-12-14 23:35:28 +0000566AC_CHECK_HEADERS([sched.h])
Roger Meier93576362013-03-15 19:49:23 +0100567AC_CHECK_HEADERS([wchar.h])
David Reiss832b2622007-12-28 18:25:33 +0000568
569AC_CHECK_LIB(pthread, pthread_create)
David Reisse4ca1792009-05-21 02:28:19 +0000570dnl NOTE(dreiss): I haven't been able to find any really solid docs
571dnl on what librt is and how it fits into various Unix systems.
572dnl My best guess is that it is where glibc stashes its implementation
573dnl of the POSIX Real-Time Extensions. This seems necessary on Linux,
574dnl and we haven't yet found a system where this is a problem.
575AC_CHECK_LIB(rt, clock_gettime)
David Reiss9b903442009-10-21 05:51:28 +0000576AC_CHECK_LIB(socket, setsockopt)
Roger Meier68691122011-09-09 06:19:35 +0000577
David Reiss832b2622007-12-28 18:25:33 +0000578AC_TYPE_INT16_T
579AC_TYPE_INT32_T
580AC_TYPE_INT64_T
581AC_TYPE_INT8_T
582AC_TYPE_MODE_T
583AC_TYPE_OFF_T
584AC_TYPE_SIZE_T
David Reiss847a2942008-04-21 18:07:43 +0000585AC_TYPE_SSIZE_T
David Reiss832b2622007-12-28 18:25:33 +0000586AC_TYPE_UINT16_T
587AC_TYPE_UINT32_T
588AC_TYPE_UINT64_T
589AC_TYPE_UINT8_T
David Reiss33fc5ad2008-05-09 07:17:34 +0000590AC_CHECK_TYPES([ptrdiff_t], [], [exit 1])
David Reiss832b2622007-12-28 18:25:33 +0000591
David Reiss7ed4b982008-02-11 23:24:47 +0000592AC_STRUCT_TM
593
David Reiss85a8f7b2009-05-21 02:28:16 +0000594dnl NOTE(dreiss): AI_ADDRCONFIG is not defined on OpenBSD.
595AC_CHECK_DECL([AI_ADDRCONFIG], [],
596 [AC_DEFINE([AI_ADDRCONFIG], 0,
597 [Define if the AI_ADDRCONFIG symbol is unavailable])],
598 [
599 #include <sys/types.h>
600 #include <sys/socket.h>
601 #include <netdb.h>
602])
603
David Reiss832b2622007-12-28 18:25:33 +0000604AC_FUNC_ALLOCA
Roger Meier213a6642010-10-27 12:30:11 +0000605AC_FUNC_FORK
David Reiss832b2622007-12-28 18:25:33 +0000606AC_FUNC_MALLOC
David Reiss7ed4b982008-02-11 23:24:47 +0000607AC_FUNC_MEMCMP
David Reiss832b2622007-12-28 18:25:33 +0000608AC_FUNC_REALLOC
609AC_FUNC_SELECT_ARGTYPES
610AC_FUNC_STAT
611AC_FUNC_STRERROR_R
David Reiss7ed4b982008-02-11 23:24:47 +0000612AC_FUNC_STRFTIME
David Reiss832b2622007-12-28 18:25:33 +0000613AC_FUNC_VPRINTF
614AC_CHECK_FUNCS([strtoul])
615AC_CHECK_FUNCS([bzero])
David Reiss7ed4b982008-02-11 23:24:47 +0000616AC_CHECK_FUNCS([ftruncate])
David Reiss832b2622007-12-28 18:25:33 +0000617AC_CHECK_FUNCS([gethostbyname])
Roger Meierbea31442014-04-08 23:52:01 +0200618AC_CHECK_FUNCS([gethostbyname_r])
David Reiss832b2622007-12-28 18:25:33 +0000619AC_CHECK_FUNCS([gettimeofday])
620AC_CHECK_FUNCS([memmove])
621AC_CHECK_FUNCS([memset])
622AC_CHECK_FUNCS([mkdir])
623AC_CHECK_FUNCS([realpath])
624AC_CHECK_FUNCS([select])
Jens Geyer4aa95df2015-04-03 12:37:03 +0200625AC_CHECK_FUNCS([setlocale])
David Reiss832b2622007-12-28 18:25:33 +0000626AC_CHECK_FUNCS([socket])
627AC_CHECK_FUNCS([strchr])
628AC_CHECK_FUNCS([strdup])
David Reiss7ed4b982008-02-11 23:24:47 +0000629AC_CHECK_FUNCS([strerror])
David Reiss832b2622007-12-28 18:25:33 +0000630AC_CHECK_FUNCS([strstr])
631AC_CHECK_FUNCS([strtol])
632AC_CHECK_FUNCS([sqrt])
David Reisse4ca1792009-05-21 02:28:19 +0000633dnl The following functions are optional.
Roger Meier213a6642010-10-27 12:30:11 +0000634AC_CHECK_FUNCS([alarm])
David Reisse4ca1792009-05-21 02:28:19 +0000635AC_CHECK_FUNCS([clock_gettime])
636AC_CHECK_FUNCS([sched_get_priority_min])
637AC_CHECK_FUNCS([sched_get_priority_max])
Jens Geyer0cf802a2014-05-27 23:10:11 +0200638AC_CHECK_FUNCS([inet_ntoa])
639AC_CHECK_FUNCS([pow])
David Reiss832b2622007-12-28 18:25:33 +0000640
David Reiss79db3e12010-08-31 16:51:31 +0000641if test "$cross_compiling" = "no" ; then
642 AX_SIGNED_RIGHT_SHIFT
643fi
David Reisse4d4ea02009-04-02 21:37:17 +0000644
David Reiss5ddabb82010-10-06 17:09:37 +0000645dnl autoscan thinks we need this macro because we have a member function
646dnl called "error". Invoke the macro but don't run the check so autoscan
647dnl thinks we are in the clear. It's highly unlikely that we will ever
648dnl actually use the function that this checks for.
649if false ; then
650 AC_FUNC_ERROR_AT_LINE
651fi
652
Roger Meier213a6642010-10-27 12:30:11 +0000653# --- Coverage hooks ---
654
655AC_ARG_ENABLE(coverage,
656 [ --enable-coverage turn on -fprofile-arcs -ftest-coverage],
657 [case "${enableval}" in
658 yes) ENABLE_COVERAGE=1 ;;
659 no) ENABLE_COVERAGE=0 ;;
660 *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;;
661 esac],
662 [ENABLE_COVERAGE=2])
663
664if test "x[$]ENABLE_COVERAGE" = "x1"; then
665 AC_MSG_WARN(enable coverage)
666 GCOV_CFLAGS="`echo \"[$]CFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
667 GCOV_CXXFLAGS="`echo \"[$]CXXFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage"
668 GCOV_LDFLAGS="-XCClinker -fprofile-arcs -XCClinker -ftest-coverage"
669fi
670
671AC_SUBST(ENABLE_COVERAGE)
672AC_SUBST(GCOV_CFLAGS)
673AC_SUBST(GCOV_CXXFLAGS)
674AC_SUBST(GCOV_LDFLAGS)
675
Roger Meier3faaedf2011-10-02 10:51:45 +0000676AC_ARG_ENABLE(boostthreads,
677 [ --enable-boostthreads use boost threads, instead of POSIX pthread (experimental) ],
678 [case "${enableval}" in
679 yes) ENABLE_BOOSTTHREADS=1 ;;
680 no) ENABLE_BOOSTTHREADS=0 ;;
681 *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;;
682 esac],
683 [ENABLE_BOOSTTHREADS=2])
684
685
686if test "x[$]ENABLE_BOOSTTHREADS" = "x1"; then
687 AC_MSG_WARN(enable boostthreads)
688 AC_DEFINE([USE_BOOST_THREAD], [1], [experimental --enable-boostthreads that replaces POSIX pthread by boost::thread])
Roger Meier38315782011-11-06 11:29:41 +0000689 LIBS="-lboost_thread $LIBS"
Roger Meier3faaedf2011-10-02 10:51:45 +0000690fi
691
692AM_CONDITIONAL([WITH_BOOSTTHREADS], [test "x[$]ENABLE_BOOSTTHREADS" = "x1"])
693
David Reiss832b2622007-12-28 18:25:33 +0000694AC_CONFIG_HEADERS(config.h:config.hin)
Roger Meier58fe5362013-06-22 22:05:22 +0200695AC_CONFIG_HEADERS(lib/cpp/src/thrift/config.h:config.hin)
Chandler Mayccd998a2016-01-10 06:01:10 +0000696AC_CONFIG_HEADERS(lib/c_glib/src/thrift/config.h:config.hin)
Jake Farrell240df172013-06-04 23:59:34 -0400697# gruard against pre defined config.h
698AH_TOP([
699#ifndef CONFIG_H
Roger Meier8909cbd2014-01-26 11:44:27 +0100700#define CONFIG_H
Jake Farrell240df172013-06-04 23:59:34 -0400701])
702AH_BOTTOM([
703#endif
704])
705
David Reiss832b2622007-12-28 18:25:33 +0000706
707AC_CONFIG_FILES([
708 Makefile
709 compiler/cpp/Makefile
Bryan Duxburya1e268c2010-05-03 21:33:00 +0000710 compiler/cpp/version.h
Jake Farrell16b76412012-06-22 03:51:38 +0000711 compiler/cpp/src/windows/version.h
David Reiss832b2622007-12-28 18:25:33 +0000712 lib/Makefile
713 lib/cpp/Makefile
David Reiss351e22b2010-08-31 16:51:19 +0000714 lib/cpp/test/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000715 lib/cpp/thrift-nb.pc
716 lib/cpp/thrift-z.pc
Roger Meier86e89862012-02-10 19:53:20 +0000717 lib/cpp/thrift-qt.pc
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900718 lib/cpp/thrift-qt5.pc
Bryan Duxburyc6574472010-10-06 00:12:33 +0000719 lib/cpp/thrift.pc
Roger Meier213a6642010-10-27 12:30:11 +0000720 lib/c_glib/Makefile
721 lib/c_glib/thrift_c_glib.pc
722 lib/c_glib/test/Makefile
David Reiss1fdb5922008-02-06 22:10:12 +0000723 lib/csharp/Makefile
Roger Meier41ad4342015-03-24 22:30:40 +0100724 lib/csharp/test/ThriftTest/Makefile
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000725 lib/d/Makefile
726 lib/d/test/Makefile
Bryan Duxbury7173bd92010-05-02 22:54:22 +0000727 lib/erl/Makefile
Jens Geyer0e87c462013-06-18 22:25:07 +0200728 lib/go/Makefile
Jens Geyera7da4882013-07-18 00:33:05 +0200729 lib/go/test/Makefile
Jens Geyerfea00ac2014-10-01 02:22:48 +0200730 lib/haxe/test/Makefile
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000731 lib/hs/Makefile
David Reissf8dcf032008-02-23 22:07:39 +0000732 lib/java/Makefile
Roger Meierf2495762011-03-17 19:13:36 +0000733 lib/js/test/Makefile
Stig Bakkenae3775a2014-12-02 09:21:24 +0100734 lib/json/Makefile
735 lib/json/test/Makefile
Roger Meier8909cbd2014-01-26 11:44:27 +0100736 lib/nodejs/Makefile
T Jake Luciani1952e542009-02-01 04:47:30 +0000737 lib/perl/Makefile
738 lib/perl/test/Makefile
Bryan Duxbury6a681872010-05-02 22:39:31 +0000739 lib/php/Makefile
Roger Meier33b720a2012-01-24 18:42:46 +0000740 lib/php/test/Makefile
Mark Erickson932c4702015-08-29 10:46:51 -0500741 lib/dart/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000742 lib/py/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000743 lib/rb/Makefile
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200744 lib/lua/Makefile
BCGde0b4b52015-12-28 01:15:00 -0500745 lib/xml/Makefile
746 lib/xml/test/Makefile
David Reiss8180c0c2008-02-04 21:14:14 +0000747 test/Makefile
Nobuaki Sukegawabd165302016-01-19 11:10:07 +0900748 test/features/Makefile
Roger Meierb3c84092014-09-01 21:53:40 +0200749 test/c_glib/Makefile
Roger Meierd3b9dca2011-06-24 14:01:10 +0000750 test/cpp/Makefile
alisdair sullivan06d0fa02014-08-05 19:54:57 -0700751 test/erl/Makefile
Jens Geyerf4598682014-05-08 23:18:44 +0200752 test/go/Makefile
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200753 test/haxe/Makefile
Bryan Duxburyc6574472010-10-06 00:12:33 +0000754 test/hs/Makefile
Nobuaki Sukegawad094e792016-02-01 21:47:49 +0900755 test/lua/Makefile
Roger Meierb33967b2012-01-21 09:18:05 +0000756 test/php/Makefile
Mark Erickson932c4702015-08-29 10:46:51 -0500757 test/dart/Makefile
Roger Meier01b568c2012-01-10 21:30:02 +0000758 test/perl/Makefile
David Reiss9ff3b9d2008-02-15 01:10:23 +0000759 test/py/Makefile
Roger Meier50e43492010-10-08 17:46:06 +0000760 test/py.twisted/Makefile
Chris Piro20c81ad2013-03-07 11:32:48 -0500761 test/py.tornado/Makefile
Kevin Clark4bd89162008-07-08 00:47:49 +0000762 test/rb/Makefile
Roger Meierfa899322012-10-22 19:27:38 +0000763 tutorial/Makefile
Roger Meier2814c2e2014-07-29 23:28:46 +0200764 tutorial/c_glib/Makefile
Roger Meier18a90d12012-10-24 18:40:06 +0000765 tutorial/cpp/Makefile
Nobuaki Sukegawa402f6412016-02-22 22:41:25 +0900766 tutorial/d/Makefile
Jens Geyer0e87c462013-06-18 22:25:07 +0200767 tutorial/go/Makefile
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200768 tutorial/haxe/Makefile
Roger Meier303eb1b2014-05-14 00:49:41 +0200769 tutorial/hs/Makefile
Roger Meierfa899322012-10-22 19:27:38 +0000770 tutorial/java/Makefile
771 tutorial/js/Makefile
Roger Meier64998e22014-01-27 21:15:56 +0100772 tutorial/nodejs/Makefile
Mark Erickson932c4702015-08-29 10:46:51 -0500773 tutorial/dart/Makefile
Roger Meier1d66d062012-10-26 21:46:18 +0000774 tutorial/py/Makefile
775 tutorial/py.twisted/Makefile
Chris Piro20c81ad2013-03-07 11:32:48 -0500776 tutorial/py.tornado/Makefile
Roger Meiered817d02013-06-09 23:10:06 +0200777 tutorial/rb/Makefile
David Reiss832b2622007-12-28 18:25:33 +0000778])
Marc Slemkob09f5882006-08-23 22:03:34 +0000779
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900780if test "$have_cpp" = "yes" ; then MAYBE_CPP="cpp" ; else MAYBE_CPP="" ; fi
781AC_SUBST([MAYBE_CPP])
782if test "$have_c_glib" = "yes" ; then MAYBE_C_GLIB="c_glib" ; else MAYBE_C_GLIB="" ; fi
783AC_SUBST([MAYBE_C_GLIB])
784if test "$have_java" = "yes" ; then MAYBE_JAVA="java" ; else MAYBE_JAVA="" ; fi
785AC_SUBST([MAYBE_JAVA])
786if test "$have_csharp" = "yes" ; then MAYBE_CSHARP="csharp" ; else MAYBE_CSHARP="" ; fi
787AC_SUBST([MAYBE_CSHARP])
Randy Abernethy983bf7d2015-10-09 12:28:57 -0700788if test "$have_python" = "yes" ; then MAYBE_PYTHON="py" ; else MAYBE_PYTHON="" ; fi
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900789AC_SUBST([MAYBE_PYTHON])
Nobuaki Sukegawaa185d7e2015-11-06 21:24:24 +0900790if test "$have_py3" = "yes" ; then MAYBE_PY3="py3" ; else MAYBE_PY3="" ; fi
791AC_SUBST([MAYBE_PY3])
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900792if test "$have_ruby" = "yes" ; then MAYBE_RUBY="rb" ; else MAYBE_RUBY="" ; fi
793AC_SUBST([MAYBE_RUBY])
Randy Abernethy983bf7d2015-10-09 12:28:57 -0700794if test "$have_haskell" = "yes" ; then MAYBE_HASKELL="hs" ; else MAYBE_HASKELL="" ; fi
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900795AC_SUBST([MAYBE_HASKELL])
796if test "$have_perl" = "yes" ; then MAYBE_PERL="perl" ; else MAYBE_PERL="" ; fi
797AC_SUBST([MAYBE_PERL])
798if test "$have_php" = "yes" ; then MAYBE_PHP="php" ; else MAYBE_PHP="" ; fi
799AC_SUBST([MAYBE_PHP])
Mark Erickson932c4702015-08-29 10:46:51 -0500800if test "$have_dart" = "yes" ; then MAYBE_DART="dart" ; else MAYBE_DART="" ; fi
801AC_SUBST([MAYBE_DART])
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900802if test "$have_go" = "yes" ; then MAYBE_GO="go" ; else MAYBE_GO="" ; fi
803AC_SUBST([MAYBE_GO])
804if test "$have_nodejs" = "yes" ; then MAYBE_NODEJS="nodejs" ; else MAYBE_NODEJS="" ; fi
805AC_SUBST([MAYBE_NODEJS])
Nobuaki Sukegawa826ea992015-10-28 22:19:45 +0900806if test "$have_erlang" = "yes" ; then MAYBE_ERLANG="erl" ; else MAYBE_ERLANG="" ; fi
807AC_SUBST([MAYBE_ERLANG])
Nobuaki Sukegawad094e792016-02-01 21:47:49 +0900808if test "$have_lua" = "yes" ; then MAYBE_LUA="lua" ; else MAYBE_LUA="" ; fi
809AC_SUBST([MAYBE_LUA])
Nobuaki Sukegawa03f0e182015-05-09 18:33:42 +0900810
Marc Slemkob09f5882006-08-23 22:03:34 +0000811AC_OUTPUT
David Reiss5cc3ba82010-08-31 16:51:20 +0000812
813
814echo
815echo "$PACKAGE $VERSION"
816echo
David Reissea4c9812010-08-31 16:51:21 +0000817echo "Building C++ Library ......... : $have_cpp"
Roger Meier213a6642010-10-27 12:30:11 +0000818echo "Building C (GLib) Library .... : $have_c_glib"
David Reiss5cc3ba82010-08-31 16:51:20 +0000819echo "Building Java Library ........ : $have_java"
820echo "Building C# Library .......... : $have_csharp"
821echo "Building Python Library ...... : $have_python"
822echo "Building Ruby Library ........ : $have_ruby"
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200823echo "Building Haxe Library ........ : $have_haxe"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000824echo "Building Haskell Library ..... : $have_haskell"
David Reiss5cc3ba82010-08-31 16:51:20 +0000825echo "Building Perl Library ........ : $have_perl"
826echo "Building PHP Library ......... : $have_php"
Mark Erickson932c4702015-08-29 10:46:51 -0500827echo "Building Dart Library ........ : $have_dart"
David Reiss5cc3ba82010-08-31 16:51:20 +0000828echo "Building Erlang Library ...... : $have_erlang"
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000829echo "Building Go Library .......... : $have_go"
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000830echo "Building D Library ........... : $have_d"
Roger Meier8909cbd2014-01-26 11:44:27 +0100831echo "Building NodeJS Library ...... : $have_nodejs"
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200832echo "Building Lua Library ......... : $have_lua"
Jake Farrellc9c972b2012-07-24 17:28:24 +0000833
David Reiss5cc3ba82010-08-31 16:51:20 +0000834if test "$have_cpp" = "yes" ; then
835 echo
Roger Meier86e89862012-02-10 19:53:20 +0000836 echo "C++ Library:"
837 echo " Build TZlibTransport ...... : $have_zlib"
838 echo " Build TNonblockingServer .. : $have_libevent"
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900839 echo " Build TQTcpServer (Qt4) .... : $have_qt"
840 echo " Build TQTcpServer (Qt5) .... : $have_qt5"
David Reiss5cc3ba82010-08-31 16:51:20 +0000841fi
842if test "$have_java" = "yes" ; then
843 echo
Roger Meier86e89862012-02-10 19:53:20 +0000844 echo "Java Library:"
845 echo " Using javac ............... : $JAVAC"
846 echo " Using java ................ : $JAVA"
847 echo " Using ant ................. : $ANT"
David Reiss5cc3ba82010-08-31 16:51:20 +0000848fi
849if test "$have_csharp" = "yes" ; then
850 echo
Roger Meier86e89862012-02-10 19:53:20 +0000851 echo "C# Library:"
852 echo " Using .NET 3.5 ............ : $net_3_5"
David Reiss5cc3ba82010-08-31 16:51:20 +0000853fi
854if test "$have_python" = "yes" ; then
855 echo
Roger Meier86e89862012-02-10 19:53:20 +0000856 echo "Python Library:"
857 echo " Using Python .............. : $PYTHON"
Jens Geyer5c10fd82014-12-30 16:15:57 +0100858 echo " Using Trial ............... : $TRIAL"
David Reiss5cc3ba82010-08-31 16:51:20 +0000859fi
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000860if test "$have_php" = "yes" ; then
861 echo
Roger Meier86e89862012-02-10 19:53:20 +0000862 echo "PHP Library:"
863 echo " Using php-config .......... : $PHP_CONFIG"
Anthony F. Molinaroddcf32a2010-10-05 16:45:50 +0000864fi
Mark Erickson932c4702015-08-29 10:46:51 -0500865if test "$have_dart" = "yes" ; then
866 echo
867 echo "Dart Library:"
868 echo " Using Dart ................ : $DART"
869 echo " Using Pub ................. : $DARTPUB"
870fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000871if test "$have_ruby" = "yes" ; then
872 echo
Roger Meier86e89862012-02-10 19:53:20 +0000873 echo "Ruby Library:"
874 echo " Using Ruby ................ : $RUBY"
David Reiss5cc3ba82010-08-31 16:51:20 +0000875fi
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000876if test "$have_haskell" = "yes" ; then
877 echo
Roger Meier86e89862012-02-10 19:53:20 +0000878 echo "Haskell Library:"
879 echo " Using Haskell ............. : $RUNHASKELL"
880 echo " Using Cabal ............... : $CABAL"
Anthony F. Molinaroa5df7c72010-09-27 17:22:17 +0000881fi
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200882if test "$have_haxe" = "yes" ; then
883 echo
884 echo "Haxe Library:"
885 echo " Using Haxe ................ : $HAXE"
Jens Geyer22dddc92015-02-11 02:14:14 +0100886 echo " Using Haxe version ........ : $HAXE_VERSION"
Jens Geyerbd52f1a2014-07-28 01:25:30 +0200887fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000888if test "$have_perl" = "yes" ; then
889 echo
Roger Meier86e89862012-02-10 19:53:20 +0000890 echo "Perl Library:"
891 echo " Using Perl ................ : $PERL"
David Reiss5cc3ba82010-08-31 16:51:20 +0000892fi
893if test "$have_erlang" = "yes" ; then
894 echo
Roger Meier86e89862012-02-10 19:53:20 +0000895 echo "Erlang Library:"
896 echo " Using erlc ................ : $ERLC"
Roger Meierc7b30862015-11-14 10:08:33 +0100897 echo " Using rebar ............... : $REBAR"
David Reiss5cc3ba82010-08-31 16:51:20 +0000898fi
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000899if test "$have_go" = "yes" ; then
900 echo
Roger Meier86e89862012-02-10 19:53:20 +0000901 echo "Go Library:"
Jens Geyer0e87c462013-06-18 22:25:07 +0200902 echo " Using Go................... : $GO"
Jens Geyera7da4882013-07-18 00:33:05 +0200903 echo " Using Go version........... : $($GO version)"
Christian Lavoieafc6d8f2011-02-20 02:39:19 +0000904fi
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000905if test "$have_d" = "yes" ; then
906 echo
Jens Geyerbcca1d92013-12-26 19:24:30 +0100907 echo "D Library:"
908 echo " Using D Compiler .......... : $DMD"
909 echo " Building D libevent tests . : $with_d_event_tests"
910 echo " Building D SSL tests ...... : $with_d_ssl_tests"
Jake Farrellb95b0ff2012-03-22 21:49:10 +0000911fi
Roger Meier8909cbd2014-01-26 11:44:27 +0100912if test "$have_nodejs" = "yes" ; then
913 echo
914 echo "NodeJS Library:"
915 echo " Using NodeJS .............. : $NODEJS"
916 echo " Using NodeJS version....... : $($NODEJS --version)"
917fi
Roger Meier6cf0ffc2014-04-05 00:45:42 +0200918if test "$have_lua" = "yes" ; then
919 echo
920 echo "Lua Library:"
921 echo " Using Lua .............. : $LUA"
922fi
David Reiss5cc3ba82010-08-31 16:51:20 +0000923echo
924echo "If something is missing that you think should be present,"
925echo "please skim the output of configure to find the missing"
926echo "component. Details are present in config.log."