support for struct dirent.d_type added to Linux readdir wrapper
[public/netxms.git] / configure.ac
CommitLineData
8e76f8aa 1# $Id$
d16cf8a5 2#
ef0c727b
VK
3# NetXMS - Network Management System
4# Configure script
d16cf8a5
AK
5#
6
5f77533a 7AC_INIT([NetXMS], [2.1-RC1], [bugs@netxms.org])
ba1d810c 8AC_CONFIG_AUX_DIR(config)
8e7f84bf 9AC_CONFIG_HEADERS(config.h)
d16cf8a5 10AM_INIT_AUTOMAKE
09867021 11m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
d16cf8a5 12
aa24418a 13AC_CONFIG_MACRO_DIR([m4])
5387ff75 14
ef0c727b
VK
15#--------------------------------------------------------------------
16# Functions
17#--------------------------------------------------------------------
5387ff75 18
ef0c727b
VK
19check_substr()
20{
1010cff7 21 for w in $1; do
ef0c727b
VK
22 if test "x$w" = "x$2"; then
23 return 0;
24 fi
25 done
26 return 1
27}
16dff090 28
b535eed6
VK
29find_existing_dir()
30{
31 for d in "$@"; do
32 if test -d "$d"; then
33 __dir="$d"
34 return 0;
35 fi
36 done
37 return 1
38}
39
d3c8926d 40
ef0c727b
VK
41#--------------------------------------------------------------------
42# Initialize variables
43#--------------------------------------------------------------------
d3c8926d 44
ef0c727b 45PLATFORM=`uname -s`
c3900dbb 46CPUTYPE=`uname -p`
ef0c727b
VK
47COMPONENTS=""
48DISABLE_ICONV="no"
49DISABLE_ENCRYPTION="no"
4050bafb 50DISABLE_LMSENSORS="no"
f32b0155 51DISABLE_SSH="no"
f974a50a 52ENABLE_DEBUG="no"
25ae8377 53ENABLE_WERROR="no"
ef0c727b 54STATIC_BUILD="no"
c1165d33 55ALL_STATIC="no"
ef0c727b
VK
56DBDRIVER_SELECTED="no"
57USE_PTH="no"
58BUILD_SERVER="no"
59BUILD_AGENT="no"
60BUILD_CLIENT="no"
ef0c727b 61BUILD_STATIC_AGENT="no"
447350a9 62BUILD_SDK="no"
f65df2b1 63MODULES="libnetxms tools install"
ef0c727b 64STATIC_SUBAGENT_LIST=""
c1165d33 65PROPOSED_STATIC_SUBAGENTS="default"
ef0c727b
VK
66SUBAGENT_DIRS=""
67SUBAGENT_LIBS=""
c7c6ce77 68AGENT_DIRS=""
7c48e2aa 69SERVER_LIBS=""
ef0c727b 70SERVER_TOOLS=""
7dda4453 71SERVER_INCLUDE=""
31b0f68b 72SMSDRV_DIRS=""
6fad8870 73HDLINK_DIRS=""
52a2232c 74PDSDRV_DIRS=""
ef0c727b
VK
75TOP_LEVEL_MODULES=""
76CONTRIB_MODULES=""
c2612d83 77CLIENT_COMPONENTS=""
25a19da6 78BUILD_UNICODE="yes"
467c489f 79FORCE_INTERNAL_EXPAT="no"
25a19da6 80FORCE_INTERNAL_LIBTRE="yes"
17b35ccc
VK
81USE_INTERNAL_LIBTRE="no"
82FORCE_INTERNAL_LIBTRE="no"
f5393033 83FORCE_INTERNAL_JANSSON="no"
1fd41bcd 84FORCE_INTERNAL_ZLIB="no"
3d2bc3ae 85FORCE_INTERNAL_SQLITE="no"
cc297a70 86FORCE_32BIT_BUILD="no"
df9812a9 87FORCE_INTERNAL_GETOPT="no"
545bda2d
VK
88LDFLAGS_PREFIX=""
89LDFLAGS_SUFFIX=""
1ef5e57a
VK
90LTINIT_CC=""
91LTINIT_CXX=""
9113e749 92SQLFLAGS=""
a5a95ac8 93RUNTIME_PREFIX=""
6ecea6ef 94RUNTIME_STATE_DIR=""
6dde8627 95HPUX_HPPA="no"
058bf6fc 96XMPP_SUPPORT="yes"
6688966e 97ZEROMQ_SUPPORT="no"
ca026ade 98ZEROMQ_REQUIRED="no"
7fcdcb0c
VK
99ZEROMQ_CPPFLAGS=""
100ZEROMQ_LDFLAGS=""
123800f4
VK
101MQTT_SUPPORT="yes"
102MQTT_REQUIRED="no"
103MQTT_CPPFLAGS=""
104MQTT_LDFLAGS=""
fab0916b 105MQTT_LIBS=""
2cfe4482 106LDAP_SUPPORT="yes"
25a19da6 107DISABLE_READLINE="yes"
6d14d0b0 108TUXEDO_LIBS=""
c7c6ce77 109TUXEDO_TPINIT=""
d6235717 110MONGODB_LIBS=""
b7c8729b 111VMGR_LIBS=""
442297fa 112LIBVIRT_BASE=""
b8adb0f2
VK
113DISABLE_IPV6="no"
114IPV6_SUPPORT="no"
b5e5849b 115INSTALL_LIBPATH=""
9c3bf7f4
VK
116WITH_ENCRYPTION="no"
117DISABLE_COMMONCRYPTO="no"
096e561b
VK
118OPENSSL_LIBSSL="ssl"
119OPENSSL_LIBCRYPTO="crypto"
d3c8926d 120
16dff090 121
ef0c727b 122#--------------------------------------------------------------------
fecf6a2b
VK
123# Common compilation flags
124#--------------------------------------------------------------------
125
842c22f4 126CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DTRE_WCHAR=1"
fecf6a2b
VK
127
128
129#--------------------------------------------------------------------
ef0c727b
VK
130# Parse command line parameters
131#--------------------------------------------------------------------
7c9c94a7 132
a5a95ac8 133AC_ARG_WITH(runtime-prefix,
125543aa 134[AS_HELP_STRING(--with-runtime-prefix=prefix,installation prefix to be used at run time)],
a5a95ac8
VK
135[
136 RUNTIME_PREFIX="$withval"
54df06e2 137 RUNTIME_STATE_DIR="$RUNTIME_PREFIX/var"
6ecea6ef
VK
138])
139
140AC_ARG_WITH(runtime-state-dir,
141[AS_HELP_STRING(--with-runtime-state-dir=path,state directory to be used at run time)],
142[
143 RUNTIME_STATE_DIR="$withval"
a5a95ac8
VK
144])
145
ef0c727b
VK
146AC_ARG_WITH(server,
147[AS_HELP_STRING(--with-server,build server)],
148[
231b0aad 149 COMPONENTS="$COMPONENTS sqlite snmp server agent sqlite_drv"
c5c0f362
VK
150])
151
152AC_ARG_WITH(snmp,
153[AS_HELP_STRING(--with-snmp,build SNMP library and tools)],
154[
155 COMPONENTS="$COMPONENTS snmp"
ef0c727b 156])
7c9c94a7 157
ef0c727b
VK
158AC_ARG_WITH(client,
159[AS_HELP_STRING(--with-client,build client library and tools)],
160[
161 COMPONENTS="$COMPONENTS client"
162])
d16cf8a5 163
a7a03ffd
VK
164AC_ARG_WITH(client-proxy,
165[AS_HELP_STRING(--with-client-proxy,build client proxy)],
166[
167 COMPONENTS="$COMPONENTS client-proxy"
168])
169
c2612d83 170AC_ARG_WITH(agent,
ef0c727b
VK
171[AS_HELP_STRING(--with-agent,build agent)],
172[
231b0aad 173 COMPONENTS="$COMPONENTS sqlite snmp agent sqlite_drv"
ef0c727b 174])
d16cf8a5 175
ef0c727b
VK
176AC_ARG_WITH(static-agent,
177[AS_HELP_STRING(--with-static-agent,build statically linked agent)],
178[
231b0aad 179 COMPONENTS="$COMPONENTS sqlite snmp static-agent sqlite_drv"
fb12fd54 180 FORCE_INTERNAL_EXPAT="yes"
fb12fd54 181 FORCE_INTERNAL_JANSSON="yes"
3d2bc3ae
VK
182 FORCE_INTERNAL_LIBTRE="yes"
183 FORCE_INTERNAL_SQLITE="yes"
fb12fd54 184 FORCE_INTERNAL_ZLIB="yes"
ef0c727b 185])
d16cf8a5 186
ef0c727b
VK
187AC_ARG_WITH(ipso-agent,
188[AS_HELP_STRING(--with-ipso-agent,build statically linked IPSO agent)],
189[
971abf4f 190 COMPONENTS="$COMPONENTS ipso-agent"
ef0c727b 191])
521d90e7 192
7dda4453
VK
193AC_ARG_WITH(sdk,
194[AS_HELP_STRING(--with-sdk,build and install files necessary for extension development)],
195[
b550188f 196 COMPONENTS="$COMPONENTS sqlite sdk"
7dda4453
VK
197 TOP_LEVEL_MODULES="$TOP_LEVEL_MODULES include"
198 SERVER_INCLUDE="include"
447350a9 199 BUILD_SDK="yes"
4671448c
VK
200])
201
202AC_ARG_WITH(static-sdk,
203[AS_HELP_STRING(--with-static-sdk,build and install files necessary for extension development (static libs only))],
204[
b550188f 205 COMPONENTS="$COMPONENTS sqlite sdk"
4671448c
VK
206 TOP_LEVEL_MODULES="$TOP_LEVEL_MODULES include"
207 SERVER_INCLUDE="include"
208 BUILD_SDK="yes"
209 STATIC_BUILD="yes"
7dda4453
VK
210])
211
ef0c727b
VK
212AC_ARG_WITH(mdebug,
213[AS_HELP_STRING(--with-mdebug,use debug version of memory allocation functions)],
214[
215 CPPFLAGS="$CPPFLAGS -DNETXMS_MEMORY_DEBUG"
216])
d16cf8a5 217
b82ad936
AK
218AC_ARG_WITH(profiler,
219[AS_HELP_STRING(--with-profiler,link with libprofiler from gperftools)],
220[
221 LDFLAGS="$LDFLAGS -lprofiler"
222])
223
467c489f
VK
224AC_ARG_WITH(internal-libexpat,
225[AS_HELP_STRING(--with-internal-libexpat,force use of bundled libexpat)],
226[
227 FORCE_INTERNAL_EXPAT="yes"
228])
229
17b35ccc
VK
230AC_ARG_WITH(internal-libtre,
231[AS_HELP_STRING(--with-internal-libtre,force use of bundled libtre)],
232[
233 FORCE_INTERNAL_LIBTRE="yes"
234])
235
f5393033
VK
236AC_ARG_WITH(internal-libjansson,
237[AS_HELP_STRING(--with-internal-libjansson,force use of bundled libjansson)],
238[
239 FORCE_INTERNAL_JANSSON="yes"
240])
241
1fd41bcd
VK
242AC_ARG_WITH(internal-zlib,
243[AS_HELP_STRING(--with-internal-zlib,force use of bundled zlib)],
244[
245 FORCE_INTERNAL_ZLIB="yes"
246])
247
3d2bc3ae
VK
248AC_ARG_WITH(internal-sqlite,
249[AS_HELP_STRING(--with-internal-sqlite,force use of bundled sqlite)],
250[
251 FORCE_INTERNAL_SQLITE="yes"
252])
253
df9812a9
VK
254AC_ARG_WITH(internal-getopt,
255[AS_HELP_STRING(--with-internal-getopt,force use of bundled getopt)],
256[
257 FORCE_INTERNAL_GETOPT="yes"
258])
259
c1165d33
VK
260AC_ARG_WITH(all-static,
261[AS_HELP_STRING(--with-all-static,use -all-static flag for linking executables)],
262[
263 ALL_STATIC="yes"
264])
265
266AC_ARG_WITH(static-subagents,
919e2dce 267[AS_HELP_STRING(--with-static-subagents-list,define list of static subagents (separated by spaces))],
c1165d33
VK
268[
269 PROPOSED_STATIC_SUBAGENTS="$withval"
270])
271
50e4bc8c
VK
272AC_ARG_WITH(jdk,
273[AS_HELP_STRING(--with-jdk,build Java-dependent components)],
274[ if test "x$withval" != "xno" ; then
275 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
276 LD_RUN_PATH="${withval}/lib${LD_RUN_PATH:+:}${LD_RUN_PATH}"
277 LDFLAGS="$LDFLAGS -L${withval}/lib"
278 CPPFLAGS="$CPPFLAGS -I${withval}/include"
a041dc13
VK
279 if test -d "${withval}/include/linux"; then
280 CPPFLAGS="$CPPFLAGS -I${withval}/include/linux"
281 fi
e2e3ce85
VK
282 if test -d "${withval}/include/solaris"; then
283 CPPFLAGS="$CPPFLAGS -I${withval}/include/solaris"
284 fi
1de39d9e 285 AC_DEFINE_UNQUOTED([JDK_LOCATION],["$withval"],[JDK location])
50e4bc8c
VK
286 fi
287 COMPONENTS="$COMPONENTS java"
288fi ])
289
b14c3f22
VK
290AC_ARG_WITH(tuxedo,
291[AS_HELP_STRING(--with-tuxedo,build Tuxedo-dependent components)],
292[ if test "x$withval" != "xno" ; then
293 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
294 TUXEDO_BASE="$withval"
295 fi
296 COMPONENTS="$COMPONENTS tuxedo"
297fi ])
298
cac05a70 299AC_ARG_WITH(zeromq,
123800f4 300[AS_HELP_STRING(--with-zeromq,build with ZeroMQ)],
cac05a70 301[ if test "x$withval" != "xno" ; then
302 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
303 ZEROMQ_BASE="$withval"
ca026ade 304 ZEROMQ_REQUIRED=yes
cac05a70 305 fi
306 COMPONENTS="$COMPONENTS zeromq"
ca026ade
VK
307 ZEROMQ_SUPPORT=yes
308else
309 ZEROMQ_SUPPORT=no
cac05a70 310fi ])
311
123800f4
VK
312AC_ARG_WITH(mqtt,
313[AS_HELP_STRING(--with-mqtt,build with MQTT support)],
314[ if test "x$withval" != "xno" ; then
315 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
316 MQTT_BASE="$withval"
317 MQTT_REQUIRED=yes
318 fi
319 MQTT_SUPPORT=yes
320else
321 MQTT_SUPPORT=no
322fi ])
323
d6235717 324AC_ARG_WITH(mongodb,
325[AS_HELP_STRING(--with-mongodb,build MongoDB-dependent components)],
326[ if test "x$withval" != "xno" ; then
327 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
328 MONGODB_BASE="$withval"
329 fi
330 COMPONENTS="$COMPONENTS mongodb"
331fi ])
332
b7c8729b 333AC_ARG_WITH(vmgr,
442297fa
VK
334[AS_HELP_STRING(--with-vmgr,build VirtualHost management subagent)],
335[ if test "x$withval" != "xno" ; then
336 COMPONENTS="$COMPONENTS vmgr"
337fi ])
338
339AC_ARG_WITH(libvirt,
340[AS_HELP_STRING(--with-libvirt,provide libvirt location)],
b7c8729b 341[ if test "x$withval" != "xno" ; then
342 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
442297fa 343 LIBVIRT_BASE="$withval"
b7c8729b 344 fi
b7c8729b 345fi ])
346
9486b324
VK
347AC_ARG_WITH(sqlite,
348[AS_HELP_STRING(--with-sqlite,build SQLite database driver)],
349[ if test "x$withval" != "xno" ; then
8817f620 350 COMPONENTS="$COMPONENTS sqlite_drv"
ef0c727b 351 DBDRIVER_SELECTED="yes"
9486b324
VK
352fi ])
353
c4b88c3d
VK
354AC_ARG_WITH(odbc,
355[AS_HELP_STRING(--with-odbc,build ODBC database driver)],
356[ if test "x$withval" != "xno" ; then
357 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
2cfe4482
VK
358 ODBC_LD_RUN_PATH="${withval}/lib"
359 ODBC_LDFLAGS="-L${withval}/lib"
360 ODBC_CPPFLAGS="-I${withval}/include"
ef0c727b
VK
361 fi
362 COMPONENTS="$COMPONENTS odbc"
363 DBDRIVER_SELECTED="yes"
c4b88c3d
VK
364fi ])
365
ed77e726 366AC_ARG_WITH(oracle,
41b4790d
VK
367[AS_HELP_STRING(--with-oracle,build Oracle database driver)],
368[ if test "x$withval" != "xno" ; then
df5afcf1 369 ORABASE="$ORACLE_HOME"
41b4790d 370 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
df5afcf1
VK
371 ORABASE="$withval"
372 fi
373 if test "x$ORABASE" != "x"; then
06d9dfbc 374 if test -x "$ORABASE/lib" ; then
df5afcf1
VK
375 ORACLE_LD_RUN_PATH="${ORABASE}/lib"
376 ORACLE_LDFLAGS="-L${ORABASE}/lib"
7d8c91ef 377 else
df5afcf1
VK
378 ORACLE_LD_RUN_PATH="${ORABASE}"
379 ORACLE_LDFLAGS="-L${ORABASE}"
7d8c91ef 380 fi
06d9dfbc 381 if test -x "$ORABASE/include" ; then
df5afcf1 382 ORACLE_CPPFLAGS="-I${ORABASE}/include"
7d8c91ef 383 fi
06d9dfbc 384 if test -x "$ORABASE/sdk/include" ; then
df5afcf1 385 ORACLE_CPPFLAGS="-I${ORABASE}/sdk/include"
7d8c91ef 386 fi
06d9dfbc 387 if test -x "$ORABASE/rdbms/public" ; then
df5afcf1 388 ORACLE_CPPFLAGS="-I${ORABASE}/rdbms/public"
2f6e6064 389 fi
41b4790d
VK
390 fi
391 COMPONENTS="$COMPONENTS oracle"
392 DBDRIVER_SELECTED="yes"
393fi ])
394
d16cf8a5 395AC_ARG_WITH(mysql,
c4b88c3d 396[AS_HELP_STRING(--with-mysql,build MySQL database driver)],
d16cf8a5
AK
397[ if test "x$withval" != "xno" ; then
398 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
9f1ea006
VK
399 if find_existing_dir "${withval}/lib" "${withval}/lib/mysql" "${withval}/mysql/lib"; then
400 MYSQL_LD_RUN_PATH="$__dir$"
401 MYSQL_LDFLAGS="-L$__dir"
402 fi
403 if find_existing_dir "${withval}/include" "${withval}/include/mysql" "${withval}/mysql/include"; then
404 MYSQL_CPPFLAGS="-I$__dir"
405 fi
d16cf8a5 406 else
9f1ea006
VK
407 if find_existing_dir "/usr/local/mysql/lib" "/usr/local/mysql/lib/mysql" "/usr/lib64/mysql" "/usr/lib/mysql" "/usr/mysql/lib" "/usr/mysql/lib/mysql" "/usr/local/lib/mysql"; then
408 MYSQL_LD_RUN_PATH="$__dir$"
409 MYSQL_LDFLAGS="-L$__dir"
410 fi
411 if find_existing_dir "/usr/local/mysql/include" "/usr/include/mysql" "/usr/mysql/include" "/usr/local/include/mysql" "/usr/local/mysql/include/mysql" "/usr/mysql/include/mysql"; then
412 MYSQL_CPPFLAGS="-I$__dir"
413 fi
d16cf8a5 414 fi
ef0c727b
VK
415 COMPONENTS="$COMPONENTS mysql"
416 DBDRIVER_SELECTED="yes"
6693a1d0 417fi ])
d16cf8a5
AK
418
419AC_ARG_WITH(pgsql,
c4b88c3d 420[AS_HELP_STRING(--with-pgsql,build PostgreSQL database driver)],
d16cf8a5 421[ if test "x$withval" != "xno" ; then
6693a1d0 422 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
b535eed6
VK
423 if find_existing_dir "${withval}/lib" "${withval}/lib/pgsql" "${withval}/lib/postgresql" "${withval}/pgsql/lib" "${withval}/postgresql/lib"; then
424 PGSQL_LD_RUN_PATH="$__dir$"
425 PGSQL_LDFLAGS="-L$__dir"
426 fi
427 if find_existing_dir "${withval}/include" "${withval}/include/pgsql" "${withval}/include/postgresql" "${withval}/pgsql/include" "${withval}/postgresql/include"; then
428 PGSQL_CPPFLAGS="-I$__dir"
429 fi
6693a1d0 430 else
b535eed6
VK
431 if find_existing_dir "/usr/local/pgsql/lib" "/usr/local/pgsql/lib/pgsql" "/usr/lib64/pgsql" "/usr/lib/pgsql" "/usr/pgsql/lib" "/usr/pgsql/lib/pgsql" "/usr/local/lib/pgsql" "/usr/local/postgresql/lib" "/usr/local/postgresql/lib/postgresql" "/usr/lib/postgresql" "/usr/postgresql/lib" "/usr/postgresql/lib/postgresql" "/usr/local/lib/postgresql"; then
432 PGSQL_LD_RUN_PATH="$__dir$"
433 PGSQL_LDFLAGS="-L$__dir"
434 fi
435 if find_existing_dir "/usr/local/pgsql/include" "/usr/include/pgsql" "/usr/pgsql/include" "/usr/local/include/pgsql" "/usr/local/pgsql/include/pgsql" "/usr/pgsql/include/pgsql" "/usr/local/postgresql/include" "/usr/include/postgresql" "/usr/postgresql/include" "/usr/local/include/postgresql" "/usr/local/postgresql/include/postgresql" "/usr/postgresql/include/postgresql"; then
436 PGSQL_CPPFLAGS="-I$__dir"
437 fi
6693a1d0 438 fi
ef0c727b
VK
439 COMPONENTS="$COMPONENTS pgsql"
440 DBDRIVER_SELECTED="yes"
6693a1d0 441fi ])
d16cf8a5 442
84277a0f
AK
443AC_ARG_WITH(db2,
444[AS_HELP_STRING(--with-db2,build DB2 database driver)],
445[ if test "x$withval" != "xno" ; then
446 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
447 if test `uname -m` = 'i386' || test `uname -m` = 'i686'; then
448 DB2_LIB_DIR=lib32
449 else
450 DB2_LIB_DIR=lib64
451 fi
452 if test -x "$withval/${DB2_LIB_DIR}" ; then
453 LD_RUN_PATH="${withval}/${DB2_LIB_DIR}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
454 LDFLAGS="$LDFLAGS -L${withval}/${DB2_LIB_DIR}"
455 else
456 LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
457 LDFLAGS="$LDFLAGS -L${withval}"
458 fi
459 if test -x "$withval/include" ; then
460 CPPFLAGS="$CPPFLAGS -I${withval}/include"
461 fi
462
463 unset DB2_LIB_DIR
464 fi
465 COMPONENTS="$COMPONENTS db2"
466 DBDRIVER_SELECTED="yes"
467fi ])
468
37861c72
VK
469AC_ARG_WITH(informix,
470[AS_HELP_STRING(--with-informix,build Informix database driver)],
471[ if test "x$withval" != "xno" ; then
472 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
473 if test -x "$withval/lib/cli" ; then
474 LD_RUN_PATH="${withval}/lib/cli${LD_RUN_PATH:+:}${LD_RUN_PATH}"
475 LDFLAGS="$LDFLAGS -L${withval}/lib/cli"
476 if test -x "$withval/lib/esql" ; then
477 LD_RUN_PATH="${withval}/lib/esql${LD_RUN_PATH:+:}${LD_RUN_PATH}"
478 LDFLAGS="$LDFLAGS -L${withval}/lib/esql"
479 fi
480 else
481 LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
482 LDFLAGS="$LDFLAGS -L${withval}"
483 fi
484 if test -x "$withval/incl/cli" ; then
485 CPPFLAGS="$CPPFLAGS -I${withval}/incl/cli"
486 fi
487 fi
488 COMPONENTS="$COMPONENTS informix"
489 DBDRIVER_SELECTED="yes"
490fi ])
491
ef0c727b 492AC_ARG_WITH(openssl,
1010cff7
VK
493[AS_HELP_STRING(--with-openssl,specify OpenSSL location)],
494[
495 if test "x$withval" != "xno" ; then
496 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
497 LD_RUN_PATH="${withval}/lib${LD_RUN_PATH:+:}${LD_RUN_PATH}"
498 LDFLAGS="$LDFLAGS -L${withval}/lib"
499 CPPFLAGS="$CPPFLAGS -I${withval}/include"
500 else
501 LD_RUN_PATH="/usr/local/lib:/opt/openssl/lib:/usr/local/ssl/lib:${LD_RUN_PATH:+:}${LD_RUN_PATH}"
502 LDFLAGS="$LDFLAGS -L/usr/local/lib -L/opt/openssl/lib"
4d37b0c5 503 CPPFLAGS="$CPPFLAGS -I/opt/openssl/include"
ef0c727b 504 fi
1010cff7 505 fi
1010cff7 506])
ef0c727b 507
9c3bf7f4
VK
508AC_ARG_ENABLE(commoncrypto,
509[AS_HELP_STRING(--disable-commoncrypto,disable CommonCrypto usage on Mac OS X)],
510[
511 if test "x$enableval" = "xno"; then
512 DISABLE_COMMONCRYPTO="yes"
513 fi
514])
515
096e561b
VK
516AC_ARG_WITH(bundled-openssl,
517[AS_HELP_STRING(--with-bundled-openssl,use bundled OpenSSL libraries with product-specific prefix)],
518[
519 OPENSSL_LIBSSL="nxssl"
520 OPENSSL_LIBCRYPTO="nxcrypto"
521])
522
f32b0155
VK
523AC_ARG_ENABLE(ssh,
524[AS_HELP_STRING(--disable-ssh,disable SSH support)],
525[
526 if test "x$enableval" = "xno"; then
527 DISABLE_SSH="yes"
528 fi
529])
530
b5e5849b
VK
531AC_ARG_WITH(jemalloc,
532[AS_HELP_STRING(--with-jemalloc,specify libjemalloc location)],
533[
534 if test "x$withval" != "xno" ; then
535 if test "x$withval" != "x" && test "x$withval" != "xyes" ; then
536 LD_RUN_PATH="${withval}/lib${LD_RUN_PATH:+:}${LD_RUN_PATH}"
537 LDFLAGS="$LDFLAGS -L${withval}/lib"
538 CPPFLAGS="$CPPFLAGS -I${withval}/include"
539 INSTALL_LIBPATH="${withval}/lib${INSTALL_LIBPATH:+:}${INSTALL_LIBPATH}"
540 fi
541 fi
542])
543
ef0c727b
VK
544AC_ARG_ENABLE(iconv,
545[AS_HELP_STRING(--disable-iconv,do not use iconv() for text conversions)],
3a7ce527 546[
25a19da6
VK
547 if test "x$$enableval" = "xno"; then
548 DISABLE_ICONV="yes"
549 fi
3a7ce527 550])
3a7ce527 551
b8adb0f2
VK
552AC_ARG_ENABLE(ipv6,
553[AS_HELP_STRING(--disable-ipv6,disable IPv6 support)],
554[
25a19da6
VK
555 if test "x$$enableval" = "xno"; then
556 DISABLE_IPV6="yes"
557 fi
b8adb0f2
VK
558])
559
bd96aa53
VK
560AC_ARG_ENABLE(iconv-cache,
561[AS_HELP_STRING([--enable-iconv-cache=@<:@yes/no/auto@:>@],
562[cache iconv descriptors [default=auto]])],,
563[enable_iconv_cache=auto])
564
65834be3
VK
565AC_ARG_ENABLE(readline,
566[AS_HELP_STRING(--disable-readline,do not use libreadline)],
567[
25a19da6
VK
568 if test "x$$enableval" = "xno"; then
569 DISABLE_READLINE="yes"
570 fi
65834be3
VK
571])
572
ef0c727b
VK
573AC_ARG_ENABLE(encryption,
574[AS_HELP_STRING(--disable-encryption,disable encryption support)],
e0760102 575[
25a19da6
VK
576 if test "x$$enableval" = "xno"; then
577 DISABLE_ENCRYPTION="yes"
578 XMPP_SUPPORT="no"
579 fi
e0760102
VK
580])
581
4050bafb
VK
582AC_ARG_ENABLE(lmsensors,
583[AS_HELP_STRING(--disable-lmsensors,disable lmsensors support)],
584[
25a19da6
VK
585 if test "x$$enableval" = "xno"; then
586 DISABLE_LMSENSORS="yes"
587 fi
4050bafb
VK
588])
589
058bf6fc
VK
590AC_ARG_ENABLE(xmpp,
591[AS_HELP_STRING(--disable-xmpp,disable XMPP support)],
592[
25a19da6
VK
593 if test "x$$enableval" = "xno"; then
594 XMPP_SUPPORT="no"
595 fi
058bf6fc
VK
596])
597
2cfe4482
VK
598AC_ARG_ENABLE(ldap,
599[AS_HELP_STRING(--disable-ldap,disable LDAP support)],
600[
25a19da6
VK
601 if test "x$$enableval" = "xno"; then
602 LDAP_SUPPORT="no"
603 fi
2cfe4482
VK
604])
605
a67fa146 606AC_ARG_ENABLE(unicode,
25a19da6 607[AS_HELP_STRING(--disable-unicode,disable UNICODE build)],
a67fa146 608[
25a19da6
VK
609 if test "x$enableval" = "xno"; then
610 BUILD_UNICODE="no"
611 FORCE_INTERNAL_LIBTRE="no"
612 DISABLE_READLINE="no"
613 fi
a67fa146
VK
614])
615
f974a50a
VK
616AC_ARG_ENABLE(debug,
617[AS_HELP_STRING(--enable-debug,enable additional debugging functionality)],
618[
25a19da6
VK
619 if test "x$enableval" = "xyes"; then
620 ENABLE_DEBUG="yes"
621 fi
f974a50a
VK
622])
623
25ae8377
VK
624AC_ARG_ENABLE(werror,
625[AS_HELP_STRING(--enable-werror,threat all warnings as errors)],
626[
25a19da6
VK
627 if test "x$enableval" = "xyes"; then
628 ENABLE_WERROR="yes"
629 fi
25ae8377
VK
630])
631
cc297a70 632AC_ARG_ENABLE(64bit,
e5be5b83 633[AS_HELP_STRING(--disable-64bit,disable 64bit build (force 32bit build on 64bit machine))],
cc297a70 634[
25a19da6
VK
635 if test "x$enableval" = "xno"; then
636 FORCE_32BIT_BUILD="yes"
637 fi
cc297a70
VK
638])
639
ef0c727b
VK
640AC_ARG_WITH(dist,
641[AS_HELP_STRING(--with-dist,for maintainers only)],
87f1fff0 642 DB_DRIVERS=" mysql pgsql odbc mssql sqlite oracle db2 informix"
623e2f0e 643 MODULES="appagent jansson libexpat libstrophe libtre zlib libnetxms install sqlite snmp libnxsl libnxmb libnxlp libnxcc db server smsdrv agent libnxmap client nxscript nxcproxy nxlptest tools"
fab0916b 644 SUBAGENT_DIRS="linux ds18x20 freebsd openbsd minix mqtt mysql netbsd sunos aix ipso hpux odbcquery informix oracle lmsensors darwin rpi java jmx bind9 ubntlw netsvc db2 tuxedo mongodb ssh vmgr"
c7c6ce77 645 AGENT_DIRS="libnxtux"
f841b121 646 SMSDRV_DIRS="anysms kannel mymobile nexmo nxagent slack smseagle text2reach websms"
2a0a6a2b 647 HDLINK_DIRS="jira redmine"
52a2232c 648 PDSDRV_DIRS="rrdtool"
ef0c727b 649 NXCONFIG="nxconfig"
33a10d92 650 TOP_LEVEL_MODULES="include sql images tests"
7dda4453 651 SERVER_INCLUDE="include"
03b96461 652 CONTRIB_MODULES="mibs backgrounds music templates"
11f1babb 653 CLIENT_COMPONENTS="nxalarm nxevent nxpush nxshell nxsms"
ef0c727b
VK
654 SERVER_TOOLS="nxconfig"
655)
656
247f8a6c
AK
657AC_ARG_WITH(rpi-agent,
658[AS_HELP_STRING(--with-rpi-agent,build Raspberry Pi agent)],
659[
660 COMPONENTS="$COMPONENTS raspberrypi"
661])
662
33a10d92
VK
663AC_ARG_WITH(tests,
664[AS_HELP_STRING(--with-tests,build tests)],
665[
666 TOP_LEVEL_MODULES="$TOP_LEVEL_MODULES tests"
667])
668
d8ca9c03 669
ef0c727b 670#--------------------------------------------------------------------
12313882
VK
671# Set LD_LIBRARY_PATH from LD_RUN_PATH because on some systems
672# LD_RUN_PATH ignored by linker and some tests may fail
673#--------------------------------------------------------------------
674
e5cceced 675export LD_RUN_PATH
12313882
VK
676if test "x$LD_RUN_PATH" != "x"; then
677 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}${LD_RUN_PATH}"
678 export LD_LIBRARY_PATH
679fi
680
681
682#--------------------------------------------------------------------
ef0c727b
VK
683# Validate command line parameters and set various checking options
684#--------------------------------------------------------------------
685
bc9361fd
VK
686check_substr "$COMPONENTS" "snmp"
687if test $? = 0; then
bc9361fd
VK
688 MODULES="$MODULES snmp"
689fi
690
ef0c727b 691check_substr "$COMPONENTS" "static-agent"
1010cff7 692if test $? = 0; then
e528af2b 693 if test "x$COMPONENTS" != "x sqlite snmp static-agent sqlite_drv"; then
971abf4f 694 AC_MSG_ERROR(Static agent and other components are mutually exclusive.)
ef0c727b
VK
695 fi
696 STATIC_BUILD="yes"
697 BUILD_STATIC_AGENT="yes"
d8637bab 698 MODULES="$MODULES appagent libnxlp db agent"
3a6979cf 699 DISABLE_ICONV="yes"
ef0c727b 700 CPPFLAGS="$CPPFLAGS -D_STATIC_AGENT"
c1165d33 701 if test "x$PROPOSED_STATIC_SUBAGENTS" = "xdefault"; then
52056835 702 STATIC_SUBAGENT_LIST="ecs filemgr logwatch ping portcheck ups"
c1165d33
VK
703 else
704 STATIC_SUBAGENT_LIST="$PROPOSED_STATIC_SUBAGENTS"
705 fi
60a1159a 706
52056835 707 SUBAGENT_LIBS="../subagents/ecs/ecs.la ../subagents/filemgr/filemgr.la ../subagents/logwatch/logwatch.la ../subagents/ping/ping.la ../subagents/portCheck/portcheck.la ../subagents/ups/ups.la"
e8636669 708
60a1159a
VK
709 check_substr "$STATIC_SUBAGENT_LIST" "odbcquery"
710 if test $? = 0; then
711 COMPONENTS="$COMPONENTS odbc"
712 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/odbcquery/odbcquery.la"
713 fi
714
715 check_substr "$STATIC_SUBAGENT_LIST" "oracle"
716 if test $? = 0; then
717 COMPONENTS="$COMPONENTS oracle"
718 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/oracle/oracle.la"
719 fi
720
405fb3ad
VK
721 check_substr "$STATIC_SUBAGENT_LIST" "informix"
722 if test $? = 0; then
723 COMPONENTS="$COMPONENTS informix"
724 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/informix/informix.la"
725 fi
6afe141e 726
727 check_substr "$STATIC_SUBAGENT_LIST" "db2"
60a1159a 728 if test $? = 0; then
6afe141e 729 COMPONENTS="$COMPONENTS db2"
405fb3ad
VK
730 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/db2/db2.la"
731 fi
732
733 check_substr "$STATIC_SUBAGENT_LIST" "mysql"
734 if test $? = 0; then
735 COMPONENTS="$COMPONENTS mysql"
736 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/mysql/mysql.la"
60a1159a
VK
737 fi
738
ef0c727b 739 case "$PLATFORM" in
e8636669 740 Linux)
e58b0f75
VK
741 SUBAGENT_DIRS="linux ds18x20"
742 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/linux/linux.la ../subagents/ds18x20/ds18x20.la"
743 STATIC_SUBAGENT_LIST="linux ds18x20 $STATIC_SUBAGENT_LIST"
e8636669
VK
744 ;;
745 FreeBSD)
746 SUBAGENT_DIRS="freebsd"
c1165d33 747 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/freebsd/freebsd.la"
d0b5a098 748 STATIC_SUBAGENT_LIST="freebsd $STATIC_SUBAGENT_LIST"
e8636669 749 ;;
992ba479
AK
750 OpenBSD)
751 SUBAGENT_DIRS="openbsd"
c1165d33 752 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/openbsd/openbsd.la"
992ba479
AK
753 STATIC_SUBAGENT_LIST="openbsd $STATIC_SUBAGENT_LIST"
754 ;;
ad0f1ada
VK
755 NetBSD)
756 SUBAGENT_DIRS="netbsd"
c1165d33 757 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/netbsd/netbsd.la"
ad0f1ada
VK
758 STATIC_SUBAGENT_LIST="netbsd $STATIC_SUBAGENT_LIST"
759 ;;
e8636669
VK
760 SunOS)
761 SUBAGENT_DIRS="sunos"
c1165d33 762 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/sunos/sunos.la"
d0b5a098
VK
763 STATIC_SUBAGENT_LIST="sunos $STATIC_SUBAGENT_LIST"
764 ;;
765 AIX)
766 SUBAGENT_DIRS="aix"
c1165d33 767 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/aix/aix.la"
d0b5a098 768 STATIC_SUBAGENT_LIST="aix $STATIC_SUBAGENT_LIST"
e8636669 769 ;;
c29360a9
VK
770 HP-UX)
771 SUBAGENT_DIRS="hpux"
c1165d33 772 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/hpux/hpux.la"
c29360a9
VK
773 STATIC_SUBAGENT_LIST="hpux $STATIC_SUBAGENT_LIST"
774 ;;
cf52e714
AK
775 Darwin)
776 SUBAGENT_DIRS="darwin"
777 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/darwin/darwin.la"
778 STATIC_SUBAGENT_LIST="darwin $STATIC_SUBAGENT_LIST"
779 ;;
cfcfdd2b
VK
780 Minix)
781 SUBAGENT_DIRS="minix"
782 SUBAGENT_LIBS="$SUBAGENT_LIBS ../subagents/minix/minix.la"
783 STATIC_SUBAGENT_LIST="minix $STATIC_SUBAGENT_LIST"
784 ;;
e8636669
VK
785 *)
786 # unknown
787 ;;
788 esac
ef0c727b 789fi
2b23dc1e 790
ef0c727b 791check_substr "$COMPONENTS" "ipso-agent"
1010cff7 792if test $? = 0; then
fd5a401b 793 if test "x$COMPONENTS" != "x ipso-agent"; then
971abf4f 794 AC_MSG_ERROR(IPSO agent and other components are mutually exclusive.)
ef0c727b
VK
795 fi
796 STATIC_BUILD="yes"
797 BUILD_STATIC_AGENT="yes"
3a6979cf 798 DISABLE_ICONV="yes"
ef0c727b 799 USE_PTH="yes"
d8637bab 800 MODULES="$MODULES appagent libnxlp db agent"
ef8a3c32 801 CPPFLAGS="$CPPFLAGS -D_STATIC_AGENT -D_IPSO -DSQLITE_THREADSAFE=0 -I/usr/local/include"
ef0c727b 802 LDFLAGS="$LDFLAGS -all-static"
971abf4f 803 STATIC_SUBAGENT_LIST="ecs ipso logwatch ping portcheck ups"
ef0c727b 804 SUBAGENT_DIRS="ipso"
c1165d33 805 SUBAGENT_LIBS="../subagents/ecs/ecs.la ../subagents/ipso/ipso.la ../subagents/logwatch/logwatch.la ../subagents/ping/ping.la ../subagents/portCheck/portcheck.la ../subagents/ups/ups.la"
ef0c727b 806fi
c688d2a7 807
ef0c727b 808check_substr "$COMPONENTS" "agent"
1010cff7 809if test $? = 0; then
ef0c727b 810 BUILD_AGENT="yes"
d8637bab 811 MODULES="$MODULES appagent libnxlp db agent"
1010cff7
VK
812
813 case "$PLATFORM" in
814 Linux)
e58b0f75 815 SUBAGENT_DIRS="linux ds18x20"
1010cff7
VK
816 ;;
817 FreeBSD)
818 SUBAGENT_DIRS="freebsd"
819 ;;
820 OpenBSD)
821 SUBAGENT_DIRS="openbsd"
822 ;;
ad0f1ada
VK
823 NetBSD)
824 SUBAGENT_DIRS="netbsd"
825 ;;
1010cff7
VK
826 SunOS)
827 SUBAGENT_DIRS="sunos"
828 ;;
829 AIX)
830 SUBAGENT_DIRS="aix"
831 ;;
832 HP-UX)
833 SUBAGENT_DIRS="hpux"
cf52e714
AK
834 ;;
835 Darwin)
836 SUBAGENT_DIRS="darwin"
1010cff7 837 ;;
cfcfdd2b
VK
838 Minix)
839 SUBAGENT_DIRS="minix"
840 ;;
1010cff7
VK
841 *)
842 # unknown
843 ;;
844 esac
ef0c727b 845fi
b97191d2 846
94a7996a
VK
847check_substr "$COMPONENTS" "server"
848if test $? = 0; then
849 if test "x$DBDRIVER_SELECTED" != "xyes"; then
850 AC_MSG_ERROR(You must select at least one database driver when building server.)
851 fi
852 BUILD_SERVER="yes"
623e2f0e 853 MODULES="$MODULES libnxmap libnxsl libnxcc server smsdrv nxscript"
94a7996a 854 TOP_LEVEL_MODULES="$TOP_LEVEL_MODULES sql images"
03b96461 855 CONTRIB_MODULES="$CONTRIB_MODULES mibs backgrounds music templates"
623e2f0e 856 SMSDRV_DIRS="$SMSDRV_DIRS nxagent"
94a7996a
VK
857 if test "x$XMPP_SUPPORT" = "xyes"; then
858 MODULES="libstrophe $MODULES"
859 AC_DEFINE(XMPP_SUPPORTED, 1, Define to 1 if XMPP is supported)
860 fi
861fi
862
863check_substr "$COMPONENTS" "client"
864if test $? = 0; then
865 BUILD_CLIENT="yes"
94a7996a
VK
866 MODULES="$MODULES client"
867 CLIENT_COMPONENTS="$CLIENT_COMPONENTS nxalarm nxevent nxpush nxsms"
11f1babb
VK
868 check_substr "$COMPONENTS" "java"
869 if test $? = 0; then
870 CLIENT_COMPONENTS="$CLIENT_COMPONENTS nxshell"
871 fi
94a7996a
VK
872fi
873
874check_substr "$COMPONENTS" "client-proxy"
875if test $? = 0; then
876 MODULES="$MODULES nxcproxy"
877fi
878
ef0c727b 879check_substr "$COMPONENTS" "mysql"
1010cff7 880if test $? = 0; then
ef0c727b 881 DB_DRIVERS="$DB_DRIVERS mysql"
405fb3ad 882 SUBAGENT_DIRS="$SUBAGENT_DIRS mysql"
b67a9e12 883fi
6619a6b0 884
ef0c727b 885check_substr "$COMPONENTS" "pgsql"
1010cff7 886if test $? = 0; then
ef0c727b
VK
887 DB_DRIVERS="$DB_DRIVERS pgsql"
888fi
e8636669 889
8817f620 890check_substr "$COMPONENTS" "sqlite_drv"
1010cff7 891if test $? = 0; then
ef0c727b 892 DB_DRIVERS="$DB_DRIVERS sqlite"
e8636669
VK
893fi
894
ef0c727b 895check_substr "$COMPONENTS" "odbc"
1010cff7 896if test $? = 0; then
ef0c727b
VK
897 DB_DRIVERS="$DB_DRIVERS odbc"
898fi
899
41b4790d
VK
900check_substr "$COMPONENTS" "oracle"
901if test $? = 0; then
902 DB_DRIVERS="$DB_DRIVERS oracle"
4d1753cd 903 SUBAGENT_DIRS="$SUBAGENT_DIRS oracle"
41b4790d
VK
904fi
905
84277a0f
AK
906check_substr "$COMPONENTS" "db2"
907if test $? = 0; then
908 DB_DRIVERS="$DB_DRIVERS db2"
6afe141e 909 SUBAGENT_DIRS="$SUBAGENT_DIRS db2"
84277a0f
AK
910fi
911
87f1fff0
VK
912check_substr "$COMPONENTS" "informix"
913if test $? = 0; then
914 DB_DRIVERS="$DB_DRIVERS informix"
80e96a82 915 SUBAGENT_DIRS="$SUBAGENT_DIRS informix"
87f1fff0
VK
916fi
917
247f8a6c
AK
918check_substr "$COMPONENTS" "raspberrypi"
919if test $? = 0; then
247f8a6c
AK
920 SUBAGENT_DIRS="$SUBAGENT_DIRS rpi"
921fi
ef0c727b 922
50e4bc8c
VK
923check_substr "$COMPONENTS" "java"
924if test $? = 0; then
9ea35a1c 925 SUBAGENT_DIRS="$SUBAGENT_DIRS java bind9 jmx ubntlw"
50e4bc8c
VK
926fi
927
b14c3f22
VK
928check_substr "$COMPONENTS" "tuxedo"
929if test $? = 0; then
c7c6ce77 930 AGENT_DIRS="$AGENT_DIRS libnxtux"
b14c3f22
VK
931 SUBAGENT_DIRS="$SUBAGENT_DIRS tuxedo"
932fi
933
d6235717 934check_substr "$COMPONENTS" "mongodb"
935if test $? = 0; then
936 SUBAGENT_DIRS="$SUBAGENT_DIRS mongodb"
937fi
938
b7c8729b 939check_substr "$COMPONENTS" "vmgr"
940if test $? = 0; then
941 SUBAGENT_DIRS="$SUBAGENT_DIRS vmgr"
942fi
943
b550188f
VK
944check_substr "$COMPONENTS" "sdk"
945if test $? = 0; then
f6f9c0b6
VK
946 if test "x$STATIC_BUILD" = "xyes"; then
947 MODULES="$MODULES appagent libnxmap client libnxmb"
948 else
0cdd78ad 949 MODULES="$MODULES appagent libnxmap client libnxsl libnxmb libnxlp libnxcc db nxscript smsdrv snmp"
f6f9c0b6 950 fi
b550188f
VK
951fi
952
953
ef0c727b
VK
954#--------------------------------------------------------------------
955# Check for programs
956#--------------------------------------------------------------------
957
958if test "x$PLATFORM" = "xHP-UX"; then
f172d7b7 959 AC_CHECK_PROG([CC], [aCC], [aCC])
e7d9c4ae 960 AC_CHECK_PROG([CCC], [aCC], [aCC])
ef0c727b 961fi
df9812a9 962if test "x$PLATFORM" = "xAIX"; then
f172d7b7 963 AC_CHECK_PROG([CC], [xlc_r], [xlc_r])
df9812a9
VK
964 AC_CHECK_PROG([CCC], [xlC_r], [xlC_r])
965fi
9113e749 966if test "x$PLATFORM" = "xSunOS"; then
f172d7b7 967 AC_CHECK_PROG([CC], [cc], [cc])
9113e749
VK
968 AC_CHECK_PROG([CCC], [CC], [CC])
969fi
ef8a3c32
VK
970if test "x$PLATFORM" = "xMinix"; then
971 AC_CHECK_PROG([CC], [clang], [clang])
972 AC_CHECK_PROG([CCC], [clang++], [clang++])
973fi
f172d7b7 974AC_PROG_CC
ef0c727b
VK
975AC_PROG_CPP
976AC_PROG_CXX
c3cfc039 977if test "x$CXX" = "xg++"; then
753206b5
AK
978 AC_CHECK_PROG([GPLUSPLUS], [g++], [yes], [no])
979 if test "x$GPLUSPLUS" = "xno"; then
c3cfc039
VK
980 AC_MSG_ERROR([*** FATAL: Cannot find any usable C++ compiler])
981 fi
982fi
ef8a3c32
VK
983if test "x$CXX" = "xclang++"; then
984 LIBS="$LIBS -lc++"
985fi
fdf7ec40 986AM_PROG_AS
ef0c727b
VK
987AC_PROG_INSTALL
988AC_PROG_LEX
76154a95 989AC_CHECK_PROGS(YACC,bison byacc,yacc)
ef0c727b
VK
990AC_PROG_LN_S
991
992AC_ARG_VAR(PERL,local path to the perl interpreter)
993perl_possible_path="/usr/bin:/usr/local/bin:/bin:/opt/perl/bin:/opt/perl/usr/bin:/opt/perl/usr/local/bin"
994AC_PATH_PROG(PERL,perl,/usr/bin/env perl,$perl_possible_path)
995
996
997#--------------------------------------------------------------------
ef0c727b
VK
998# C/C++ capabilities
999#--------------------------------------------------------------------
1000
1001AC_C_CONST
1002AC_PROG_GCC_TRADITIONAL
1d9cc60e 1003AC_C_BIGENDIAN
ef0c727b
VK
1004
1005
1006#--------------------------------------------------------------------
1007# Platform-dependent settings
1008#--------------------------------------------------------------------
1009
1010case "$PLATFORM" in
1011 AIX)
545bda2d 1012 LDFLAGS_PREFIX="-no-undefined -Wl,-brtl $LDFLAGS"
ef0c727b
VK
1013 ;;
1014 HP-UX)
f0c1ad9c 1015 CPPFLAGS="$CPPFLAGS -D_HPUX -D_HPUX_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED=1 -D_REENTRANT -D_INCLUDE_LONGLONG -D_LARGEFILE64_SOURCE"
ef0c727b 1016 if test "x$CXX" = "xaCC"; then
5a64ab96 1017 CPPFLAGS="$CPPFLAGS -D_HP_ATOMIC_INLINE"
53c96e2d 1018 CFLAGS="$CFLAGS -AC99"
6e872345 1019 CXXFLAGS="-mt $CXXFLAGS +W749 +W829 +W4232"
ef0c727b
VK
1020 LDFLAGS="$LDFLAGS -mt"
1021 fi
6dde8627
VK
1022 if test `uname -m` != 'ia64'; then
1023 HPUX_HPPA="yes"
1024 fi
ef0c727b 1025 ;;
75c30ed4 1026 SunOS)
b92efe0e 1027 CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__"
44ca59aa
VK
1028 AC_MSG_CHECKING(whether C compiler accepts -O2)
1029 OLD_CPPFLAGS="$CPPFLAGS"
1030 CPPFLAGS="$CPPFLAGS -O2"
12313882 1031 AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
44ca59aa
VK
1032 [ AC_MSG_RESULT(yes) ],
1033 [
1034 CPPFLAGS="$OLD_CPPFLAGS"
1035 AC_MSG_RESULT(no)
1036 ])
75c30ed4 1037 ;;
56b2f755 1038 Linux)
f47bd4ca 1039 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -O2"
56b2f755 1040 ;;
d1056954 1041 Darwin)
f47bd4ca 1042 CPPFLAGS="$CPPFLAGS -Wno-deprecated-declarations -O2"
d1056954 1043 ;;
ef8a3c32
VK
1044 Minix)
1045 CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
1046 LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
1047 USE_PTH="yes"
1048 ;;
ef0c727b
VK
1049 *)
1050 ;;
1051esac
1052
1053
1054#--------------------------------------------------------------------
c90d3610 1055# C++ compiler tuning:
cc297a70 1056# * Disable C++ exceptions and RTTI
779ce551 1057# * Turn on 64bit mode on HP-UX/Itanium
cc297a70 1058# * Turn on 64bit mode on AIX
d358c73f 1059# * Turn on 64bit mode on Solaris
3bc41d67 1060# * Disable inconsistent C/C++ linkage warnings for Solaris Studio
ef0c727b
VK
1061#--------------------------------------------------------------------
1062
5482ef16 1063if test "x$ac_compiler_gnu" = "xyes" ; then
9113e749 1064 SQLFLAGS="-x c -Wundef"
6e383343 1065 CPPFLAGS="$CPPFLAGS -Wformat"
ef0c727b 1066
94a82f76
VK
1067 AC_MSG_CHECKING(whether C compiler accepts -Wno-unused-result)
1068 OLD_CPPFLAGS="$CPPFLAGS"
1069 CPPFLAGS="$CPPFLAGS -Wno-unused-result"
1070 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1071 [ AC_MSG_RESULT(yes) ],
1072 [
1073 CPPFLAGS="$OLD_CPPFLAGS"
1074 AC_MSG_RESULT(no)
1075 ])
1076
5bcda3c0
VK
1077 AC_MSG_CHECKING(whether C compiler accepts -Werror=return-type)
1078 OLD_CPPFLAGS="$CPPFLAGS"
1079 CPPFLAGS="$CPPFLAGS -Werror=return-type"
1080 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1081 [ AC_MSG_RESULT(yes) ],
1082 [
1083 CPPFLAGS="$OLD_CPPFLAGS"
1084 AC_MSG_RESULT(no)
1085 ])
1086
ef0c727b
VK
1087 AC_LANG_PUSH([C++])
1088
1089 AC_MSG_CHECKING(whether C++ compiler accepts -fno-rtti)
e6b112bc 1090 OLD_CXXFLAGS="$CXXFLAGS"
ef0c727b
VK
1091 CXXFLAGS="$CXXFLAGS -fno-rtti"
1092 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1093 [ AC_MSG_RESULT(yes) ],
1094 [
1095 CXXFLAGS="$OLD_CXXFLAGS"
1096 AC_MSG_RESULT(no)
1097 ])
1098
3118008e
VK
1099 AC_MSG_CHECKING(whether C++ compiler accepts -fno-exceptions)
1100 OLD_CXXFLAGS="$CXXFLAGS"
1101 CXXFLAGS="$CXXFLAGS -fno-exceptions"
1102 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1103 [ AC_MSG_RESULT(yes) ],
1104 [
1105 CXXFLAGS="$OLD_CXXFLAGS"
1106 AC_MSG_RESULT(no)
1107 ])
ef0c727b
VK
1108
1109 AC_LANG_POP([C++])
1110
9b318048
VK
1111 MACHINE=`uname -m`
1112 if test "x$MACHINE" = "xi686" -o "x$MACHINE" = "xi586"; then
1113 AC_MSG_CHECKING(whether C compiler accepts -march=$MACHINE)
1114 OLD_CPPFLAGS="$CPPFLAGS"
1115 CPPFLAGS="$CPPFLAGS -march=$MACHINE"
1116 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1117 [
1118 AC_MSG_RESULT(yes)
1119 ],
1120 [
1121 CPPFLAGS="$OLD_CPPFLAGS"
1122 AC_MSG_RESULT(no)
1123 ])
1124 fi
1125
779ce551 1126 if test "x$PLATFORM" = "xHP-UX"; then
cc297a70
VK
1127 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1128 AC_MSG_CHECKING(whether C compiler accepts -milp32)
1129 OLD_CPPFLAGS="$CPPFLAGS"
1130 CPPFLAGS="$CPPFLAGS -milp32"
1131 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1132 [
1133 LDFLAGS="-milp32 $LDFLAGS"
1134 AC_MSG_RESULT(yes)
1135 ],
1136 [
1137 CPPFLAGS="$OLD_CPPFLAGS"
1138 AC_MSG_RESULT(no)
1139 ])
1140 else
1141 AC_MSG_CHECKING(whether C compiler accepts -mlp64)
1142 OLD_CPPFLAGS="$CPPFLAGS"
1143 CPPFLAGS="$CPPFLAGS -mlp64"
1144 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1145 [
1146 LDFLAGS="-mlp64 -L/usr/lib/hpux64 -L/usr/local/lib/hpux64 $LDFLAGS"
1147 AC_MSG_RESULT(yes)
1148 ],
1149 [
1150 CPPFLAGS="$OLD_CPPFLAGS"
1151 AC_MSG_RESULT(no)
1152 ])
1153 fi
1154 fi
1155
1156 if test "x$PLATFORM" = "xAIX"; then
1157 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1158 AC_MSG_CHECKING(whether C compiler accepts -maix32)
1159 OLD_CPPFLAGS="$CPPFLAGS"
1160 CPPFLAGS="$CPPFLAGS -maix32"
fecf6a2b 1161 AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
cc297a70
VK
1162 [
1163 LDFLAGS="-maix32 $LDFLAGS"
5482ef16
VK
1164 LTINIT_CC="$CC -maix32"
1165 LTINIT_CXX="$CXX -maix32"
1c45282c 1166 OBJECT_MODE=32
cc297a70
VK
1167 AC_MSG_RESULT(yes)
1168 ],
1169 [
1170 CPPFLAGS="$OLD_CPPFLAGS"
1171 AC_MSG_RESULT(no)
1172 ])
1173 else
1174 AC_MSG_CHECKING(whether C compiler accepts -maix64)
1175 OLD_CPPFLAGS="$CPPFLAGS"
1176 CPPFLAGS="$CPPFLAGS -maix64"
fecf6a2b 1177 AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
cc297a70
VK
1178 [
1179 LDFLAGS="-maix64 $LDFLAGS"
5482ef16
VK
1180 LTINIT_CC="$CC -maix64"
1181 LTINIT_CXX="$CXX -maix64"
1c45282c 1182 OBJECT_MODE=64
cc297a70
VK
1183 AC_MSG_RESULT(yes)
1184 ],
1185 [
1186 CPPFLAGS="$OLD_CPPFLAGS"
1187 AC_MSG_RESULT(no)
1188 ])
1189 fi
779ce551 1190 fi
d358c73f
VK
1191
1192 if test "x$PLATFORM" = "xSunOS"; then
1193 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1194 AC_MSG_CHECKING(whether C compiler accepts -m32)
1195 OLD_CPPFLAGS="$CPPFLAGS"
1196 CPPFLAGS="$CPPFLAGS -m32"
1197 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1198 [
1199 LDFLAGS="-m32 $LDFLAGS"
e2e3ce85
VK
1200 LTINIT_CC="$CC -m32"
1201 LTINIT_CXX="$CXX -m32"
d358c73f
VK
1202 AC_MSG_RESULT(yes)
1203 ],
1204 [
1205 CPPFLAGS="$OLD_CPPFLAGS"
1206 AC_MSG_RESULT(no)
1207 ])
1208 else
1209 AC_MSG_CHECKING(whether C compiler accepts -m64)
1210 OLD_CPPFLAGS="$CPPFLAGS"
1211 CPPFLAGS="$CPPFLAGS -m64"
1212 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1213 [
1214 LDFLAGS="-m64 $LDFLAGS"
e2e3ce85
VK
1215 LTINIT_CC="$CC -m64"
1216 LTINIT_CXX="$CXX -m64"
d358c73f
VK
1217 AC_MSG_RESULT(yes)
1218 ],
1219 [
1220 CPPFLAGS="$OLD_CPPFLAGS"
1221 AC_MSG_RESULT(no)
1222 ])
1223 fi
1224 fi
779ce551 1225
3ac3594a
VK
1226
1227 if test "x$PLATFORM" = "xLinux"; then
1228 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1229 AC_MSG_CHECKING(whether C compiler accepts -m32)
1230 OLD_CPPFLAGS="$CPPFLAGS"
1231 CPPFLAGS="$CPPFLAGS -m32"
1232 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1233 [
1234 LDFLAGS="-m32 $LDFLAGS"
e2e3ce85
VK
1235 LTINIT_CC="$CC -m32"
1236 LTINIT_CXX="$CXX -m32"
3ac3594a
VK
1237 AC_MSG_RESULT(yes)
1238 ],
1239 [
1240 CPPFLAGS="$OLD_CPPFLAGS"
1241 AC_MSG_RESULT(no)
1242 ])
1243 fi
1244 fi
1245
ce5592b2
VK
1246 if test "x$ENABLE_DEBUG" = "xyes"; then
1247 CPPFLAGS="$CPPFLAGS -ggdb3"
1248 fi
ef0c727b
VK
1249fi
1250
cfd95c74
VK
1251if test "x$CXX" = "xaCC" ; then
1252 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
451b735a
VK
1253 if test "x$HPUX_HPPA" = "xyes"; then
1254 ARCHFLAG="+DA1.1"
1255 else
1256 ARCHFLAG="+DD32"
1257 fi
1258 AC_MSG_CHECKING(whether C compiler accepts $ARCHFLAG)
4d37b0c5 1259 OLD_CPPFLAGS="$CPPFLAGS"
451b735a 1260 CPPFLAGS="$ARCHFLAG $CPPFLAGS"
cfd95c74
VK
1261 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1262 [
451b735a
VK
1263 LDFLAGS="$ARCHFLAG $LDFLAGS"
1264 CCASFLAGS="$ARCHFLAG $CCASFLAGS"
cfd95c74
VK
1265 AC_MSG_RESULT(yes)
1266 ],
1267 [
4d37b0c5
VK
1268 CPPFLAGS="$OLD_CPPFLAGS"
1269 AC_MSG_RESULT(no)
cfd95c74 1270 ])
4d37b0c5 1271 else
451b735a
VK
1272 if test "x$HPUX_HPPA" = "xyes"; then
1273 ARCHFLAG="+DA2.0W"
1274 else
1275 ARCHFLAG="+DD64"
1276 fi
1277 AC_MSG_CHECKING(whether C compiler accepts $ARCHFLAG)
cfd95c74 1278 OLD_CPPFLAGS="$CPPFLAGS"
451b735a 1279 CPPFLAGS="$ARCHFLAG $CPPFLAGS"
cfd95c74
VK
1280 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1281 [
451b735a
VK
1282 LDFLAGS="$ARCHFLAG $LDFLAGS"
1283 CCASFLAGS="$ARCHFLAG $CCASFLAGS"
cfd95c74
VK
1284 AC_MSG_RESULT(yes)
1285 ],
1286 [
1287 CPPFLAGS="$OLD_CPPFLAGS"
1288 AC_MSG_RESULT(no)
1289 ])
4d37b0c5 1290 fi
ef0c727b
VK
1291fi
1292
df9812a9 1293if test "x$CXX" = "xxlC_r" ; then
d1cb61cf 1294 SQLFLAGS="-qnoppline"
9b99f1c0
VK
1295 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1296 AC_MSG_CHECKING(whether C compiler accepts -q32)
1297 OLD_CPPFLAGS="$CPPFLAGS"
1298 CPPFLAGS="-q32 $CPPFLAGS"
1299 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1300 [
1301 LDFLAGS="-q32 $LDFLAGS"
df9812a9 1302 OBJECT_MODE=32
9b99f1c0
VK
1303 AC_MSG_RESULT(yes)
1304 ],
1305 [
1306 CPPFLAGS="$OLD_CPPFLAGS"
1307 AC_MSG_RESULT(no)
1308 ])
1309 else
1310 AC_MSG_CHECKING(whether C compiler accepts -q64)
1311 OLD_CPPFLAGS="$CPPFLAGS"
1312 CPPFLAGS="-q64 $CPPFLAGS"
1313 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1314 [
1315 LDFLAGS="-q64 $LDFLAGS"
df9812a9 1316 OBJECT_MODE=64
9b99f1c0
VK
1317 AC_MSG_RESULT(yes)
1318 ],
1319 [
1320 CPPFLAGS="$OLD_CPPFLAGS"
1321 AC_MSG_RESULT(no)
1322 ])
1323 fi
1324fi
1325
9113e749
VK
1326if test "x$CXX" = "xCC" ; then
1327 SQLFLAGS="-Qn"
1328 CPPFLAGS="$CPPFLAGS -mt"
3bc41d67 1329 CXXFLAGS="$CXXFLAGS -erroff=badargtype2w,wbadinit"
9113e749
VK
1330
1331 if test "x$FORCE_32BIT_BUILD" = "xyes"; then
1332 AC_MSG_CHECKING(whether C compiler accepts -m32)
f5e5296e
VK
1333 count=`$CC -flags | grep '^\-m32 ' | wc -l`
1334 if test $count -eq 1; then
1335 AC_MSG_RESULT(yes)
1336 CPPFLAGS="$CPPFLAGS -m32"
1337 LDFLAGS="-m32 $LDFLAGS"
1338 else
1339 AC_MSG_RESULT(no)
1340 fi
9113e749 1341 else
c3900dbb 1342 TEST_XARCH="no"
9113e749 1343 AC_MSG_CHECKING(whether C compiler accepts -m64)
f5e5296e
VK
1344 count=`$CC -flags | grep '^\-m64 ' | wc -l`
1345 if test $count -eq 1; then
1346 AC_MSG_RESULT(yes)
1347 CPPFLAGS="$CPPFLAGS -m64"
1348 LDFLAGS="-m64 $LDFLAGS"
1349 else
1350 AC_MSG_RESULT(no)
1351 TEST_XARCH="yes"
1352 fi
c3900dbb
VK
1353 if test "x$TEST_XARCH" = "xyes"; then
1354 if test "x$CPUTYPE" = "xsparc"; then
1355 ARCH="-xarch=v9"
1356 else
1357 ARCH="-xarch=amd64"
1358 fi
1359 AC_MSG_CHECKING(whether C compiler accepts $ARCH)
1360 OLD_CPPFLAGS="$CPPFLAGS"
1361 CPPFLAGS="$CPPFLAGS $ARCH"
1362 AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ]])],
1363 [
1364 LDFLAGS="$ARCH $LDFLAGS"
1365 AC_MSG_RESULT(yes)
1366 ],
1367 [
1368 CPPFLAGS="$OLD_CPPFLAGS"
1369 AC_MSG_RESULT(no)
1370 ])
1371 fi
9113e749
VK
1372 fi
1373fi
1374
edb018d7
VK
1375
1376#--------------------------------------------------------------------
1377# Initialize libtool
1378#--------------------------------------------------------------------
1379
1380if test "x$STATIC_BUILD" = "xyes"; then
1381 enable_shared=no
1382 enable_static=yes
1383else
1384 enable_shared=yes
e99eba92
VK
1385 if test "x$BUILD_SDK" = "xyes"; then
1386 enable_static=yes
1387 else
1388 enable_static=no
1389 fi
edb018d7 1390fi
1ef5e57a
VK
1391
1392if test "x$LTINIT_CC" != "x"; then
1393 SAVED_CC="$CC"
1394 CC="$LTINIT_CC"
1395fi
1396if test "x$LTINIT_CXX" != "x"; then
1397 SAVED_CXX="$CXX"
1398 CXX="$LTINIT_CXX"
1399fi
1400
ff12e2f1 1401LT_PREREQ([2.2])
1ef5e57a
VK
1402LT_INIT([dlopen])
1403
1404if test "x$SAVED_CC" != "x"; then
1405 CC="$SAVED_CC"
1406fi
1407if test "x$SAVED_CXX" != "x"; then
1408 CXX="$SAVED_CXX"
1409fi
edb018d7
VK
1410
1411
cfd95c74
VK
1412#--------------------------------------------------------------------
1413# Additional include and library directories
1414#--------------------------------------------------------------------
ef0c727b 1415
cfd95c74
VK
1416if test "x$CXX" != "xaCC"; then
1417 if test -d /usr/local/include; then
5482ef16 1418 if test "x$ac_compiler_gnu" = "xyes"; then
cfd95c74
VK
1419 AC_MSG_CHECKING(whether -I/usr/local/include needed)
1420 OLD_CPPFLAGS="$CPPFLAGS"
1421 CPPFLAGS="$CPPFLAGS -Werror -I/usr/local/include"
2adc2d49 1422 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
cfd95c74
VK
1423 [
1424 CPPFLAGS="$OLD_CPPFLAGS -I/usr/local/include"
1425 AC_MSG_RESULT(yes)
1426 ],
1427 [
1428 CPPFLAGS="$OLD_CPPFLAGS"
1429 AC_MSG_RESULT(no)
1430 ]
1431 )
1432 else
1433 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
1434 fi
1435 fi
1436
1437 if test -d /usr/kerberos/include; then
1438 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
1439 fi
ef0c727b 1440
cfd95c74
VK
1441 if test -d /usr/local/lib; then
1442 LDFLAGS="$LDFLAGS -L/usr/local/lib"
1443 fi
1444fi
ef0c727b 1445
de4c0511
VK
1446
1447#--------------------------------------------------------------------
1448# Check for additional system libraries
1449#--------------------------------------------------------------------
1450
1451AC_CHECK_LIB(xnet, accept)
1452AC_CHECK_LIB(socket, if_nameindex)
1453AC_CHECK_LIB(dl, dlopen)
1454AC_CHECK_LIB(kstat, kstat_open)
1455
1456# sockets/resolver
1457if test "$BUILD_SERVER-$XMPP_SUPPORT" = "yes-yes"; then
1458 AC_CHECK_HEADERS([arpa/nameser_compat.h])
1459 AC_CHECK_FUNC(res_query, , [AC_CHECK_LIB(resolv, res_query, [], [AC_CHECK_LIB(resolv, __res_query)])])
1460fi
1461AC_CHECK_FUNC(connect, , [AC_CHECK_LIB(socket, connect)])
1462AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(resolv, gethostbyname)])
1463AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname)])
1464
1465if test "x$ac_cv_lib_nsl_gethostbyname" != "xyes" && test "x$ac_cv_func_gethostbyname" != "xyes" ; then
1466 AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(socket, gethostbyname)])
1467fi
1468
1469if test "$ac_cv_lib_nsl_gethostbyname" = "$ac_cv_func_gethostbyname" ; then
1470 AC_MSG_CHECKING([if we can include libnsl + libsocket])
1471 LIBS="-lnsl -lsocket $LIBS"
1472 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[(void) gethostbyname]])],[my_ac_link_result=yes],[my_ac_link_result=no ])
1473 if test "$my_ac_link_result" = "no" ; then
1474 AC_MSG_RESULT([failure])
1475 AC_MSG_ERROR([unable to use gethostbyname()])
1476 else
1477 AC_MSG_RESULT([success])
1478 fi
1479fi
1480
1481
ef0c727b
VK
1482#--------------------------------------------------------------------
1483# Check for threads library - either POSIX or GNU
1484#--------------------------------------------------------------------
1485
1486if test "x$USE_PTH" = "xyes"; then
1487 AC_CHECK_HEADER(pth.h,,AC_MSG_ERROR([*** GNU Pth thread support not installed - please install first ***]))
ef8a3c32
VK
1488 CPPFLAGS="$CPPFLAGS -D_USE_GNU_PTH"
1489 LIBS="$LIBS -lpth"
ef0c727b
VK
1490else
1491 AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([*** POSIX thread support not installed - please install first ***]))
1492
1493 if test "x$CXX" = "xaCC"; then
1494 PTHREAD_LIBS=""
1495 else
1496 PTHREAD_LIBS="error"
1497 AC_MSG_CHECKING(for old style FreeBSD -pthread flag)
1498 AC_EGREP_CPP(yes,
1499 [#if defined(__FreeBSD_cc_version) || defined(__OpenBSD__)
1500 yes
1501 #endif
c4952327
VK
1502 ], [
1503 AC_MSG_RESULT(yes)
1504 PTHREAD_LIBS="-pthread"
1505 if test "x$CXX" = "xc++"; then
1506 # Quash clang's "-pthread unused during compilation" warnings
1507 PTHREAD_LDFLAGS="-Wc,-Qunused-arguments"
1508 fi
1509 ],
ef0c727b
VK
1510 AC_MSG_RESULT(no))
1511 if test "x$PTHREAD_LIBS" = "xerror"; then
1512 AC_CHECK_LIB(pthread, pthread_attr_init,
1513 PTHREAD_LIBS="-lpthread")
1514 fi
f725c1b7 1515 # On HP-UX (at least 11.00) pthread library contains
b041c587 1516 # __pthread_attr_init_system instead of pthread_attr_init
f725c1b7 1517 if test "x$PTHREAD_LIBS" = "xerror"; then
b041c587 1518 AC_CHECK_LIB(pthread, __pthread_attr_init_system,
f725c1b7
VK
1519 PTHREAD_LIBS="-lpthread")
1520 fi
ef0c727b
VK
1521 if test "x$PTHREAD_LIBS" = "xerror"; then
1522 AC_CHECK_LIB(pthreads, pthread_attr_init,
1523 PTHREAD_LIBS="-lpthreads")
1524 fi
1525 if test "x$PTHREAD_LIBS" = "xerror"; then
1526 AC_CHECK_FUNC(pthread_attr_init,
1527 PTHREAD_LIBS="")
1528 fi
1529 fi
1530
1531 if test "x$PTHREAD_LIBS" = "xerror"; then
1532 AC_MSG_ERROR(*** Unable to locate working posix thread library ***)
1533 fi
8d131dda 1534 LIBS="$LIBS $PTHREAD_LIBS"
ef0c727b
VK
1535
1536 # Extensions to posix threads
1537 AC_CHECK_HEADERS([pthread_np.h],,,[
9c29f76e 1538#include <pthread.h>
ef0c727b
VK
1539 ])
1540 AC_CHECK_FUNCS([pthread_cond_reltimedwait_np])
1541
1542 # Check for recursive mutexes
39086394
VK
1543 AC_CHECK_FUNCS([pthread_mutexattr_settype __pthread_mutexattr_settype pthread_mutexattr_setkind_np])
1544 AC_CHECK_DECLS([pthread_mutexattr_settype, PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_RECURSIVE_NP, MUTEX_TYPE_COUNTING_FAST],,,[
9c29f76e
VK
1545#include <pthread.h>
1546#if HAVE_PTHREAD_NP_H
1547#include <pthread_np.h>
1548#endif
ef0c727b
VK
1549 ])
1550
1551 # Check for read/write locks
1552 # On Linux, rwlock functions declared always, but pthread_rwlock_t may need
1553 # additional defines
1554 AC_CHECK_FUNCS([pthread_rwlock_init pthread_rwlock_timedrdlock pthread_rwlock_timedwrlock])
1555 if test "$ac_cv_func_pthread_rwlock_init" = "yes"; then
1556 AC_CACHE_CHECK([for pthread_rwlock_t], ac_cv_struct_pthread_rw,
afd0c386
VK
1557 [AC_COMPILE_IFELSE([
1558 AC_LANG_PROGRAM([
9c29f76e
VK
1559#include <sys/types.h>
1560#include <pthread.h>
afd0c386
VK
1561 ],
1562 [pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER;])],
ef0c727b 1563 ac_cv_struct_pthread_rw=yes, [
afd0c386
VK
1564 AC_COMPILE_IFELSE([
1565 AC_LANG_PROGRAM([
9c29f76e
VK
1566#define _XOPEN_SOURCE 500
1567#include <sys/types.h>
1568#include <pthread.h>
afd0c386
VK
1569 ],
1570 [pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER;])],
ef0c727b
VK
1571 ac_cv_struct_pthread_rw=yes, ac_cv_struct_pthread_rw=no)
1572 if test "$ac_cv_struct_pthread_rw" = "yes"; then
1573 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
1574 fi
1575 ])])
1576 if test "$ac_cv_struct_pthread_rw" = "yes"; then
1577 AC_DEFINE(HAVE_PTHREAD_RWLOCK, 1, Define to 1 if you have working pthread read/write locks)
1578 fi
1579 fi
1580
1581fi
1582
1583
1584#--------------------------------------------------------------------
9c3bf7f4 1585# Checks for OpenSSL/CommonCrypto
ef0c727b
VK
1586#--------------------------------------------------------------------
1587
1588if test "x$DISABLE_ENCRYPTION" != "xyes" ; then
9c3bf7f4
VK
1589 USE_COMMONCRYPTO="no"
1590 if test "x$PLATFORM" = "xDarwin" -a "x$DISABLE_COMMONCRYPTO" != "xyes"; then
1591 AC_CHECK_FUNC(CC_MD5_Init, [
1592 AC_DEFINE(WITH_COMMONCRYPTO, 1, Define to 1 if you have CommonCrypto library and headers)
1593 USE_COMMONCRYPTO="yes"
1594 WITH_ENCRYPTION="yes"
ef0c727b 1595 ])
9c3bf7f4
VK
1596 fi
1597 if test "x$USE_COMMONCRYPTO" != "xyes"; then
1598 AC_CHECK_LIB($OPENSSL_LIBCRYPTO, RSA_new,
1599 [
1600 AC_DEFINE(WITH_OPENSSL, 1, Define to 1 if you have OpenSSL library and headers)
1601 AC_CHECK_LIB($OPENSSL_LIBCRYPTO, EVP_aes_256_cbc,
1602 [HAVE_LIBCRYPTO="yes"], [AC_DEFINE(NETXMS_NO_AES,,[desc])])
1603 AC_CHECK_LIB($OPENSSL_LIBCRYPTO, EVP_bf_cbc,
1604 [HAVE_LIBCRYPTO="yes"], [AC_DEFINE(NETXMS_NO_BF,,[desc])])
1605 AC_CHECK_LIB($OPENSSL_LIBCRYPTO, EVP_idea_cbc,
1606 [HAVE_LIBCRYPTO="yes"], [AC_DEFINE(NETXMS_NO_IDEA,,[desc])])
1607 AC_CHECK_LIB($OPENSSL_LIBCRYPTO, EVP_des_ede3_cbc,
1608 [HAVE_LIBCRYPTO="yes"], [AC_DEFINE(NETXMS_NO_DES,,[desc])])
1609 if test "x$HAVE_LIBCRYPTO" = "xyes"; then
1610 WITH_ENCRYPTION="yes"
1611 LIBS="$LIBS -l$OPENSSL_LIBSSL -l$OPENSSL_LIBCRYPTO"
1612 else
1613 AC_MSG_ERROR(lib$OPENSSL_LIBCRYPTO does not provide any suitable encryption algorithm)
1614 fi
1a448476
VK
1615
1616 AC_CHECK_FUNCS([X509_STORE_set_verify_cb])
9c3bf7f4
VK
1617 ],
1618 [
1619 AC_MSG_ERROR(lib$OPENSSL_LIBCRYPTO is required for encryption support)
1620 ])
1621 fi
ef0c727b
VK
1622fi
1623
1624
1625#--------------------------------------------------------------------
0322eed7
VK
1626# Checks for header files
1627#--------------------------------------------------------------------
1628
8d4bb054 1629AC_CHECK_HEADERS([sys/types.h sys/stat.h unistd.h stdarg.h fcntl.h])
2e98cdb4 1630AC_CHECK_HEADERS([sys/int_types.h time.h sys/time.h sys/utsname.h sys/wait.h])
e9c8eb1d 1631AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h netinet/tcp.h net/nh.h sys/socket.h])
0322eed7
VK
1632AC_CHECK_HEADERS([fcntl.h dirent.h sys/ioctl.h sys/sockio.h poll.h termios.h])
1633AC_CHECK_HEADERS([inttypes.h memory.h stdint.h stdlib.h strings.h string.h])
c1099678 1634AC_CHECK_HEADERS([readline/readline.h byteswap.h sys/select.h dlfcn.h locale.h])
df9812a9 1635AC_CHECK_HEADERS([sys/sysctl.h sys/param.h sys/user.h vm/vm_param.h syslog.h])
7b45b90d 1636AC_CHECK_HEADERS([grp.h pwd.h malloc.h stdbool.h utime.h])
f09c2d05 1637AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h],,,
0322eed7
VK
1638[[#ifdef HAVE_SYS_TYPES_H
1639# include <sys/types.h>
1640#endif
1641#ifdef HAVE_SYS_TIME_H
1642# include <sys/time.h>
1643#endif
1644#ifdef HAVE_SYS_SOCKET_H
1645# include <sys/socket.h>
1646#endif
1647]])
1648
1649
1650#--------------------------------------------------------------------
8d4bb054
VK
1651# Checks for alloca
1652#--------------------------------------------------------------------
1653
1654AC_CHECK_HEADERS([alloca.h])
1655AC_MSG_CHECKING(for alloca)
1656AC_LANG_PUSH([C++])
1657AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1658#if HAVE_STDLIB_H
1659#include <stdlib.h>
1660#endif
1661#if HAVE_MALLOC_H
1662#include <malloc.h>
1663#endif
1664#if HAVE_ALLOCA_H
1665#include <alloca.h>
1666#endif
1667]],[[
1668 char *p = (char *)alloca(256);
1669 return (p != NULL) ? 0 : 1;
1670]])
1671],[
1672 AC_MSG_RESULT(yes)
1673 AC_DEFINE(HAVE_ALLOCA,1,Define to 1 if alloca function is available)
1674],[
1675 AC_MSG_RESULT(no)
1676 AC_DEFINE(HAVE_ALLOCA,0,Define to 1 if alloca function is available)
1677])
1678AC_LANG_POP([C++])
1679
1680
1681#--------------------------------------------------------------------
5f77533a
VK
1682# Checks for d_type in struct dirent
1683#--------------------------------------------------------------------
1684
1685AC_MSG_CHECKING(for d_type in struct dirent)
1686AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1687#if HAVE_STDLIB_H
1688#include <stdlib.h>
1689#endif
1690#if HAVE_DIRENT_H
1691#include <dirent.h>
1692#endif
1693]],[[
1694 struct dirent d;
1695 return d.d_type;
1696]])
1697],[
1698 AC_MSG_RESULT(yes)
1699 AC_DEFINE(HAVE_DIRENT_D_TYPE,1,Define to 1 if struct dirent has member d_type)
1700],[
1701 AC_MSG_RESULT(no)
1702 AC_DEFINE(HAVE_DIRENT_D_TYPE,0,Define to 1 if struct dirent has member d_type)
1703])
1704AC_CHECK_DECLS([DT_DIR, DT_REG, DT_UNKNOWN],,,[
1705#if HAVE_DIRENT_H
1706#include <dirent.h>
1707#endif
1708])
1709
1710
1711#--------------------------------------------------------------------
b8adb0f2
VK
1712# Checks for IPv6 support
1713#--------------------------------------------------------------------
1714
1715if test "x$DISABLE_IPV6" != "xyes"; then
1716 AC_CHECK_DECL(AF_INET6,,,[
1717#if HAVE_NETINET_IN_H
1718#include <netinet/in.h>
1719#endif
1720 ])
1721 if test "x$ac_cv_have_decl_AF_INET6" = "xyes"; then
1722 AC_CHECK_TYPE(struct sockaddr_in6, [
1723 AC_DEFINE(WITH_IPV6, 1, Define to have IPv6 support)
1724 IPV6_SUPPORT="yes"
1725 ],,[
1726#if HAVE_NETINET_IN_H
1727#include <netinet/in.h>
1728#endif
1729 ])
1730 fi
1731fi
1732
257a4037
VK
1733
1734#--------------------------------------------------------------------
1735# Checks for RADIUS client library
1736#--------------------------------------------------------------------
1737
1738if test "x$BUILD_SERVER" = "xyes" ; then
1739 AC_CHECK_HEADERS([radcli/radcli.h])
1740 if test "x$ac_cv_header_radcli_radcli_h" = "xyes"; then
1741 AC_CHECK_LIB(radcli, rc_auth, [
1742 SERVER_LIBS="$SERVER_LIBS -lradcli"
1743 AC_DEFINE(USE_RADCLI, 1, Define to 1 if radcli is used as RADIUS client)
1744 ])
1745 fi
1746fi
1747
1748
b8adb0f2 1749#--------------------------------------------------------------------
ef0c727b
VK
1750# Checks for other libs.
1751#--------------------------------------------------------------------
d16cf8a5 1752
e0760102 1753if test "x$BUILD_SERVER" = "xyes" ; then
7c48e2aa 1754 AC_CHECK_LIB(termcap, tgetstr, [SERVER_LIBS="$SERVER_LIBS -ltermcap"], [AC_CHECK_LIB(ncurses, tgetstr, [SERVER_LIBS="$SERVER_LIBS -lncurses"], AC_CHECK_LIB(curses, tgetstr, [SERVER_LIBS="$SERVER_LIBS -lcurses"]))])
65834be3
VK
1755 if test "x$DISABLE_READLINE" = "xno"; then
1756 AC_CHECK_LIB(readline, readline, [SERVER_LIBS="$SERVER_LIBS -lreadline"], [AC_CHECK_LIB(edit, readline, [SERVER_LIBS="$SERVER_LIBS -ledit"])])
7c48e2aa 1757
0a70c186
VK
1758 SAVED_LIBS="$LIBS"
1759 LIBS="$LIBS $SERVER_LIBS"
0322eed7 1760
0a70c186 1761 AC_CHECK_FUNCS([readline])
0322eed7 1762
0a70c186
VK
1763 # Check if passing rl_insert to rl_bind_key needs cast
1764 if test "$ac_cv_func_readline" = "yes"; then
1765 AC_LANG_PUSH([C++])
1766
1767 AC_MSG_CHECKING(for rl_insert cast)
0322eed7 1768
afd0c386 1769 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
0322eed7
VK
1770 [
1771#include <stdio.h>
1772#include <readline/readline.h>
0a70c186 1773 ],[ rl_bind_key('\t', (Function *)rl_insert); ])],
0322eed7 1774 [
0a70c186
VK
1775 AC_MSG_RESULT((Function *))
1776 AC_DEFINE(RL_INSERT_CAST,(Function *),Required cast for rl_insert)
1777 ],[
1778 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1779 [
1780#include <stdio.h>
1781#include <readline/readline.h>
1782 ],[ rl_bind_key('\t', (rl_command_func_t *)rl_insert); ])],
1783 [
1784 AC_MSG_RESULT((rl_command_func_t *))
1785 AC_DEFINE(RL_INSERT_CAST,(rl_command_func_t *),Required cast for rl_insert)
1786 ],[
1787 AC_MSG_RESULT(not needed)
1788 AC_DEFINE(RL_INSERT_CAST,,Required cast for rl_insert)
1789 ]
1790 )
0322eed7
VK
1791 ]
1792 )
0322eed7 1793
0a70c186
VK
1794 AC_LANG_POP([C++])
1795 fi
1796 LIBS="$SAVED_LIBS"
0322eed7 1797 fi
e0760102
VK
1798fi
1799
3d2bc3ae
VK
1800check_substr "$COMPONENTS" "sqlite"
1801if test $? = 0; then
1802 if test "x$FORCE_INTERNAL_SQLITE" = "xyes"; then
1803 HAVE_SQLITE=no
1804 else
1805 OLD_LIBS="$LIBS"
1806 HAVE_SQLITE=yes
1807 AC_CHECK_HEADER(sqlite3.h,,HAVE_SQLITE=no)
1808 if test "x$HAVE_SQLITE" = "xyes"; then
1809 AC_CHECK_LIB(sqlite3, sqlite3_initialize, [], [ HAVE_SQLITE=no ])
1810 fi
1811 if test "x$HAVE_SQLITE" = "xyes"; then
b536ca1b
VK
1812 if test "x$cross_compiling" = "xyes"; then
1813 AC_MSG_WARN([Cross-compiling mode is active, assuming libsqlite3 is thread-safe])
1814 else
1815 AC_MSG_CHECKING(if libsqlite3 is thread-safe)
1816 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1817#include <sqlite3.h>
1818 ]],[[
1819 return sqlite3_threadsafe() ? 0 : 1;
1820 ]])
1821 ],[
1822 AC_MSG_RESULT(yes)
1823 ],[
1824 AC_MSG_RESULT(no)
1825 HAVE_SQLITE=no
1826 ])
1827 fi
3d2bc3ae
VK
1828 fi
1829 LIBS="$OLD_LIBS"
1830 fi
1831 if test "x$HAVE_SQLITE" = "xno"; then
1832 MODULES="sqlite $MODULES"
1833 fi
1834fi
1835
f1b8f11c
VK
1836if test "x$FORCE_INTERNAL_ZLIB" = "xyes"; then
1837 HAVE_ZLIB=no
1838else
1839 HAVE_ZLIB=yes
1840 AC_CHECK_HEADER(zlib.h,,HAVE_ZLIB=no)
1841 if test "x$HAVE_ZLIB" = "xyes"; then
1842 AC_CHECK_LIB(z, deflate, [], [ HAVE_ZLIB=no ])
1fd41bcd 1843 fi
ef0c727b 1844fi
f1b8f11c
VK
1845if test "x$HAVE_ZLIB" = "xno"; then
1846 MODULES="zlib $MODULES"
1847fi
ef0c727b 1848
467c489f
VK
1849if test "x$FORCE_INTERNAL_EXPAT" = "xyes"; then
1850 HAVE_LIBEXPAT=no
1851else
1852 HAVE_LIBEXPAT=yes
1853 AC_CHECK_HEADER(expat.h,,HAVE_LIBEXPAT=no)
1854 AC_CHECK_LIB(expat, XML_Parse, [], [ HAVE_LIBEXPAT=no ])
1855fi
80ce37ac
VK
1856if test "x$HAVE_LIBEXPAT" = "xno"; then
1857 MODULES="libexpat $MODULES"
1bb6b449 1858fi
ef0c727b 1859
17b35ccc
VK
1860if test "x$FORCE_INTERNAL_LIBTRE" = "xyes"; then
1861 HAVE_LIBTRE=no
1862else
1863 HAVE_LIBTRE=yes
1864 AC_CHECK_HEADER(tre/regex.h,,HAVE_LIBTRE=no)
1865 AC_CHECK_LIB(tre, tre_compile, [], [ HAVE_LIBTRE=no ])
1866fi
1867if test "x$HAVE_LIBTRE" = "xno"; then
1868 MODULES="libtre $MODULES"
1869 AC_DEFINE(USE_BUNDLED_LIBTRE,1,Define to 1 if bundled libtre is used)
a67fa146 1870
720c23d0
VK
1871 tre_version_1='0'
1872 tre_version_2='8'
1873 tre_version_3='0'
a67fa146
VK
1874 tre_version=$tre_version_1.$tre_version_2.$tre_version_3
1875 AC_DEFINE_UNQUOTED(TRE_VERSION, "$tre_version", [ TRE version string. ])
1876 AC_DEFINE_UNQUOTED(TRE_VERSION_1, $tre_version_1, [ TRE version level 1. ])
1877 AC_DEFINE_UNQUOTED(TRE_VERSION_2, $tre_version_2, [ TRE version level 2. ])
1878 AC_DEFINE_UNQUOTED(TRE_VERSION_3, $tre_version_3, [ TRE version level 3. ])
1879 AC_SUBST(TRE_VERSION, $tre_version)
1880
1881 AC_DEFINE(TRE_REGEX_T_FIELD,value,[Define to a field in the regex_t struct where TRE should store a pointer to the internal tre_tnfa_t structure])
1882 AC_DEFINE(TRE_APPROX, 1, [ Define if you want to enable approximate matching functionality. ])
17b35ccc 1883fi
ef0c727b 1884
f5393033
VK
1885if test "x$FORCE_INTERNAL_JANSSON" = "xyes"; then
1886 HAVE_JANSSON=no
1887else
1888 HAVE_JANSSON=yes
1889 AC_CHECK_HEADER(jansson.h,,HAVE_JANSSON=no)
1890 AC_CHECK_LIB(jansson, json_object, [ HAVE_JANSSON=yes ], [ HAVE_JANSSON=no ])
1891fi
1892if test "x$HAVE_JANSSON" = "xno"; then
1893 MODULES="jansson $MODULES"
1894fi
1895
4050bafb
VK
1896if test "x$DISABLE_LMSENSORS" = "xno"; then
1897 HAVE_LMSENSORS=yes
1898 AC_CHECK_HEADER(sensors/sensors.h,,HAVE_LMSENSORS=no)
1899 if test "x$HAVE_LMSENSORS" = "xyes"; then
1900 AC_CHECK_LIB(sensors, sensors_init, [ DUMMY="" ], [ HAVE_LMSENSORS=no ])
1901 fi
1902 if test "x$HAVE_LMSENSORS" = "xyes"; then
1903 SUBAGENT_DIRS="$SUBAGENT_DIRS lmsensors"
1904 fi
38bfa5da
AK
1905fi
1906
0a4194c2
AK
1907AC_CHECK_HEADER(curl/curl.h,HAVE_LIBCURL=yes,HAVE_LIBCURL=no)
1908if test "x$HAVE_LIBCURL" = "xyes"; then
2368dc85
VK
1909 AC_CHECK_LIB(curl, curl_global_init, [ HAVE_LIBCURL=yes ], [ HAVE_LIBCURL=no ])
1910 AC_CHECK_DECLS([CURLOPT_NOSIGNAL, curl_version_info],,,[
1911#ifdef HAVE_CURL_CURL_H
1912#include <curl/curl.h>
1913#endif
1914])
0a4194c2 1915fi
d9177dd1 1916
0a4194c2 1917if test "x$HAVE_LIBCURL" = "xyes"; then
c80c69bd 1918 SUBAGENT_DIRS="$SUBAGENT_DIRS netsvc"
f841b121 1919 SMSDRV_DIRS="$SMSDRV_DIRS anysms kannel mymobile nexmo slack smseagle text2reach websms"
2a0a6a2b 1920 HDLINK_DIRS="$HDLINK_DIRS jira redmine"
3bc41d67 1921 AC_DEFINE(HAVE_LIBCURL, 1, Define to 1 if libcurl is available)
0a4194c2
AK
1922fi
1923
f32b0155
VK
1924if test "x$DISABLE_SSH" != "xyes"; then
1925 AC_CHECK_HEADER(libssh/libssh.h,HAVE_LIBSSH=yes,HAVE_LIBSSH=no)
1926 if test "x$HAVE_LIBSSH" = "xyes"; then
e9a40aa1 1927 AC_CHECK_LIB(ssh, ssh_version, [ HAVE_LIBSSH=yes ], [ HAVE_LIBSSH=no ])
f32b0155 1928 fi
12acf3d3 1929
f32b0155
VK
1930 if test "x$HAVE_LIBSSH" = "xyes"; then
1931 SUBAGENT_DIRS="$SUBAGENT_DIRS ssh"
1932 AC_DEFINE(HAVE_LIBSSH, 1, Define to 1 if libssh is available)
1933 else
1934 AC_MSG_ERROR(libssh is required for SSH support. Check that it is installed or use --disable-ssh option)
1935 fi
1936else
1937 HAVE_LIBSSH=no
12acf3d3
VK
1938fi
1939
2cfe4482
VK
1940if test "x$LDAP_SUPPORT" = "xyes"; then
1941 AC_CHECK_HEADER(ldap.h,HAVE_LDAP=yes,HAVE_LDAP=no)
1942 if test "x$HAVE_LDAP" = "xyes"; then
1943 AC_CHECK_LIB(ldap, ldap_init, [ HAVE_LDAP=yes ], [ HAVE_LDAP=no ])
e8ef7fe1 1944 if test "x$HAVE_LDAP" = "xyes"; then
a0008bce 1945 AC_CHECK_LIB(lber, ber_init, [ SERVER_LIBS="-llber $SERVER_LIBS" ])
e8ef7fe1 1946 fi
2cfe4482 1947 fi
d9177dd1 1948 if test "x$HAVE_LDAP" = "xyes"; then
1949 SERVER_LIBS="-lldap $SERVER_LIBS"
2cfe4482 1950 AC_DEFINE(WITH_LDAP, 1, Define to 1 if you have LDAP libraries and headers)
d95c3dad
A
1951 AC_CHECK_HEADERS([ldap_ssl.h],,,
1952 [
1953#include <ldap.h>
a164b767 1954 ])
d95c3dad
A
1955 AC_CHECK_TYPES([ber_int_t],,,
1956 [
1957#include <ldap.h>
1958#if HAVE_LDAP_SSL_H
1959#include <ldap_ssl.h>
1960#endif
daa828ee 1961 ])
d95c3dad
A
1962
1963 OLD_LIBS="$LIBS"
1964 LIBS="$LIBS -lldap"
1965 AC_CHECK_FUNCS([ldap_initialize ldapssl_init])
1966 AC_CHECK_FUNCS([ldap_control_create ldap_create_control nsldapi_build_control])
1967 AC_CHECK_FUNCS([ldap_create_page_control ldap_parse_page_control])
1968 LIBS="$OLD_LIBS"
1969
1970 AC_CHECK_DECLS([nsldapi_build_control],,,
1971 [
1972#include <ldap.h>
1973#if HAVE_LDAP_SSL_H
1974#include <ldap_ssl.h>
1975#endif
b00236dd 1976 ])
d9177dd1 1977 fi
2cfe4482 1978 LDAP_SUPPORT="$HAVE_LDAP"
d9177dd1 1979fi
1980
ef0c727b
VK
1981#--------------------------------------------------------------------
1982# Checks for data types
1983#--------------------------------------------------------------------
1984
d16cf8a5
AK
1985AC_CHECK_SIZEOF(short)
1986AC_CHECK_SIZEOF(int)
1987AC_CHECK_SIZEOF(long)
1988AC_CHECK_SIZEOF(long long)
1989
1990AC_TYPE_PID_T
d16cf8a5
AK
1991AC_TYPE_SIZE_T
1992AC_STRUCT_TIMEZONE
1993
5456cd6d
VK
1994AC_CHECK_TYPES([long long, unsigned long long, int64_t, uint64_t, u_int64_t, uuid_t, bool],,,[
1995#ifdef HAVE_STDBOOL_H
1996#include <stdbool.h>
1997#endif
1998#ifdef HAVE_STDINT_H
1999#include <stdint.h>
2000#endif
2001])
51128b42 2002AC_CHECK_TYPES([mode_t, off_t, socklen_t],,,[
4c779d83
VK
2003#if HAVE_SYS_TYPES_H
2004#include <sys/types.h>
2005#endif
2006#if HAVE_SYS_SOCKET_H
2007#include <sys/socket.h>
2008#endif
2009])
e0293f7f
VK
2010AC_CHECK_TYPES([struct stat64],,,[
2011#if HAVE_SYS_STAT_H
2012#include <sys/stat.h>
2013#endif
2014])
521d90e7 2015
e25cadc9 2016
ef0c727b
VK
2017#--------------------------------------------------------------------
2018# Checks for functions
2019#--------------------------------------------------------------------
d16cf8a5
AK
2020
2021AC_FUNC_ERROR_AT_LINE
d16cf8a5 2022AC_FUNC_MEMCMP
d16cf8a5
AK
2023AC_FUNC_SELECT_ARGTYPES
2024AC_FUNC_STRFTIME
2025AC_FUNC_STRTOD
2026AC_FUNC_VPRINTF
2027
80ce37ac 2028AC_CHECK_FUNCS([gettimeofday memmove memset bcopy strchr strcspn strdup strerror])
fdb710a7 2029AC_CHECK_FUNCS([strrchr strlwr strtok_r strtol strtoul strtoll strtoull setlocale])
3b3ee220 2030AC_CHECK_FUNCS([tolower if_nametoindex daemon mmap strerror_r scandir uname poll])
c601fc15 2031AC_CHECK_FUNCS([usleep nanosleep gmtime_r localtime_r stat64 fstat64 lstat64])
840e065a 2032AC_CHECK_FUNCS([fopen64 strptime timegm gethostbyname2_r getaddrinfo rand_r])
7b45b90d 2033AC_CHECK_FUNCS([itoa _itoa isatty getgrnam getpwnam malloc_info malloc_trim utime])
aa24418a 2034
9757ca46 2035AC_CHECK_DECLS([nanosleep, daemon, strerror])
be6467e9 2036
6f95ef89
VK
2037# Do not use inet_pton on Solaris as it has binary compatibility problems
2038if test "$PLATFORM" != "SunOS"; then
2039 AC_CHECK_FUNCS([inet_pton])
2040fi
2041
b0823d06
VK
2042# Check if strerror_r is POSIX-compliant
2043if test "$ac_cv_func_strerror_r" = "yes"; then
2044 AC_MSG_CHECKING(if strerror_r is POSIX compliant)
2045 AC_LANG_PUSH([C++])
2046 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7f9423af
VK
2047#if HAVE_STRING_H
2048#include <string.h>
2049#endif
2050#if HAVE_ERRNO_H
2051#include <errno.h>
2052#endif
b0823d06 2053 ]],[[
7f9423af
VK
2054 int e;
2055 char buffer[256];
2056 e = strerror_r(1, buffer, 256);
2057 return e;
b0823d06
VK
2058 ]])
2059 ],[
2060 AC_MSG_RESULT(yes)
2061 AC_DEFINE(HAVE_POSIX_STRERROR_R,1,Define to 1 if strerror_r function is POSIX compliant)
2062 ],[
2063 AC_MSG_RESULT(no)
2064 AC_DEFINE(HAVE_POSIX_STRERROR_R,0,Define to 1 if strerror_r function is POSIX compliant)
2065 ])
2066 AC_LANG_POP([C++])
2067fi
2068
be6467e9
VK
2069# Check if struct tm has tm_gmtoff member
2070AC_MSG_CHECKING(for struct tm.tm_gmtoff)
2071AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2072#if HAVE_TIME_H
2073#include <time.h>
2074#endif
2075#if HAVE_SYS_TIME_H
2076#include <sys/time.h>
2077#endif
2078]],[[
be6467e9
VK
2079 struct tm t;
2080 return t.tm_gmtoff;
be6467e9
VK
2081]])
2082],[
2083AC_MSG_RESULT(yes)
2084AC_DEFINE(HAVE_TM_GMTOFF,1,Define to 1 if struct tm has tm_gmtoff member)
2085],[
2086AC_MSG_RESULT(no)
2087])
d16cf8a5 2088
f91feddc 2089AC_CHECK_FUNCS([sysctlbyname sysctlnametomib])
70fed300
AK
2090AC_CHECK_FUNCS([tcgetattr tcsetattr cfsetospeed cfsetispeed])
2091
c6491611
VK
2092# asprintf, scprintf, etc.
2093AC_CHECK_FUNCS([asprintf aswprintf vasprintf vaswprintf])
2094AC_CHECK_FUNCS([scprintf scwprintf vscprintf vscwprintf])
342a701d 2095AC_CHECK_FUNCS([snprintf vsnprintf])
c6491611
VK
2096
2097AC_MSG_CHECKING(whether snprintf returns required buffer size)
2098AC_RUN_IFELSE(
2099 [AC_LANG_PROGRAM([
2100#include <stdio.h>
2101#include <string.h>
2102 ], [
2103 return !(snprintf(NULL, 0, "test: %d", 1000) >= 10);
2104 ])
2105 ],
2106 [ AC_MSG_RESULT(yes)
2107 AC_DEFINE(SNPRINTF_RETURNS_REQUIRED_SIZE, 1, Define to 1 if snprintf returns required buffer size in case of truncation)
2108 ],
2109 [ AC_MSG_RESULT(no) ],
2110 [ AC_MSG_RESULT(no) ]
2111)
2112
2f64a076
VK
2113AC_MSG_CHECKING(whether free correctly handles NULL pointer)
2114AC_RUN_IFELSE(
2115 [AC_LANG_PROGRAM([
2116#include <stdlib.h>
2117 ], [
2118 free(NULL);
2119 return 0;
2120 ])
2121 ],
2122 [ AC_MSG_RESULT(yes)
2123 AC_DEFINE(FREE_IS_NULL_SAFE, 1, Define to 1 if free corectly handles NULL pointer)
2124 ],
2125 [ AC_MSG_RESULT(no) ],
2126 [ AC_MSG_RESULT(no) ]
2127)
2128
c6491611 2129
ef0c727b
VK
2130#--------------------------------------------------------------------
2131# Checks for macros and definitions
2132#--------------------------------------------------------------------
dff54fed 2133
c62d158b 2134AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64, htonll, ntohll],,,[
ef0c727b 2135#ifdef HAVE_SYS_TYPES_H
99e50bb7 2136#include <sys/types.h>
ef0c727b
VK
2137#endif
2138#if HAVE_BYTESWAP_H
2139#include <byteswap.h>
2140#endif
2141#if HAVE_NETINET_IN_H
2142#include <netinet/in.h>
2143#endif
2144#if HAVE_NET_NH_H
2145#include <net/nh.h>
2146#endif
2147])
aa24418a
VK
2148AC_CHECK_DECLS([RTLD_NOW, RTLD_GLOBAL],,,[
2149#ifdef HAVE_UNISTD_H
2150#include <unistd.h>
2151#endif
2152#ifdef HAVE_DLFCN_H
2153#include <dlfcn.h>
2154#endif
2155])
ce7565e7
VK
2156AC_CHECK_DECLS([va_copy, __va_copy],,,[
2157#ifdef HAVE_UNISTD_H
2158#include <unistd.h>
2159#endif
2160#ifdef HAVE_STDARG_H
2161#include <stdarg.h>
2162#endif
2163#ifdef HAVE_STDLIB_H
2164#include <stdlib.h>
2165#endif
2166])
dff54fed 2167
dff54fed 2168
ef0c727b 2169#--------------------------------------------------------------------
df9812a9
VK
2170# getopt
2171#--------------------------------------------------------------------
2172
2173if test "x$FORCE_INTERNAL_GETOPT" = "xyes"; then
2174 AC_DEFINE([USE_BUNDLED_GETOPT], [1], [Define to 1 if bundled getopt must be used])
2175else
2176 AC_CHECK_HEADERS([getopt.h])
2177 AC_CHECK_LIB(gnugetopt, getopt_long)
2178 AC_CHECK_DECLS([getopt_long],,,[
2179#if HAVE_GETOPT_H
2180#include <getopt.h>
2181#endif
2182 ])
2183fi
2184
2185
2186#--------------------------------------------------------------------
671651a1
VK
2187# Linux specific checks
2188#--------------------------------------------------------------------
2189
2190if test "x$PLATFORM" = "xLinux"; then
2191 AC_CHECK_HEADERS([sys/reboot.h],,,[[ ]])
2192 AC_CHECK_DECLS([reboot, RB_AUTOBOOT, RB_POWER_OFF, RB_HALT_SYSTEM],,,[
2193#if HAVE_SYS_REBOOT_H
2194#include <sys/reboot.h>
2195#endif
2196 ])
2197 AC_CHECK_FUNCS([reboot],,,[
2198#if HAVE_SYS_REBOOT_H
2199#include <sys/reboot.h>
2200#endif
2201 ])
f92a016a
VK
2202
2203 AC_CHECK_HEADERS([jemalloc/jemalloc.h],
2204 [
2205 AC_CHECK_LIB(jemalloc, malloc,
2206 [
2207 WITH_JEMALLOC="yes"
2208 AC_DEFINE(WITH_JEMALLOC,1,Define to 1 if libjemalloc is used)
2209 ])
2210 ])
671651a1
VK
2211fi
2212
2213
2214#--------------------------------------------------------------------
ef0c727b
VK
2215# AIX specific checks
2216#--------------------------------------------------------------------
d16cf8a5 2217
ef0c727b
VK
2218if test "x$PLATFORM" = "xAIX"; then
2219 AC_CHECK_HEADERS([procinfo.h],,,[[ ]])
efdaffe4 2220 AC_CHECK_DECLS([getkerninfo, getprocs, getprocs64, __sync_add_and_fetch, __sync_sub_and_fetch],,,[
df9812a9
VK
2221#if HAVE_PROCINFO_H
2222#include <procinfo.h>
2223#endif
2224 ])
ef0c727b
VK
2225 AC_CHECK_FUNCS([getprocs64],,,[
2226#if HAVE_PROCINFO_H
2227#include <procinfo.h>
6cd41ceb 2228#endif
ef0c727b 2229 ])
7e56bf2e
VK
2230fi
2231
cd4c8ca3 2232
ef0c727b 2233#--------------------------------------------------------------------
f47bd4ca
VK
2234# Solaris specific checks
2235#--------------------------------------------------------------------
2236
2237if test "x$PLATFORM" = "xSunOS"; then
2238 AC_CHECK_FUNCS([atomic_inc_32_nv atomic_dec_32_nv],,,[
2239#include <sys/atomic.h>
2240 ])
2241fi
2242
2243
2244#--------------------------------------------------------------------
ba8db57b
VK
2245# HP-UX specific checks
2246#--------------------------------------------------------------------
2247
2248if test "x$PLATFORM" = "xHP-UX"; then
3268bb77 2249 AC_CHECK_HEADERS([atomic.h sys/mib.h],,,[[ ]])
f09c2d05
VK
2250 AC_CHECK_DECLS([SIOCGIFNAME, SIOCGIFINDEX],,,[
2251#if HAVE_NET_IF_H
2252#include <net/if.h>
2253#endif
2254 ])
2255 AC_CHECK_DECLS([ID_ifXEntry, open_mib_64],,,[
2256#if HAVE_SYS_MIB_H
2257#include <sys/mib.h>
2258#endif
2259 ])
cfd95c74
VK
2260
2261 AC_MSG_CHECKING(if pst_diskinfo has read/write stats fields)
2262 AC_LANG_PUSH([C++])
2263 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2264#include <sys/pstat.h>
2265 ]], [[
2266pst_diskinfo d;
2267int x;
2268x = (int)d.psd_dkread;
2269x = (int)d.psd_dkwrite;
2270 ]])],
2271 [
2272 AC_DEFINE([HAVE_DISKINFO_RWSTATS],[1],[Define to 1 if pst_diskinfo has read/write stats fields])
2273 AC_MSG_RESULT(yes)
2274 ],
2275 [
2276 AC_MSG_RESULT(no)
2277 ])
2278 AC_LANG_POP([C++])
ba8db57b
VK
2279fi
2280
2281
2282#--------------------------------------------------------------------
aa24418a
VK
2283# *BSD specific checks
2284#--------------------------------------------------------------------
2285
058fbb88 2286AC_CHECK_HEADERS([sys/event.h])
aa24418a 2287AC_CHECK_LIB(kvm, kvm_open)
058fbb88 2288AC_CHECK_FUNCS([kvm_openfiles kvm_getswapinfo kqueue])
aa24418a
VK
2289AC_CHECK_TYPES([struct kinfo_proc2],,,[
2290#if HAVE_SYS_SYSCTL_H
2291#include <sys/sysctl.h>
2292#endif
2293])
2294
2295
28ba6824
VK
2296#--------------------------------------------------------------------
2297# FreeBSD specific checks
2298#--------------------------------------------------------------------
2299
2300if test "x$PLATFORM" = "xFreeBSD"; then
61f58c11
VK
2301 AC_CHECK_DECLS([RTF_WASCLONED],[],[],[
2302#if HAVE_SYS_TYPES_H
2303#include <sys/types.h>
2304#endif
2305#if HAVE_SYS_SOCKET_H
2306#include <sys/socket.h>
2307#endif
2308#include <net/route.h>
2309 ])
28ba6824
VK
2310fi
2311
2312
aa24418a 2313#--------------------------------------------------------------------
ea6615cf
VK
2314# OpenBSD specific checks
2315#--------------------------------------------------------------------
2316
2317if test "x$PLATFORM" = "xOpenBSD"; then
2318 AC_MSG_CHECKING(if kvm_getprocs requires sizeof kinfo_proc argument)
2319 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2320#include <sys/param.h>
2321#include <sys/proc.h>
2322#include <kvm.h>
2323#include <sys/user.h>
2324 ]],[[
2325 int count;
2326 kvm_getprocs(NULL, KERN_PROC_ALL, 0, sizeof(struct kinfo_proc), &count);
2327 return 0;
2328 ]])
2329 ],[
2330 AC_MSG_RESULT(yes)
2331 AC_DEFINE(KVM_GETPROCS_REQUIRES_SIZEOF,1,Define to 1 if kvm_getprocs requires sizeof kinfo_proc)
2332 ],[
2333 AC_MSG_RESULT(no)
2334 AC_DEFINE(KVM_GETPROCS_REQUIRES_SIZEOF,0,Define to 1 if kvm_getprocs requires sizeof kinfo_proc)
2335 ])
2336
2337 AC_MSG_CHECKING(if struct kinfo_proc has member kp_proc)
2338 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2339#include <sys/param.h>
2340#include <sys/proc.h>
2341#include <kvm.h>
2342#include <sys/user.h>
2343 ]],[[
2344 struct kinfo_proc p;
2345 return p.kp_proc.p_pid;
2346 ]])
2347 ],[
2348 AC_MSG_RESULT(yes)
2349 AC_DEFINE(KINFO_PROC_HAS_KP_PROC,1,Define to 1 if struct kinfo_proc has member kp_proc)
2350 ],[
2351 AC_MSG_RESULT(no)
2352 AC_DEFINE(KINFO_PROC_HAS_KP_PROC,0,Define to 1 if struct kinfo_proc has member kp_proc)
2353 ])
2354fi
2355
2356
2357#--------------------------------------------------------------------
ef8a3c32
VK
2358# Minix specific checks
2359#--------------------------------------------------------------------
2360
2361if test "x$PLATFORM" = "xMinix"; then
2362 AC_CHECK_HEADERS([minix/minlib.h])
2363fi
2364
2365
2366#--------------------------------------------------------------------
ef0c727b
VK
2367# Check for UNICODE stuff
2368#--------------------------------------------------------------------
3e39fcde 2369
25a19da6
VK
2370if test "x$BUILD_UNICODE" = "xyes"; then
2371 CPPFLAGS="$CPPFLAGS -DUNICODE"
2372fi
2373
5a82ecc7 2374AC_CHECK_HEADERS([wchar.h wctype.h iconv.h widec.h])
aa24418a 2375AC_CHECK_TYPES([wchar_t, wint_t],,,[
6b93c954
VK
2376#if HAVE_WCHAR_H
2377#include <wchar.h>
2378#endif
2379])
f172d7b7
VK
2380AC_CHECK_SIZEOF(wchar_t,,[
2381#if HAVE_WCHAR_H
2382#include <wchar.h>
2383#endif
2384])
fdf1ed50
VK
2385AC_CHECK_FUNCS([wcslen wcsdup wcsncpy wcstoll wcstoull towupper towlower])
2386AC_CHECK_FUNCS([wcslwr wcserror wcserror_r wfopen wfopen64 fputws putws])
2387AC_CHECK_FUNCS([wopen wstat waccess wgetenv wrename wunlink wremove wchdir])
2388AC_CHECK_FUNCS([wmkdir wrmdir wsystem wmkstemp wpopen wctime wchmod vwscanf])
2389AC_CHECK_FUNCS([vswscanf vfwscanf wcscasecmp wcsncasecmp wcstombs wcsrtombs])
7b45b90d 2390AC_CHECK_FUNCS([mbstowcs mbsrtowcs itow _itow wcsftime wcstok wutime])
dff54fed 2391
465bd4ff
VK
2392AC_CHECK_DECLS([putws],,,[
2393#if HAVE_WCHAR_H
2394#include <wchar.h>
2395#endif
2396])
2397
75b4d48e
VK
2398if test "x$ac_cv_func_wcsftime" = "xyes"; then
2399 AC_MSG_CHECKING(whether wcsftime is working correctly)
2400 AC_RUN_IFELSE(
2401 [AC_LANG_PROGRAM([
2402#include <stdio.h>
2403#ifdef HAVE_UNISTD_H
2404#include <unistd.h>
2405#endif
2406#ifdef HAVE_TIME_H
2407#include <time.h>
2408#endif
2409#ifdef HAVE_SYS_TIME_H
2410#include <sys/time.h>
2411#endif
2412#if HAVE_WCHAR_H
2413#include <wchar.h>
2414#endif
2415 ], [[
2416 wchar_t buffer[64];
2417 struct tm *ltm;
2418 time_t t;
2419
2420 t = time(NULL);
2421 ltm = localtime(&t);
2422 wcsftime(buffer, 64, L"%Y", ltm);
2423 return wcstol(buffer, NULL, 10) == ltm->tm_year + 1900 ? 0 : 1;
2424 ]])
2425 ],
2426 [ AC_MSG_RESULT(yes)
2427 AC_DEFINE(WORKING_WCSFTIME, 1, Define to 1 if wcsftime is working correctly)
2428 ],
2429 [ AC_MSG_RESULT(no) ],
2430 [ AC_MSG_RESULT(no) ]
2431 )
2432fi
2433
3265ba38 2434if test "x$DISABLE_ICONV" != "xyes"; then
75c30ed4 2435 AC_CHECK_LIB(iconv, libiconv_open,
dff54fed 2436 [ ac_found_iconv=yes
8d131dda 2437 LIBS="$LIBS -liconv"
75c30ed4
VK
2438 AC_CHECK_FUNCS(libiconv, ac_found_iconv=yes, ac_found_iconv=no)
2439 ],
2440 [
2441 AC_CHECK_LIB(iconv, iconv,
2442 [ ac_found_iconv=yes
8d131dda 2443 LIBS="$LIBS -liconv"
75c30ed4
VK
2444 ])
2445 AC_CHECK_FUNCS(iconv, ac_found_iconv=yes, ac_found_iconv=no)
2446 ])
dff54fed
VK
2447else
2448 ac_found_iconv=no
ef0c727b 2449 CPPFLAGS="$CPPFLAGS -D__DISABLE_ICONV"
dff54fed 2450fi
93571e7f 2451
3bf0df9f
VK
2452AC_MSG_CHECKING(whether fgetws can be used with popen)
2453AC_RUN_IFELSE(
2454 [AC_LANG_PROGRAM([
2455#include <stdio.h>
2456#ifdef HAVE_UNISTD_H
2457#include <unistd.h>
2458#endif
2459#if HAVE_WCHAR_H
2460#include <wchar.h>
2461#endif
2462 ], [[
2463 int rc = 1;
2464 wchar_t line[4096];
2465 FILE *f = popen("echo test", "r");
2466 if(f!=NULL)
2467 {
2468 fgetws(line, 4096, f);
2469 pclose(f);
2470 rc = 0;
2471 }
2472 return rc;
2473 ]])
2474 ],
2475 [ AC_MSG_RESULT(yes)
2476 AC_DEFINE(SAFE_FGETWS_WITH_POPEN, 1, Define to 1 if fgetws can be used with popen)
2477 ],
2478 [ AC_MSG_RESULT(no) ],
2479 [ AC_MSG_RESULT(no) ]
2480)
2481
93571e7f
VK
2482AC_MSG_CHECKING(whether iconv supports UCS-2-INTERNAL)
2483AC_RUN_IFELSE(
2484 [AC_LANG_PROGRAM([
2485#if HAVE_ICONV_H
2486#include <iconv.h>
2487#endif
2488 ], [
2489 return iconv_open("UTF-8","UCS-2-INTERNAL")==(iconv_t)(-1);
2490 ])
2491 ],
2492 [ AC_MSG_RESULT(yes)
2493 AC_DEFINE(HAVE_ICONV_UCS_2_INTERNAL, 1, Define to 1 if iconv supports UCS-2-INTERNAL)
2494 valid_ucs2_code="UCS-2-INTERNAL"
2495 ],
2496 [ AC_MSG_RESULT(no) ],
2497 [ AC_MSG_RESULT(no) ]
2498)
2499
2500AC_MSG_CHECKING(whether iconv supports UCS-2)
2501AC_RUN_IFELSE(
2502 [AC_LANG_PROGRAM([
2503#if HAVE_ICONV_H
2504#include <iconv.h>
2505#endif
2506 ], [
2507 return iconv_open("UTF-8","UCS-2")==(iconv_t)(-1);
2508 ])
2509 ],
2510 [ AC_MSG_RESULT(yes)
2511 AC_DEFINE(HAVE_ICONV_UCS_2, 1, Define to 1 if iconv supports UCS-2)
2512 valid_ucs2_code="UCS-2"
2513 ],
2514 [ AC_MSG_RESULT(no) ],
8b86c5dc 2515 [ AC_MSG_RESULT(no) ]
93571e7f
VK
2516)
2517
2518AC_MSG_CHECKING(whether iconv supports UCS2)
2519AC_RUN_IFELSE(
2520 [AC_LANG_PROGRAM([
2521#if HAVE_ICONV_H
2522#include <iconv.h>
2523#endif
2524 ], [
2525 return iconv_open("UTF-8","UCS2")==(iconv_t)(-1);
2526 ])
2527 ],
2528 [ AC_MSG_RESULT(yes)
2529 AC_DEFINE(HAVE_ICONV_UCS2, 1, Define to 1 if iconv supports UCS2)
2530 valid_ucs2_code="UCS2"
2531 ],
2532 [ AC_MSG_RESULT(no) ],
2533 [ AC_MSG_RESULT(no) ]
2534)
2535
44bccbbc
VK
2536AC_MSG_CHECKING(whether iconv supports UCS-2BE)
2537AC_RUN_IFELSE(
2538 [AC_LANG_PROGRAM([
2539#if HAVE_ICONV_H
2540#include <iconv.h>
2541#endif
2542 ], [
2543 return iconv_open("UTF-8","UCS-2BE")==(iconv_t)(-1);
2544 ])
2545 ],
2546 [ AC_MSG_RESULT(yes)
2547 AC_DEFINE(HAVE_ICONV_UCS_2BE, 1, Define to 1 if iconv supports UCS-2BE)
2548 valid_ucs2_code="UCS-2BE"
2549 ],
2550 [ AC_MSG_RESULT(no) ],
2551 [ AC_MSG_RESULT(no) ]
2552)
2553
6e17f325
VK
2554AC_MSG_CHECKING(whether iconv supports UCS-2LE)
2555AC_RUN_IFELSE(
2556 [AC_LANG_PROGRAM([
2557#if HAVE_ICONV_H
2558#include <iconv.h>
2559#endif
2560 ], [
2561 return iconv_open("UTF-8","UCS-2LE")==(iconv_t)(-1);
2562 ])
2563 ],
2564 [ AC_MSG_RESULT(yes)
2565 AC_DEFINE(HAVE_ICONV_UCS_2LE, 1, Define to 1 if iconv supports UCS-2LE)
2566 valid_ucs2_code="UCS-2LE"
2567 ],
2568 [ AC_MSG_RESULT(no) ],
2569 [ AC_MSG_RESULT(no) ]
2570)
2571
4a4e1feb
VK
2572AC_MSG_CHECKING(whether iconv supports UTF-16)
2573AC_RUN_IFELSE(
2574 [AC_LANG_PROGRAM([
2575#if HAVE_ICONV_H
2576#include <iconv.h>
2577#endif
2578 ], [
2579 return iconv_open("UTF-8","UTF-16")==(iconv_t)(-1);
2580 ])
2581 ],
2582 [ AC_MSG_RESULT(yes)
2583 AC_DEFINE(HAVE_ICONV_UTF_16, 1, Define to 1 if iconv supports UTF-16)
2584 valid_ucs2_code="UTF-16"
2585 ],
2586 [ AC_MSG_RESULT(no) ],
2587 [ AC_MSG_RESULT(no) ]
2588)
2589
8b86c5dc
VK
2590AC_MSG_CHECKING(whether iconv supports UCS-4-INTERNAL)
2591AC_RUN_IFELSE(
2592 [AC_LANG_PROGRAM([
2593#if HAVE_ICONV_H
2594#include <iconv.h>
2595#endif
2596 ], [
2597 return iconv_open("UTF-8","UCS-4-INTERNAL")==(iconv_t)(-1);
2598 ])
2599 ],
2600 [ AC_MSG_RESULT(yes)
2601 AC_DEFINE(HAVE_ICONV_UCS_4_INTERNAL, 1, Define to 1 if iconv supports UCS-4-INTERNAL)
2602 valid_ucs4_code="UCS-4-INTERNAL"
2603 ],
2604 [ AC_MSG_RESULT(no) ],
2605 [ AC_MSG_RESULT(no) ]
2606)
2607
2608AC_MSG_CHECKING(whether iconv supports UCS-4)
2609AC_RUN_IFELSE(
2610 [AC_LANG_PROGRAM([
2611#if HAVE_ICONV_H
2612#include <iconv.h>
2613#endif
2614 ], [
2615 return iconv_open("UTF-8","UCS-4")==(iconv_t)(-1);
2616 ])
2617 ],
2618 [ AC_MSG_RESULT(yes)
2619 AC_DEFINE(HAVE_ICONV_UCS_4, 1, Define to 1 if iconv supports UCS-4)
2620 valid_ucs4_code="UCS-4"
2621 ],
2622 [ AC_MSG_RESULT(no) ],
2623 [ AC_MSG_RESULT(no) ]
2624)
2625
2626AC_MSG_CHECKING(whether iconv supports UCS4)
2627AC_RUN_IFELSE(
2628 [AC_LANG_PROGRAM([
2629#if HAVE_ICONV_H
2630#include <iconv.h>
2631#endif
2632 ], [
2633 return iconv_open("UTF-8","UCS4")==(iconv_t)(-1);
2634 ])
2635 ],
2636 [ AC_MSG_RESULT(yes)
2637 AC_DEFINE(HAVE_ICONV_UCS4, 1, Define to 1 if iconv supports UCS4)
2638 valid_ucs4_code="UCS4"
2639 ],
2640 [ AC_MSG_RESULT(no) ],
2641 [ AC_MSG_RESULT(no) ]
2642)
2643
2644AC_MSG_CHECKING(whether iconv supports UCS-4BE)
2645AC_RUN_IFELSE(
2646 [AC_LANG_PROGRAM([
2647#if HAVE_ICONV_H
2648#include <iconv.h>
2649#endif
2650 ], [
2651 return iconv_open("UTF-8","UCS-4BE")==(iconv_t)(-1);
2652 ])
2653 ],
2654 [ AC_MSG_RESULT(yes)
2655 AC_DEFINE(HAVE_ICONV_UCS_4BE, 1, Define to 1 if iconv supports UCS-4BE)
2656 valid_ucs4_code="UCS-4BE"
2657 ],
2658 [ AC_MSG_RESULT(no) ],
2659 [ AC_MSG_RESULT(no) ]
2660)
2661
6e17f325
VK
2662AC_MSG_CHECKING(whether iconv supports UCS-4LE)
2663AC_RUN_IFELSE(
2664 [AC_LANG_PROGRAM([
2665#if HAVE_ICONV_H
2666#include <iconv.h>
2667#endif
2668 ], [
2669 return iconv_open("UTF-8","UCS-4LE")==(iconv_t)(-1);
2670 ])
2671 ],
2672 [ AC_MSG_RESULT(yes)
2673 AC_DEFINE(HAVE_ICONV_UCS_4LE, 1, Define to 1 if iconv supports UCS-4LE)
2674 valid_ucs4_code="UCS-4LE"
2675 ],
2676 [ AC_MSG_RESULT(no) ],
2677 [ AC_MSG_RESULT(no) ]
2678)
2679
4a4e1feb
VK
2680AC_MSG_CHECKING(whether iconv supports UTF-32)
2681AC_RUN_IFELSE(
2682 [AC_LANG_PROGRAM([
2683#if HAVE_ICONV_H
2684#include <iconv.h>
2685#endif
2686 ], [
2687 return iconv_open("UTF-8","UTF-32")==(iconv_t)(-1);
2688 ])
2689 ],
2690 [ AC_MSG_RESULT(yes)
2691 AC_DEFINE(HAVE_ICONV_UTF_32, 1, Define to 1 if iconv supports UTF-32)
2692 valid_ucs4_code="UTF-32"
2693 ],
2694 [ AC_MSG_RESULT(no) ],
2695 [ AC_MSG_RESULT(no) ]
2696)
2697
93571e7f
VK
2698AC_MSG_CHECKING(whether iconv supports //IGNORE)
2699AC_RUN_IFELSE(
2700 [AC_LANG_PROGRAM([
2701#if HAVE_ICONV_H
2702#include <iconv.h>
2703#endif
2704 ], [
2705 return iconv_open("UTF-8//IGNORE","$valid_ucs2_code")==(iconv_t)(-1);
2706 ])
2707 ],
2708 [ AC_MSG_RESULT(yes)
2709 AC_DEFINE(HAVE_ICONV_IGNORE, 1, Define to 1 if iconv supports //IGNORE option)
2710 ],
2711 [ AC_MSG_RESULT(no) ],
2712 [ AC_MSG_RESULT(no) ]
2713)
3e39fcde 2714
bd96aa53
VK
2715AC_MSG_CHECKING(whether iconv supports state reset)
2716AC_RUN_IFELSE(
2717 [AC_LANG_PROGRAM([
2718#include <stdio.h>
2719#if HAVE_ICONV_H
2720#include <iconv.h>
2721#endif
2722 ], [
2723 iconv_t cd = iconv_open("UTF-8","$valid_ucs2_code");
2724 if (cd == (iconv_t)(-1)) return 1;
2725 return iconv(cd, NULL, NULL, NULL, NULL) != 0;
2726 ])
2727 ],
2728 [ AC_MSG_RESULT(yes)
2729 AC_DEFINE(HAVE_ICONV_STATE_RESET, 1, Define to 1 if iconv supports state reset)
2730 ],
2731 [ AC_MSG_RESULT(no) ],
2732 [ AC_MSG_RESULT(no) ]
2733)
2734
2735AC_MSG_CHECKING(whether iconv descriptor cache is needed)
2736case $enable_iconv_cache in
2737 auto)
2738 case $PLATFORM in
2739 SunOS|HP-UX|AIX)
2740 enable_iconv_cache=yes
2741 ;;
2742 *)
2743 enable_iconv_cache=no
2744 ;;
2745 esac
2746 ;;
2747 yes|no)
2748 ;;
2749 *)
2750 AC_MSG_ERROR([Value given to --enable-iconv-cache must be one of yes, no or auto])
2751 ;;
2752esac
2753if test "x$enable_iconv_cache" = "xyes"; then
2754 AC_DEFINE(WITH_ICONV_CACHE, 1, Define to 1 to enable iconv descriptor cache)
2755fi
2756AC_MSG_RESULT($enable_iconv_cache)
2757
19619a35
AK
2758# taken from ZSH's configure
2759# Check if iconv uses const in prototype declaration
24b1570c 2760if test "x$ac_found_iconv" = "xyes"; then
53c96e2d 2761 AC_LANG_PUSH([C++])
19619a35 2762 AC_CACHE_CHECK(for iconv declaration, ac_cv_iconv_const,
7f9423af
VK
2763 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2764#include <stdlib.h>
f6a2136d 2765#if HAVE_ICONV_H
7f9423af 2766#include <iconv.h>
f6a2136d 2767#endif
f6a2136d
VK
2768 ]],
2769 [[
3e51d371
VK
2770 char **p = NULL;
2771 iconv(0, (const char **)p, 0, 0, 0);
7f9423af 2772 ]])],
3e51d371
VK
2773 [ac_cv_iconv_const=const],
2774 [ac_cv_iconv_const=])])
53c96e2d 2775 AC_LANG_POP([C++])
19619a35
AK
2776 AC_DEFINE_UNQUOTED([ICONV_CONST], $ac_cv_iconv_const,
2777 [Define as const if the declaration of iconv() needs const.])
2778fi
2779
a67fa146
VK
2780if test "x$ac_cv_type_wchar_t" = "xyes"; then
2781 if test $ac_cv_sizeof_wchar_t -eq 2; then
2782 AC_DEFINE(UNICODE_UCS2, 1, Define to 1 if you have 2-byte wchar_t)
2783 fi
8b86c5dc 2784
a67fa146
VK
2785 if test $ac_cv_sizeof_wchar_t -eq 4; then
2786 AC_DEFINE(UNICODE_UCS4, 1, Define to 1 if you have 4-byte wchar_t)
2787 fi
2788
2789 if test "x$USE_INTERNAL_LIBTRE" = "xyes"; then
2790 AC_DEFINE(TRE_WCHAR, 1, [ Define to enable wide character support in libtre.])
2791 fi
2792else
2793 if test "x$BUILD_UNICODE" = "xyes"; then
2794 AC_MSG_ERROR(wchar_t is required for UNICODE build)
2795 fi
8b86c5dc
VK
2796fi
2797
c29360a9 2798
ef0c727b 2799#--------------------------------------------------------------------
ca0f4ea3
VK
2800# MySQL
2801#--------------------------------------------------------------------
2802
2803check_substr "$COMPONENTS" "mysql"
2804if test $? = 0; then
9f1ea006
VK
2805 OLD_CPPFLAGS="$CPPFLAGS"
2806 OLD_LDFLAGS="$LDFLAGS"
2807 OLD_LD_RUN_PATH="$LD_RUN_PATH"
2808
2809 CPPFLAGS="$CPPFLAGS $MYSQL_CPPFLAGS"
2810 LDFLAGS="$LDFLAGS $MYSQL_LDFLAGS"
2811 if test "x$MYSQL_LD_RUN_PATH" != "x"; then
2812 LD_RUN_PATH="${MYSQL_LD_RUN_PATH}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
2813 fi
2814
b93fd1c1 2815 AC_CHECK_HEADER(mysql.h,,AC_MSG_ERROR([Cannot find mysql.h - check your MySQL client installation]))
9f1ea006 2816
6fce76d8 2817 AC_CHECK_LIB(mysqlclient, mysql_init, [MYSQL_LIBS="-lmysqlclient"],
ca0f4ea3 2818 [AC_MSG_ERROR(libmysqlclient is requred for MySQL support)])
aa7794f0 2819
8d131dda
VK
2820 OLD_LIBS="$LIBS"
2821 LIBS="$LIBS $MYSQL_LIBS"
aa7794f0 2822
ca0f4ea3 2823 AC_CHECK_FUNCS(mysql_real_escape_string)
9f1ea006
VK
2824
2825 CPPFLAGS="$OLD_CPPFLAGS"
2826 LDFLAGS="$OLD_LDFLAGS"
2827 LD_RUN_PATH="$OLD_LD_RUN_PATH"
8d131dda 2828 LIBS="$OLD_LIBS"
ca0f4ea3
VK
2829fi
2830
2831
2832#--------------------------------------------------------------------
58ed4897
VK
2833# PostgreSQL
2834#--------------------------------------------------------------------
2835
203458b7 2836check_substr "$COMPONENTS" "pgsql"
58ed4897 2837if test $? = 0; then
b535eed6
VK
2838 OLD_CPPFLAGS="$CPPFLAGS"
2839 OLD_LDFLAGS="$LDFLAGS"
2840 OLD_LD_RUN_PATH="$LD_RUN_PATH"
2841
2842 CPPFLAGS="$CPPFLAGS $PGSQL_CPPFLAGS"
2843 LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS"
2844 if test "x$PGSQL_LD_RUN_PATH" != "x"; then
2845 LD_RUN_PATH="${PGSQL_LD_RUN_PATH}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
2846 fi
2847
9f1ea006
VK
2848 AC_CHECK_HEADER(libpq-fe.h,,AC_MSG_ERROR([Cannot find libpq-fe.h - check your PostgreSQL client installation]))
2849
7e19eef6
VK
2850 AC_CHECK_DECLS([PGRES_SINGLE_TUPLE],,,[
2851#include <libpq-fe.h>
2852 ])
2853
58ed4897 2854 AC_CHECK_LIB(m, floor)
b535eed6
VK
2855 AC_CHECK_LIB(pq, PQconnectdb, [PGSQL_LIBS="-lpq"], [
2856 if test "x$PLATFORM" = "xSunOS"; then
9857563b
VK
2857 if test -d "$PGSQL_LD_RUN_PATH/sparcv9"; then
2858 PGSQL_LDFLAGS="$PGSQL_LDFLAGS/sparcv9"
2859 else
2860 PGSQL_LDFLAGS="$PGSQL_LDFLAGS/64"
2861 fi
b535eed6
VK
2862 LDFLAGS="$OLD_LDFLAGS $PGSQL_LDFLAGS"
2863 if test "x$PGSQL_LD_RUN_PATH" != "x"; then
2864 PGSQL_LD_RUN_PATH="$PGSQL_LD_RUN_PATH/sparcv9"
2865 LD_RUN_PATH="${PGSQL_LD_RUN_PATH}${OLD_LD_RUN_PATH:+:}${OLD_LD_RUN_PATH}"
2866 fi
2867 unset ac_cv_lib_pq_PQconnectdb
2868 AC_CHECK_LIB(pq, PQconnectdb, [PGSQL_LIBS="-lpq"], [
2869 AC_MSG_ERROR(libpq is required for PostgreSQL support)])
2870 else
2871 AC_MSG_ERROR(libpq is required for PostgreSQL support)
2872 fi
2873 ])
6fce76d8 2874
b535eed6
VK
2875 CPPFLAGS="$OLD_CPPFLAGS"
2876 LDFLAGS="$OLD_LDFLAGS"
2877 LD_RUN_PATH="$OLD_LD_RUN_PATH"
58ed4897
VK
2878fi
2879
2880
2881#--------------------------------------------------------------------
9c29f76e
VK
2882# ODBC
2883#--------------------------------------------------------------------
2884
2885check_substr "$COMPONENTS" "odbc"
2886if test $? = 0; then
2cfe4482
VK
2887 OLD_CPPFLAGS="$CPPFLAGS"
2888 OLD_LDFLAGS="$LDFLAGS"
2889 OLD_LD_RUN_PATH="$LD_RUN_PATH"
2890
2891 CPPFLAGS="$CPPFLAGS $ODBC_CPPFLAGS"
b535eed6 2892 LDFLAGS="$LDFLAGS $ODBC_LDFLAGS"
2cfe4482
VK
2893 if test "x$ODBC_LD_RUN_PATH" != "x"; then
2894 LD_RUN_PATH="${ODBC_LD_RUN_PATH}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
2895 fi
2896
6fce76d8 2897 AC_CHECK_LIB(odbc, SQLAllocHandle, [ODBC_LIBS="-lodbc"],
9c29f76e 2898 [AC_MSG_ERROR(libodbc is required for ODBC support)])
60a1159a
VK
2899 if test "x$BUILD_STATIC_AGENT" = "xyes"; then
2900 SUBAGENT_LIBS="$SUBAGENT_LIBS $ODBC_LIBS"
2901 AC_CHECK_LIB(ltdl, lt_dlopen, [SUBAGENT_LIBS="$SUBAGENT_LIBS -lltdl"], [])
2902 fi
2cfe4482
VK
2903
2904 CPPFLAGS="$OLD_CPPFLAGS"
2905 LDFLAGS="$OLD_LDFLAGS"
2906 LD_RUN_PATH="$OLD_LD_RUN_PATH"
9c29f76e
VK
2907fi
2908
2909
2910#--------------------------------------------------------------------
41b4790d
VK
2911# Oracle
2912#--------------------------------------------------------------------
2913
2914check_substr "$COMPONENTS" "oracle"
2915if test $? = 0; then
2cfe4482
VK
2916 OLD_CPPFLAGS="$CPPFLAGS"
2917 OLD_LDFLAGS="$LDFLAGS"
2918 OLD_LD_RUN_PATH="$LD_RUN_PATH"
2919
2920 CPPFLAGS="$CPPFLAGS $ORACLE_CPPFLAGS"
b535eed6 2921 LDFLAGS="$LDFLAGS $ORACLE_LDFLAGS"
2cfe4482
VK
2922 if test "x$ORACLE_LD_RUN_PATH" != "x"; then
2923 LD_RUN_PATH="${ORACLE_LD_RUN_PATH}${LD_RUN_PATH:+:}${LD_RUN_PATH}"
2924 fi
2925
41b4790d 2926 AC_CHECK_HEADER(oci.h,,AC_MSG_ERROR([*** Cannot find oci.h - check your Oracle client installation ***]))
e5cceced 2927 AC_CHECK_LIB(nnz12, nzstrcpy, [NNZ_LIB=-lnnz12],
7d8c91ef 2928 [
e5cceced
VK
2929 AC_CHECK_LIB(nnz11, nzstrcpy, [NNZ_LIB=-lnnz11],
2930 [
2931 AC_CHECK_LIB(nnz10, nzstrcpy, [NNZ_LIB=-lnnz10], [], [-lclntsh])
2932 ], [-lclntsh])
7d8c91ef
VK
2933 ], [-lclntsh])
2934 AC_CHECK_LIB(clntsh, OCIHandleAlloc, [ORACLE_LIBS="-lclntsh $NNZ_LIB"],
2935 [AC_MSG_ERROR(libclntsh is required for Oracle support)], [$NNZ_LIB])
045845e5 2936 AC_CHECK_LIB(rt, sem_destroy, [ORACLE_LIBS="$ORACLE_LIBS -lrt"], [])
60a1159a
VK
2937 if test "x$BUILD_STATIC_AGENT" = "xyes"; then
2938 SUBAGENT_LIBS="$SUBAGENT_LIBS $ORACLE_LIBS"
2939 fi
2cfe4482
VK
2940
2941 CPPFLAGS="$OLD_CPPFLAGS"
2942 LDFLAGS="$OLD_LDFLAGS"
2943 LD_RUN_PATH="$OLD_LD_RUN_PATH"
41b4790d
VK
2944fi
2945
84277a0f
AK
2946#--------------------------------------------------------------------
2947# DB2
2948#--------------------------------------------------------------------
2949
2950check_substr "$COMPONENTS" "db2"
2951if test $? = 0; then
2952 AC_CHECK_HEADER(sql.h,,AC_MSG_ERROR([*** Cannot find sql.h - check your DB2 client installation ***]))
2953 AC_CHECK_LIB(db2, SQLAllocHandle, [DB2_LIBS="-ldb2"],
2954 [AC_MSG_ERROR(libdb2 is required for DB2 support)])
6afe141e 2955 if test "x$BUILD_STATIC_AGENT" = "xyes"; then
2956 SUBAGENT_LIBS="$SUBAGENT_LIBS $DB2_LIBS"
2957 fi
84277a0f 2958fi
41b4790d
VK
2959
2960#--------------------------------------------------------------------
37861c72
VK
2961# Informix
2962#--------------------------------------------------------------------
2963
2964check_substr "$COMPONENTS" "informix"
2965if test $? = 0; then
2966 AC_CHECK_HEADER(infxcli.h,,AC_MSG_ERROR([*** Cannot find infxcli.h - check your Informix client installation ***]))
4f2e8e9b
VK
2967 AC_CHECK_LIB(thcli, SQLAllocHandle, [INFORMIX_LIBS="-lthcli"],
2968 [AC_MSG_ERROR(libthcli is required for Informix support)])
60a1159a
VK
2969 if test "x$BUILD_STATIC_AGENT" = "xyes"; then
2970 SUBAGENT_LIBS="$SUBAGENT_LIBS $INFORMIX_LIBS"
2971 fi
37861c72
VK
2972fi
2973
c3cfc039
VK
2974
2975#--------------------------------------------------------------------
50e4bc8c
VK
2976# Java
2977#--------------------------------------------------------------------
2978
2979check_substr "$COMPONENTS" "java"
2980if test $? = 0; then
2981 AC_CHECK_HEADER(jni.h,,AC_MSG_ERROR([*** Cannot find jni.h - check your JDK installation ***]))
50e4bc8c
VK
2982fi
2983
2984
2985#--------------------------------------------------------------------
b14c3f22
VK
2986# Tuxedo
2987#--------------------------------------------------------------------
2988
2989check_substr "$COMPONENTS" "tuxedo"
2990if test $? = 0; then
2991 OLD_CPPFLAGS="$CPPFLAGS"
2992 OLD_LDFLAGS="$LDFLAGS"
2993 OLD_LIBS="$LIBS"
2994
2995 if test "x$TUXEDO_BASE" != "x"; then
2996 TUXEDO_CPPFLAGS="-I$TUXEDO_BASE/include"
2997 TUXEDO_LDFLAGS="-L$TUXEDO_BASE/lib"
2998 CPPFLAGS="$CPPFLAGS $TUXEDO_CPPFLAGS"
2999 LDFLAGS="$LDFLAGS $TUXEDO_LDFLAGS"
3000 fi
3001
3002 AC_CHECK_HEADER(atmi.h,,AC_MSG_ERROR([*** Cannot find atmi.h - check your Tuxedo installation ***]))
3003
3004 # https://community.oracle.com/thread/2346582
3005 if test "x$PLATFORM" = "xLinux"; then
3006 TUXEDO_LDFLAGS="$TUXEDO_LDFLAGS -Xlinker --no-as-needed"
3007 LDFLAGS="$LDFLAGS -Xlinker --no-as-needed"
3008 fi
6d14d0b0
VK
3009
3010 if test "$PLATFORM" = "SunOS"; then
3011 AC_CHECK_LIB(rt, nanosleep, [ TUXEDO_LIBS="$TUXEDO_LIBS -lrt" ])
3012 fi
3013
73517e51
VK
3014 if test "$PLATFORM" = "AIX"; then
3015 AC_MSG_CHECKING(for xa_switchp in libengine)
3016 OLD_LIBS_LIBENGINE="$LIBS"
3017 LIBS="$LIBS -lengine"
3018 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ extern char *xa_switchp; ]], [[ *xa_switchp = 0; ]])],
3019 [
3020 AC_MSG_RESULT(yes)
3021 TUXEDO_LIBS="$TUXEDO_LIBS -lengine"
3022 ],
3023 [ AC_MSG_RESULT(no) ])
3024 LIBS="$OLD_LIBS_LIBENGINE"
3025 fi
3026
6d14d0b0 3027 LIBS="$LIBS $TUXEDO_LIBS"
73517e51 3028 AC_CHECK_LIB(tux, tpcall, [], [AC_MSG_ERROR(libtux is required for Tuxedo support)])
b14c3f22
VK
3029
3030 CPPFLAGS="$OLD_CPPFLAGS"
3031 LDFLAGS="$OLD_LDFLAGS"
3032 LIBS="$OLD_LIBS"
73517e51
VK
3033
3034 if test "x$PLATFORM" = "xAIX"; then
3035 if test -e $TUXEDO_BASE/lib/tpinit.o; then
c7c6ce77 3036 TUXEDO_TPINIT="$TUXEDO_BASE/lib/tpinit.o"
73517e51
VK
3037 fi
3038 fi
b14c3f22
VK
3039fi
3040
123800f4 3041
d6235717 3042#--------------------------------------------------------------------
cac05a70 3043# ZeroMQ
3044#--------------------------------------------------------------------
3045
3046check_substr "$COMPONENTS" "zeromq"
3047if test $? = 0; then
3048 OLD_CPPFLAGS="$CPPFLAGS"
3049 OLD_LDFLAGS="$LDFLAGS"
3050 OLD_LIBS="$LIBS"
3051
3052 if test "x$ZEROMQ_BASE" != "x"; then
3053 ZEROMQ_CPPFLAGS="-I$ZEROMQ_BASE/include"
3054 ZEROMQ_LDFLAGS="-L$ZEROMQ_BASE/lib"
3055 CPPFLAGS="$CPPFLAGS $ZEROMQ_CPPFLAGS"
3056 LDFLAGS="$LDFLAGS $ZEROMQ_LDFLAGS"
7fcdcb0c 3057 fi
cac05a70 3058
ca026ade
VK
3059 AC_CHECK_HEADER(zmq.h,,[
3060 if test "x$ZEROMQ_REQUIRED" = "xyes"; then
3061 AC_MSG_ERROR([*** Cannot find zmq.h - check your ZeroMQ installation ***])
3062 else
3063 ZEROMQ_SUPPORT="no"
3064 fi
3065 ])
3066 AC_CHECK_LIB(zmq, zmq_ctx_new, [ SERVER_LIBS="$SERVER_LIBS -lzmq" ], [
3067 if test "x$ZEROMQ_REQUIRED" = "xyes"; then
3068 AC_MSG_ERROR([*** libzmq is missing or too old - check your ZeroMQ installation ***])
3069 else
3070 ZEROMQ_SUPPORT="no"
3071 fi
3072 ])
cac05a70 3073
ca026ade
VK
3074 if test "x$ZEROMQ_SUPPORT" = "xyes"; then
3075 AC_DEFINE(WITH_ZMQ, 1, Define to 1 if ZeroMQ is supported)
3076 fi
cac05a70 3077
3078 CPPFLAGS="$OLD_CPPFLAGS"
3079 LDFLAGS="$OLD_LDFLAGS"
3080 LIBS="$OLD_LIBS"
3081fi
3082
123800f4
VK
3083
3084#--------------------------------------------------------------------
3085# MQTT
3086#--------------------------------------------------------------------
3087
3088if test "x$MQTT_SUPPORT" = "xyes"; then
3089 OLD_CPPFLAGS="$CPPFLAGS"
3090 OLD_LDFLAGS="$LDFLAGS"
3091 OLD_LIBS="$LIBS"
3092
3093 if test "x$MQTT_BASE" != "x"; then
3094 MQTT_CPPFLAGS="-I$MQTT_BASE/include"
3095 MQTT_LDFLAGS="-L$MQTT_BASE/lib"
3096 CPPFLAGS="$CPPFLAGS $MQTT_CPPFLAGS"
3097 LDFLAGS="$LDFLAGS $MQTT_LDFLAGS"
3098 fi
3099
3100 AC_CHECK_HEADER(mosquitto.h,,[
3101 if test "x$MQTT_REQUIRED" = "xyes"; then
3102 AC_MSG_ERROR([*** Cannot find mosquitto.h - check your libmosquitto installation ***])
3103 else
3104 MQTT_SUPPORT="no"
3105 fi
3106 ])
fab0916b 3107 AC_CHECK_LIB(mosquitto, mosquitto_lib_init, [ MQTT_LIBS="-lmosquitto" ], [
123800f4
VK
3108 if test "x$MQTT_REQUIRED" = "xyes"; then
3109 AC_MSG_ERROR([*** libmosquitto is missing - check your libmosquitto installation ***])
3110 else
3111 MQTT_SUPPORT="no"
3112 fi
3113 ])
3114
3115 if test "x$MQTT_SUPPORT" = "xyes"; then
3116 AC_DEFINE(WITH_MQTT, 1, Define to 1 if MQTT is supported)
fab0916b 3117 SUBAGENT_DIRS="$SUBAGENT_DIRS mqtt"
123800f4
VK
3118 fi
3119
3120 CPPFLAGS="$OLD_CPPFLAGS"
3121 LDFLAGS="$OLD_LDFLAGS"
3122 LIBS="$OLD_LIBS"
3123fi
3124
3125
cac05a70 3126#--------------------------------------------------------------------
d6235717 3127# MongoDB
3128#--------------------------------------------------------------------
3129
3130check_substr "$COMPONENTS" "mongodb"
3131if test $? = 0; then
3132 OLD_CPPFLAGS="$CPPFLAGS"
3133 OLD_LDFLAGS="$LDFLAGS"
3134 OLD_LIBS="$LIBS"
3135
3136 if test "x$MONGODB_BASE" != "x"; then
3137 MONGODB_CPPFLAGS="-I$MONGODB_BASE/include/libmongoc-1.0/ -I$MONGODB_BASE/include/libbson-1.0/"
3138 MONGODB_LDFLAGS="-L$MONGODB_BASE/lib"
3139 CPPFLAGS="$CPPFLAGS $MONGODB_CPPFLAGS"
3140 LDFLAGS="$LDFLAGS $MONGODB_LDFLAGS"
3141 else
3142 MONGODB_CPPFLAGS="-I/usr/local/include/libmongoc-1.0/ -I/usr/local/include/libbson-1.0/"
3143 MONGODB_LDFLAGS="-L/usr/local/lib"
3144 CPPFLAGS="$CPPFLAGS $MONGODB_CPPFLAGS"
3145 LDFLAGS="$LDFLAGS $MONGODB_LDFLAGS"
b7c8729b 3146 fi
d6235717 3147
3148 AC_CHECK_HEADER(mongoc.h,,AC_MSG_ERROR([*** Cannot find mongoc.h - check your MongoDB installation ***]))
4bed256b 3149 AC_CHECK_LIB(mongoc-1.0, mongoc_client_get_database, [ MONGODB_LIBS="$MONGODB_LIBS -lmongoc-1.0" ])
d6235717 3150 AC_CHECK_LIB(bson-1.0, nanosleep, [ MONGODB_LIBS="$MONGODB_LIBS -lbson-1.0" ])
3151
3152 LIBS="$LIBS $MONGODB_LIBS"
3153
3154 CPPFLAGS="$OLD_CPPFLAGS"
3155 LDFLAGS="$OLD_LDFLAGS"
3156 LIBS="$OLD_LIBS"
3157fi
b14c3f22
VK
3158
3159#--------------------------------------------------------------------
b7c8729b 3160# VMGR
3161#--------------------------------------------------------------------
3162
3163check_substr "$COMPONENTS" "vmgr"
3164if test $? = 0; then
3165 OLD_CPPFLAGS="$CPPFLAGS"
3166 OLD_LDFLAGS="$LDFLAGS"
3167 OLD_LIBS="$LIBS"
3168
442297fa
VK
3169 if test "x$LIBVIRT_BASE" != "x"; then
3170 VMGR_CPPFLAGS="-I$LIBVIRT_BASE/include"
3171 VMGR_LDFLAGS="-L$LIBVIRT_BASE/lib"
b7c8729b 3172 CPPFLAGS="$CPPFLAGS $VMGR_CPPFLAGS"
3173 LDFLAGS="$LDFLAGS $VMGR_LDFLAGS"
3174 else
442297fa
VK
3175 VMGR_CPPFLAGS=""
3176 VMGR_LDFLAGS=""
b7c8729b 3177 CPPFLAGS="$CPPFLAGS $VMGR_CPPFLAGS"
3178 LDFLAGS="$LDFLAGS $VMGR_LDFLAGS"
3179 fi
3180
442297fa 3181 AC_CHECK_HEADER(libvirt/libvirt.h,,AC_MSG_ERROR([*** Cannot find libvirt.h - check your libvirt installation ***]))
4bed256b 3182 AC_CHECK_LIB(virt, virConnectGetLibVersion, [ VMGR_LIBS="$VMGR_LIBS -lvirt" ])
b7c8729b 3183 LIBS="$LIBS $VMGR_LIBS"
3184
07abe797
VK
3185 AC_CHECK_FUNCS([virDomainGetTime])
3186
b7c8729b 3187 CPPFLAGS="$OLD_CPPFLAGS"
3188 LDFLAGS="$OLD_LDFLAGS"
3189 LIBS="$OLD_LIBS"
3190fi
3191
3192#--------------------------------------------------------------------
ca0f4ea3
VK
3193# Other settings
3194#--------------------------------------------------------------------
3195
a5a95ac8
VK
3196if test "x$RUNTIME_PREFIX" = "x"; then
3197 if test "x${BUILD_UNICODE}" = "xyes"; then
f434ab60 3198 CPPFLAGS="$CPPFLAGS -DPREFIX=L\\\"\${prefix}\\\" -DDATADIR=L\\\"\${pkgdatadir}\\\" -DBINDIR=L\\\"\${bindir}\\\" -DLIBDIR=L\\\"\${libdir}\\\" -DPKGLIBDIR=L\\\"\${pkglibdir}\\\" -DSTATEDIR=L\\\"\${localstatedir}/lib/netxms\\\""
a5a95ac8 3199 else
f434ab60 3200 CPPFLAGS="$CPPFLAGS -DPREFIX=\\\"\${prefix}\\\" -DDATADIR=\\\"\${pkgdatadir}\\\" -DBINDIR=\\\"\${bindir}\\\" -DLIBDIR=\\\"\${libdir}\\\" -DPKGLIBDIR=\\\"\${pkglibdir}\\\" -DSTATEDIR=\\\"\${localstatedir}/lib/netxms\\\""
a5a95ac8 3201 fi
b07c50cc 3202else
a5a95ac8 3203 if test "x${BUILD_UNICODE}" = "xyes"; then
54df06e2 3204 CPPFLAGS="$CPPFLAGS -DPREFIX=L\\\"$RUNTIME_PREFIX\\\" -DDATADIR=L\\\"$RUNTIME_PREFIX/share/netxms\\\" -DBINDIR=L\\\"$RUNTIME_PREFIX/bin\\\" -DLIBDIR=L\\\"$RUNTIME_PREFIX/lib\\\" -DPKGLIBDIR=L\\\"$RUNTIME_PREFIX/lib/netxms\\\" -DSTATEDIR=L\\\"$RUNTIME_STATE_DIR/lib/netxms\\\""
a5a95ac8 3205 else
54df06e2 3206 CPPFLAGS="$CPPFLAGS -DPREFIX=\\\"$RUNTIME_PREFIX\\\" -DDATADIR=\\\"$RUNTIME_PREFIX/share/netxms\\\" -DBINDIR=\\\"$RUNTIME_PREFIX/bin\\\" -DLIBDIR=\\\"$RUNTIME_PREFIX/lib\\\" -DPKGLIBDIR=\\\"$RUNTIME_PREFIX/lib/netxms\\\" -DSTATEDIR=\\\"$RUNTIME_STATE_DIR/lib/netxms\\\""
a5a95ac8 3207 fi
1fd3eaa2 3208 LDFLAGS_SUFFIX="$LDFLAGS_SUFFIX -R $RUNTIME_PREFIX/lib"
b07c50cc 3209fi
1de39d9e 3210
c4952327 3211LDFLAGS="$LDFLAGS_PREFIX $LDFLAGS $PTHREAD_LDFLAGS $LDFLAGS_SUFFIX"
ca0f4ea3 3212
25ae8377
VK
3213if test "x${ENABLE_WERROR}" = "xyes"; then
3214 CPPFLAGS="$CPPFLAGS -Werror"
3215fi
3216
cbc4d191
VK
3217if test "x$PLATFORM" = "xDarwin"; then
3218 SHLIB_SUFFIX=".so"
3219else
3220 if test "x$shrext_cmds" != "x"; then
3221 SHLIB_SUFFIX="$shrext_cmds"
3222 else
3223 SHLIB_SUFFIX=".so"
3224 fi
2b479c92 3225fi
cbc4d191 3226AC_DEFINE_UNQUOTED([SHLIB_SUFFIX], _T("$SHLIB_SUFFIX"), [Define to platform's shared library suffix])
2b479c92 3227
8c9993b4
VK
3228if test "x$ENABLE_DEBUG" = "xno"; then
3229 CPPFLAGS="$CPPFLAGS -DNDEBUG"
3230fi
3231
f92a016a
VK
3232if test "x$WITH_JEMALLOC" = "xyes"; then
3233 LIBS="$LIBS -ljemalloc"
3234fi
3235
551ec9ca 3236AM_CONDITIONAL([USE_INTERNAL_EXPAT], [test "x$HAVE_LIBEXPAT" = "xno"])
17b35ccc 3237AM_CONDITIONAL([USE_INTERNAL_LIBTRE], [test "x$HAVE_LIBTRE" = "xno"])
f5393033 3238AM_CONDITIONAL([USE_INTERNAL_JANSSON], [test "x$HAVE_JANSSON" = "xno"])
3d2bc3ae 3239AM_CONDITIONAL([USE_INTERNAL_SQLITE], [test "x$HAVE_SQLITE" = "xno"])
f1b8f11c 3240AM_CONDITIONAL([USE_INTERNAL_ZLIB], [test "$HAVE_ZLIB" = "no"])
c1165d33
VK
3241AM_CONDITIONAL([STATIC_BUILD], [test "x$STATIC_BUILD" = "xyes"])
3242AM_CONDITIONAL([ALL_STATIC], [test "x$ALL_STATIC" = "xyes"])
9c3bf7f4 3243AM_CONDITIONAL([USE_ENCRYPTION], [test "x${WITH_ENCRYPTION}" = "xyes"])
6dde8627 3244AM_CONDITIONAL([HPUX_HPPA], [test "x$HPUX_HPPA" = "xyes"])
123800f4 3245AM_CONDITIONAL([MQTT_SUPPORT], [test "x$MQTT_SUPPORT" = "xyes"])
058bf6fc 3246AM_CONDITIONAL([XMPP_SUPPORT], [test "x$XMPP_SUPPORT" = "xyes"])
7fcdcb0c 3247AM_CONDITIONAL([ZEROMQ_SUPPORT], [test "x$ZEROMQ_SUPPORT" = "xyes"])
8b86c5dc 3248
ca0f4ea3
VK
3249
3250#--------------------------------------------------------------------
ef6a61aa
VK
3251# Get compiler version
3252#--------------------------------------------------------------------
3253
3254COMPILER_VERSION=""
597d020c 3255for opt in -qversion --version -v -V; do
ef6a61aa
VK
3256 v=`$CXX $opt 2>/dev/null | head -1`
3257 if test $? = 0; then
3258 if test "x$COMPILER_VERSION" = "x"; then
3259 COMPILER_VERSION="$v"
3260 AC_DEFINE_UNQUOTED([CPP_COMPILER_VERSION], "$COMPILER_VERSION", [C++ compiler version information])
3261 fi
3262 fi
3263done
3264
3265
3266#--------------------------------------------------------------------
8a96930f
AK
3267# Cleanup variables
3268#--------------------------------------------------------------------
3269
3270AS_IF([test "x$with_dist" = "xyes"],
3271[
c7c6ce77 3272 AGENT_DIRS=`echo $AGENT_DIRS|perl -nae 'my %seen; my @out; for (@F) {push(@out, $_) unless $seen{$_}++; }; print join(" ", @out)'`
8a96930f
AK
3273 SUBAGENT_DIRS=`echo $SUBAGENT_DIRS|perl -nae 'my %seen; my @out; for (@F) {push(@out, $_) unless $seen{$_}++; }; print join(" ", @out)'`
3274 MODULES=`echo $MODULES|perl -nae 'my %seen; my @out; for (@F) {push(@out, $_) unless $seen{$_}++; }; print join(" ", @out)'`
3275 SMSDRV_DIRS=`echo $SMSDRV_DIRS|perl -nae 'my %seen; my @out; for (@F) {push(@out, $_) unless $seen{$_}++; }; print join(" ", @out)'`
3276 HDLINK_DIRS=`echo $HDLINK_DIRS|perl -nae 'my %seen; my @out; for (@F) {push(@out, $_) unless $seen{$_}++; }; print join(" ", @out)'`
3277])
3278
0cdd78ad 3279
8a96930f 3280#--------------------------------------------------------------------
ef0c727b
VK
3281# Substitute variables
3282#--------------------------------------------------------------------
82fa7c5d 3283
ef0c727b
VK
3284AC_SUBST(DB_DRIVERS)
3285AC_SUBST(MODULES)
c7c6ce77 3286AC_SUBST(AGENT_DIRS)
ef0c727b 3287AC_SUBST(SUBAGENT_DIRS)
7dda4453 3288AC_SUBST(SERVER_INCLUDE)
7c48e2aa 3289AC_SUBST(SERVER_LIBS)
ef0c727b 3290AC_SUBST(SERVER_TOOLS)
c20f8eb7 3291AC_SUBST(SMSDRV_DIRS)
6fad8870 3292AC_SUBST(HDLINK_DIRS)
52a2232c 3293AC_SUBST(PDSDRV_DIRS)
ef0c727b
VK
3294AC_SUBST(TOP_LEVEL_MODULES)
3295AC_SUBST(CONTRIB_MODULES)
c2612d83 3296AC_SUBST(CLIENT_COMPONENTS)
ef0c727b
VK
3297AC_SUBST(STATIC_SUBAGENT_LIST)
3298AC_SUBST(SUBAGENT_LIBS)
3299AC_SUBST(BUILD_SERVER)
447350a9 3300AC_SUBST(BUILD_SDK)
2cfe4482
VK
3301AC_SUBST(MYSQL_CPPFLAGS)
3302AC_SUBST(MYSQL_LDFLAGS)
6fce76d8 3303AC_SUBST(MYSQL_LIBS)
2cfe4482
VK
3304AC_SUBST(PGSQL_CPPFLAGS)
3305AC_SUBST(PGSQL_LDFLAGS)
6fce76d8 3306AC_SUBST(PGSQL_LIBS)
2cfe4482
VK
3307AC_SUBST(ORACLE_CPPFLAGS)
3308AC_SUBST(ORACLE_LDFLAGS)
7d8c91ef 3309AC_SUBST(ORACLE_LIBS)
2cfe4482
VK
3310AC_SUBST(ODBC_CPPFLAGS)
3311AC_SUBST(ODBC_LDFLAGS)
6fce76d8 3312AC_SUBST(ODBC_LIBS)
2cfe4482
VK
3313AC_SUBST(DB2_CPPFLAGS)
3314AC_SUBST(DB2_LDFLAGS)
84277a0f 3315AC_SUBST(DB2_LIBS)
2cfe4482
VK
3316AC_SUBST(INFORMIX_CPPFLAGS)
3317AC_SUBST(INFORMIX_LDFLAGS)
87f1fff0 3318AC_SUBST(INFORMIX_LIBS)
11ce9a66 3319AC_SUBST(OBJECT_MODE)
9113e749 3320AC_SUBST(SQLFLAGS)
cbc4d191 3321AC_SUBST(SHLIB_SUFFIX)
b14c3f22
VK
3322AC_SUBST(TUXEDO_CPPFLAGS)
3323AC_SUBST(TUXEDO_LDFLAGS)
6d14d0b0 3324AC_SUBST(TUXEDO_LIBS)
c7c6ce77 3325AC_SUBST(TUXEDO_TPINIT)
d6235717 3326AC_SUBST(MONGODB_CPPFLAGS)
3327AC_SUBST(MONGODB_LDFLAGS)
3328AC_SUBST(MONGODB_LIBS)
123800f4
VK
3329AC_SUBST(MQTT_CPPFLAGS)
3330AC_SUBST(MQTT_LDFLAGS)
fab0916b 3331AC_SUBST(MQTT_LIBS)
b7c8729b 3332AC_SUBST(VMGR_CPPFLAGS)
3333AC_SUBST(VMGR_LDFLAGS)
3334AC_SUBST(VMGR_LIBS)
b5e5849b 3335AC_SUBST(INSTALL_LIBPATH)
7fcdcb0c
VK
3336AC_SUBST(ZEROMQ_CPPFLAGS)
3337AC_SUBST(ZEROMQ_LDFLAGS)
d16cf8a5 3338
ef0c727b
VK
3339#--------------------------------------------------------------------
3340# Shared libs versions
d16cf8a5
AK
3341#
3342# versioning scheme: current:revision:age
3343#
3344# current
3345# The number of the current interface exported by the library. A current
3346# value of `0', means that you are calling the interface exported by this
3347# library interface 0.
3348#
3349# revision
3350# The implementation number of the most recent interface exported by this
3351# library. In this case, a revision value of `0' means that this is the
3352# first implementation of the interface.
3353# If the next release of this library exports the same interface, but has a
3354# different implementation (perhaps some bugs have been fixed), the revision
3355# number will be higher, but current number will be the same. In that case,
3356# when given a choice, the library with the highest revision will always
3357# be used by the runtime loader.
3358#
3359# age
3360# The number of previous additional interfaces supported by this library.
3361# If age were `2', then this library can be linked into executables which
3362# were built with a release of this library that exported the current
3363# interface number, current, or any of the previous two interfaces.
3364# By definition age must be less than or equal to current. At the outset,
3365# only the first ever interface is implemented, so age can only be `0'.
ef0c727b 3366#--------------------------------------------------------------------
d16cf8a5 3367
359784de 3368NETXMS_LIBRARY_VERSION=2:0:0
c7d14846 3369AC_SUBST(NETXMS_LIBRARY_VERSION)
d16cf8a5 3370
ef0c727b
VK
3371#--------------------------------------------------------------------
3372# Generate output files
3373#--------------------------------------------------------------------
d16cf8a5
AK
3374
3375AC_CONFIG_FILES([
0c3c0c39
AK
3376 Makefile
3377 contrib/Makefile
36874eca
VK
3378 contrib/backgrounds/Makefile
3379 contrib/integration/Makefile
3380 contrib/integration/HP_EVA/Makefile
bad6cc0c 3381 contrib/integration/HP_P2000/Makefile
36874eca 3382 contrib/mibs/Makefile
19e3290a 3383 contrib/music/Makefile
0c3c0c39 3384 contrib/startup/Makefile
b3d9f3b8 3385 contrib/startup/systemd/Makefile
fa66d60c 3386 contrib/startup/debian/Makefile
daaefaaf 3387 contrib/startup/gentoo/Makefile
7483d0bf 3388 contrib/startup/hp-ux/Makefile
0c3c0c39 3389 contrib/startup/redhat/Makefile
5de3893d 3390 contrib/startup/suse/Makefile
9993edf4 3391 contrib/startup/ubuntu/Makefile
6adf3219 3392 contrib/startup/solaris/Makefile
03b96461 3393 contrib/templates/Makefile
0c3c0c39 3394 doc/Makefile
a48203d2
VK
3395 doc/internal/Makefile
3396 doc/manuals/Makefile
3397 doc/misc/Makefile
0c3c0c39
AK
3398 images/Makefile
3399 include/Makefile
3400 m4/Makefile
0c3c0c39 3401 src/Makefile
9191f6ad
VK
3402 src/agent/Makefile
3403 src/agent/core/Makefile
3404 src/agent/install/Makefile
359784de 3405 src/agent/libnxagent/Makefile
52275230 3406 src/agent/libnxappc/Makefile
a2a24e9d 3407 src/agent/libnxsd/Makefile
c7c6ce77 3408 src/agent/libnxtux/Makefile
9191f6ad 3409 src/agent/subagents/Makefile
9191f6ad 3410 src/agent/subagents/aix/Makefile
297be545 3411 src/agent/subagents/bind9/Makefile
df8b3df7 3412 src/agent/subagents/darwin/Makefile
52f5ee00
VK
3413 src/agent/subagents/db2/Makefile
3414 src/agent/subagents/dbquery/Makefile
ab1e80fd 3415 src/agent/subagents/devemu/Makefile
e58b0f75 3416 src/agent/subagents/ds18x20/Makefile
80e96a82 3417 src/agent/subagents/ecs/Makefile
ab1e80fd 3418 src/agent/subagents/filemgr/Makefile
9191f6ad 3419 src/agent/subagents/freebsd/Makefile
478ee38b 3420 src/agent/subagents/gps/Makefile
80e96a82
VK
3421 src/agent/subagents/hpux/Makefile
3422 src/agent/subagents/informix/Makefile
9191f6ad 3423 src/agent/subagents/ipso/Makefile
50e4bc8c
VK
3424 src/agent/subagents/java/Makefile
3425 src/agent/subagents/java/java/Makefile
9ea35a1c 3426 src/agent/subagents/jmx/Makefile
80e96a82 3427 src/agent/subagents/linux/Makefile
df8b3df7 3428 src/agent/subagents/lmsensors/Makefile
80e96a82 3429 src/agent/subagents/logwatch/Makefile
cfcfdd2b 3430 src/agent/subagents/minix/Makefile
fab0916b 3431 src/agent/subagents/mqtt/Makefile
405fb3ad 3432 src/agent/subagents/mysql/Makefile
80e96a82 3433 src/agent/subagents/netbsd/Makefile
df8b3df7 3434 src/agent/subagents/netsvc/Makefile
80e96a82
VK
3435 src/agent/subagents/odbcquery/Makefile
3436 src/agent/subagents/openbsd/Makefile
4d1753cd 3437 src/agent/subagents/oracle/Makefile
9191f6ad 3438 src/agent/subagents/ping/Makefile
80e96a82 3439 src/agent/subagents/portCheck/Makefile
df8b3df7 3440 src/agent/subagents/rpi/Makefile
9191f6ad 3441 src/agent/subagents/sms/Makefile
12acf3d3 3442 src/agent/subagents/ssh/Makefile
80e96a82 3443 src/agent/subagents/sunos/Makefile
b14c3f22 3444 src/agent/subagents/tuxedo/Makefile
d6235717 3445 src/agent/subagents/mongodb/Makefile
de1205d5 3446 src/agent/subagents/ubntlw/Makefile
9191f6ad 3447 src/agent/subagents/ups/Makefile
b7c8729b 3448 src/agent/subagents/vmgr/Makefile
80e96a82
VK
3449 src/agent/subagents/winnt/Makefile
3450 src/agent/subagents/winperf/Makefile
52f5ee00 3451 src/agent/subagents/wmi/Makefile
0bd64860 3452 src/agent/tools/Makefile
6ac698ed 3453 src/agent/tools/nxappget/Makefile
0bd64860 3454 src/agent/tools/nxapush/Makefile
d8637bab 3455 src/appagent/Makefile
c2612d83 3456 src/client/Makefile
551592f4 3457 src/client/install/Makefile
be03fec6 3458 src/client/libnxclient/Makefile
c94fa5c2 3459 src/client/nxalarm/Makefile
e84701c5
VK
3460 src/client/nxevent/Makefile
3461 src/client/nxpush/Makefile
11f1babb
VK
3462 src/client/nxshell/Makefile
3463 src/client/nxshell/java/Makefile
59ffa5b7 3464 src/client/nxsms/Makefile
d1834406
VK
3465 src/db/Makefile
3466 src/db/dbdrv/Makefile
87f1fff0
VK
3467 src/db/dbdrv/db2/Makefile
3468 src/db/dbdrv/informix/Makefile
d1834406
VK
3469 src/db/dbdrv/odbc/Makefile
3470 src/db/dbdrv/mssql/Makefile
3471 src/db/dbdrv/mysql/Makefile
87f1fff0 3472 src/db/dbdrv/oracle/Makefile
d1834406
VK
3473 src/db/dbdrv/pgsql/Makefile
3474 src/db/dbdrv/sqlite/Makefile
d1834406 3475 src/db/libnxdb/Makefile
9191f6ad
VK
3476 src/install/Makefile
3477 src/install/windows/Makefile
f5393033 3478 src/jansson/Makefile
9191f6ad
VK
3479 src/libexpat/Makefile
3480 src/libexpat/libexpat/Makefile
3481 src/libnetxms/Makefile
a7a4c1e9 3482 src/libnxcc/Makefile
9191f6ad
VK
3483 src/libnxlp/Makefile
3484 src/libnxmap/Makefile
0d956dd9 3485 src/libnxmb/Makefile
10d5b2b2 3486 src/libnxsl/Makefile
058bf6fc 3487 src/libstrophe/Makefile
a67fa146
VK
3488 src/libtre/Makefile
3489 src/libtre/win32/Makefile
a7a03ffd 3490 src/nxcproxy/Makefile
8dca469f 3491 src/nxlptest/Makefile
9191f6ad 3492 src/nxscript/Makefile
0c3c0c39
AK
3493 src/server/Makefile
3494 src/server/core/Makefile
644f97f5 3495 src/server/drivers/Makefile
386f88e3 3496 src/server/drivers/airespace/Makefile
0239cfea 3497 src/server/drivers/at/Makefile
644f97f5 3498 src/server/drivers/baystack/Makefile
b1bd1fb2 3499 src/server/drivers/cat2900xl/Makefile
910846cc 3500 src/server/drivers/catalyst/Makefile
fce03ab9 3501 src/server/drivers/cisco-esw/Makefile
ae8ea5a6 3502 src/server/drivers/cisco-sb/Makefile
8bdfaed8 3503 src/server/drivers/dell-pwc/Makefile
a548def4 3504 src/server/drivers/dlink/Makefile
644f97f5 3505 src/server/drivers/ers8000/Makefile
2f3df98c 3506 src/server/drivers/extreme/Makefile
d7e23292 3507 src/server/drivers/h3c/Makefile
d594d378 3508 src/server/drivers/hpsw/Makefile
fdfb8e90 3509 src/server/drivers/ignitenet/Makefile
d8b03f53 3510 src/server/drivers/juniper/Makefile
4e592faf
VK
3511 src/server/drivers/lib/Makefile
3512 src/server/drivers/lib/avaya-ers/Makefile
b1bd1fb2 3513 src/server/drivers/lib/cisco/Makefile
a73592db 3514 src/server/drivers/mikrotik/Makefile
81ecaf38 3515 src/server/drivers/netscreen/Makefile
e10e890e 3516 src/server/drivers/ntws/Makefile
c183a9f9 3517 src/server/drivers/ping3/Makefile
9b13553b 3518 src/server/drivers/procurve/Makefile
ac7e4032 3519 src/server/drivers/qtech-olt/Makefile
217e4d6a 3520 src/server/drivers/symbol-ws/Makefile
e5f4e3ac 3521 src/server/drivers/tb/Makefile
8cf94ffe 3522 src/server/drivers/ubnt/Makefile
6fad8870
VK
3523 src/server/hdlink/Makefile
3524 src/server/hdlink/jira/Makefile
2a0a6a2b 3525 src/server/hdlink/redmine/Makefile
d770a97c
VK
3526 src/server/include/Makefile
3527 src/server/libnxsrv/Makefile
3528 src/server/netxmsd/Makefile
52a2232c
VK
3529 src/server/pdsdrv/Makefile
3530 src/server/pdsdrv/rrdtool/Makefile
0c3c0c39 3531 src/server/tools/Makefile
0c3c0c39
AK
3532 src/server/tools/nxaction/Makefile
3533 src/server/tools/nxadm/Makefile
9191f6ad 3534 src/server/tools/nxap/Makefile
5b0c7d0d
VK
3535 src/server/tools/nxconfig/Makefile
3536 src/server/tools/nxconfig/res/Makefile
f90d7fc5 3537 src/server/tools/nxdbmgr/Makefile
9191f6ad 3538 src/server/tools/nxget/Makefile
ef6a61aa 3539 src/server/tools/nxminfo/Makefile
d24fdaf4 3540 src/server/tools/nxupload/Makefile
623e2f0e 3541 src/smsdrv/Makefile
f841b121 3542 src/smsdrv/anysms/Makefile
48b19283 3543 src/smsdrv/dbemu/Makefile
623e2f0e
VK
3544 src/smsdrv/dummy/Makefile
3545 src/smsdrv/generic/Makefile
3546 src/smsdrv/kannel/Makefile
d5dd00d2 3547 src/smsdrv/mymobile/Makefile
0e7ee68c 3548 src/smsdrv/nexmo/Makefile
623e2f0e
VK
3549 src/smsdrv/nxagent/Makefile
3550 src/smsdrv/portech/Makefile
3551 src/smsdrv/slack/Makefile
fce895e0 3552 src/smsdrv/smseagle/Makefile
623e2f0e
VK
3553 src/smsdrv/text2reach/Makefile
3554 src/smsdrv/websms/Makefile
c5c0f362
VK
3555 src/snmp/Makefile
3556 src/snmp/libnxsnmp/Makefile
3557 src/snmp/nxmibc/Makefile
3558 src/snmp/nxsnmpget/Makefile
3559 src/snmp/nxsnmpset/Makefile
3560 src/snmp/nxsnmpwalk/Makefile
9191f6ad 3561 src/sqlite/Makefile
f65df2b1 3562 src/tools/Makefile
f65df2b1 3563 src/tools/nxdevcfg/Makefile
56e13b13 3564 src/tools/nxencpasswd/Makefile
271e3971 3565 src/tools/nxgenguid/Makefile
1fd41bcd 3566 src/zlib/Makefile
9191f6ad 3567 sql/Makefile
33a10d92
VK
3568 tests/Makefile
3569 tests/include/Makefile
3570 tests/test-libnetxms/Makefile
a7a4c1e9 3571 tests/test-libnxcc/Makefile
66c11d49 3572 tests/test-libnxdb/Makefile
9ceab287