configure.ac 29.3 KB
Newer Older
aymeric's avatar
aymeric committed
1 2
dnl Process this file with autoconf to produce a configure script.

Simon Morlat's avatar
Simon Morlat committed
3
AC_INIT([linphone],[3.7.0],[linphone-developers@nongnu.org])
4
AC_CANONICAL_SYSTEM
5
AC_CONFIG_SRCDIR([coreapi/linphonecore.c])
aymeric's avatar
aymeric committed
6 7 8 9 10 11 12 13 14

dnl Source packaging numbers

LINPHONE_MAJOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f1)
LINPHONE_MINOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f2)
LINPHONE_MICRO_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f3)
LINPHONE_EXTRA_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f4)

dnl program extension
15 16 17 18
LINPHONE_VERSION=$LINPHONE_MAJOR_VERSION.$LINPHONE_MINOR_VERSION.${LINPHONE_MICRO_VERSION}
if test "$LINPHONE_EXTRA_VERSION" != "" ;then
	LINPHONE_VERSION=$LINPHONE_VERSION.${LINPHONE_EXTRA_VERSION}
fi
Simon Morlat's avatar
Simon Morlat committed
19

Simon Morlat's avatar
Simon Morlat committed
20
LIBLINPHONE_SO_CURRENT=6 dnl increment this number when you add/change/remove an interface
Simon Morlat's avatar
Simon Morlat committed
21 22 23 24
LIBLINPHONE_SO_REVISION=0 dnl increment this number when you change source code, without changing interfaces; set to 0 when incrementing CURRENT
LIBLINPHONE_SO_AGE=0 dnl increment this number when you add an interface, set to 0 if you remove an interface

LIBLINPHONE_SO_VERSION=$LIBLINPHONE_SO_CURRENT:$LIBLINPHONE_SO_REVISION:$LIBLINPHONE_SO_AGE
aymeric's avatar
aymeric committed
25

26
AC_SUBST(LIBLINPHONE_SO_CURRENT, $LIBLINPHONE_SO_CURRENT)
aymeric's avatar
aymeric committed
27 28 29 30 31 32
AC_SUBST(LIBLINPHONE_SO_VERSION, $LIBLINPHONE_SO_VERSION)
AC_SUBST(LINPHONE_VERSION)

AC_MSG_NOTICE([$PACKAGE_NAME-$PACKAGE_VERSION		A full featured audio/video sip phone.])
AC_MSG_NOTICE([licensed under the terms of the General Public License (GPL)])

33
AM_INIT_AUTOMAKE([1.9 tar-pax])
34
AC_SUBST([LIBTOOL_DEPS])
35
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
Yann Diorcet's avatar
Yann Diorcet committed
36
AC_SUBST([docdir], [${datadir}/doc])
37
AC_CONFIG_HEADERS(config.h)
smorlat's avatar
smorlat committed
38
AC_CONFIG_MACRO_DIR([m4])
39
dnl do not put anythingelse before AC_PROG_CC unless checking if macro still work for clang
Simon Morlat's avatar
Simon Morlat committed
40 41 42
AC_PROG_CXX(["xcrun clang++" g++])
AC_PROG_CC(["xcrun clang" gcc])

43 44
gl_LD_OUTPUT_DEF

aymeric's avatar
aymeric committed
45 46 47
AC_ISC_POSIX
AC_C_INLINE
AC_HEADER_STDC
48
AM_PROG_CC_C_O
Simon Morlat's avatar
Simon Morlat committed
49 50
AC_CHECK_PROGS(MD5SUM,[md5sum md5])
AM_CONDITIONAL(HAVE_MD5SUM,test -n $MD5SUM)
51

52 53
ios_found=no

jehan's avatar
jehan committed
54
case $target in
55
	*mingw32ce)
Yann Diorcet's avatar
Yann Diorcet committed
56 57 58
		CFLAGS="$CFLAGS -D_WIN32_WCE -DORTP_STATIC -D_WIN32_WINNT=0x0501"
		CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
		LIBS="$LIBS -lws2 -liphlpapi"
59
		mingw_found=yes
60
		mingwce_found=yes
Yann Diorcet's avatar
Yann Diorcet committed
61
	;;
62
	*mingw*)
63 64 65
		dnl Workaround for mingw, whose compiler does not check in /usr/include ...
		CPPFLAGS="$CPPFLAGS -I/usr/include"
		LDFLAGS="$LDFLAGS -L/usr/lib"
66
		CFLAGS="$CFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501 "
67
		CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
68
		LIBS="$LIBS -lws2_32"
69 70 71
		GUI_FLAGS="-mwindows"
		CONSOLE_FLAGS="-mconsole"
		mingw_found=yes
72
		AC_CHECK_TOOL(WINDRES, windres)
73
	;;
Yann Diorcet's avatar
Yann Diorcet committed
74
	armv6-apple-darwin|armv7-apple-darwin|i386-apple-darwin|armv7s-apple-darwin)
75
		CFLAGS="$CFLAGS -DTARGET_OS_IPHONE=1 "
76
		LIBS="$LIBS -framework CoreFoundation -framework AudioToolbox -framework CoreAudio -framework Foundation -framework QuartzCore -framework OpenGLES -framework UIKit -framework AVFoundation"
Yann Diorcet's avatar
Yann Diorcet committed
77 78 79 80
		ios_found=yes
	;;
	x86_64-apple-darwin*|i686-apple-darwin*)
		MSPLUGINS_CFLAGS=""
smorlat's avatar
smorlat committed
81 82
		dnl use macport installation
		ACLOCAL_MACOS_FLAGS="-I /opt/local/share/aclocal"
83
		build_macos=yes
Yann Diorcet's avatar
Yann Diorcet committed
84
	;;
jehan's avatar
jehan committed
85

86 87
esac

88
AM_CONDITIONAL(BUILD_IOS, test x$ios_found = xyes)
89

smorlat's avatar
smorlat committed
90
AC_SUBST(ACLOCAL_MACOS_FLAGS)
91 92 93
AC_SUBST(CONSOLE_FLAGS)
AC_SUBST(GUI_FLAGS)

Ghislain MARY's avatar
Ghislain MARY committed
94 95
case "$build_os" in
	*darwin*)
Ghislain MARY's avatar
Ghislain MARY committed
96 97 98 99 100 101
		HTTPS_CA_DIR=`openssl version -d | sed  "s/OPENSSLDIR: \"\(.*\)\"/\1/"`
	;;
esac

AC_SUBST(HTTPS_CA_DIR)

aymeric's avatar
aymeric committed
102
dnl localization tools
103 104
IT_PROG_INTLTOOL([0.40], [no-xml])

aymeric's avatar
aymeric committed
105
dnl Initialize libtool
106
LT_INIT([win32-dll shared disable-static])
Yann Diorcet's avatar
Yann Diorcet committed
107

108 109
dnl Enable library dependencies linking
AC_ARG_ENABLE(deplibs-link,
Yann Diorcet's avatar
Yann Diorcet committed
110 111 112 113
	[AS_HELP_STRING([--disable-deplibs-link ], [Disable library dependencies linking (might break builds)])],
	[enable_deplibs_linking="$enableval"],
	[enable_deplibs_linking="yes"]
)
114 115
AC_MSG_NOTICE([Enable library dependencies linking: $enable_interlib_deps])
if test "${enable_deplibs_linking}" == "yes"; then
Yann Diorcet's avatar
Yann Diorcet committed
116 117
	link_all_deplibs=yes
	link_all_deplibs_CXX=yes
118
else
Yann Diorcet's avatar
Yann Diorcet committed
119 120
	link_all_deplibs=no
	link_all_deplibs_CXX=no
121
fi
122

Yann Diorcet's avatar
Yann Diorcet committed
123 124 125 126 127 128 129 130 131
AC_CONFIG_COMMANDS([libtool-hacking],
	[if test "$mingw_found" = "yes" ; then
		echo "Hacking libtool to work with mingw..."
		sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
		cp -f ./libtool.tmp ./libtool
		rm -f ./libtool.tmp
	fi],
	[mingw_found=$mingw_found]
)
132

aymeric's avatar
aymeric committed
133 134
dnl Add the languages which your application supports here.
PKG_PROG_PKG_CONFIG
135
ALL_LINGUAS=$(cd po && echo *.po | sed 's/\.po//g')
strk's avatar
strk committed
136
AC_SUBST(ALL_LINGUAS)
137
AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages])
138 139

if test "$mingw_found" != "yes" ; then
140
	dnl gettext macro does not work properly under mingw. And we want to use the one provided by GTK.
141

142 143 144
	dnl AM_GNU_GETTEXT pollutes CPPFLAGS: workaround this.
	CPPFLAGS_save=$CPPFLAGS
	AM_GNU_GETTEXT([external])
Yann Diorcet's avatar
Yann Diorcet committed
145
	AC_SUBST(INTLLIBS)
146 147
	CPPFLAGS=$CPPFLAGS_save
	LIBS="$LIBS $LIBINTL"
148
else
149 150 151 152 153
	if test "$USE_NLS" = "yes" ; then
		AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
		AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
		LIBS="$LIBS -lintl"
	fi
154 155 156
fi

GETTEXT_PACKAGE=linphone
157
AC_SUBST([GETTEXT_PACKAGE])
Yann Diorcet's avatar
Yann Diorcet committed
158
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext package name])
159
dnl AC_CHECK_LIB(intl,libintl_gettext)
aymeric's avatar
aymeric committed
160 161 162

AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )

163
AC_ARG_ENABLE(x11,
164
	[AS_HELP_STRING([--disable-x11], [Disable X11 support (default=yes for MacOSX, no otherwise)])],
Yann Diorcet's avatar
Yann Diorcet committed
165 166 167 168 169
	[case "${enableval}" in
		yes)	enable_x11=true ;;
		no)	enable_x11=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
	esac],
170 171 172 173
	[case "$target_os" in
		*darwin*) enable_x11=false ;; #disable x11 on MacOS by default
		*) enable_x11=true ;;
	esac]
Yann Diorcet's avatar
Yann Diorcet committed
174
)
175

176 177
dnl conditional build of LDAP support
AC_ARG_ENABLE(ldap,
178
	[AS_HELP_STRING([--enable-ldap], [Enables LDAP support (default=no)])],
179 180 181
	[case "${enableval}" in
		yes)	enable_ldap=true ;;
		no)		enable_ldap=false ;;
182
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-ldap) ;;
183
	esac],
184
	[enable_ldap=false]
185 186 187
)

if test "$enable_ldap" = "true"; then
188 189 190 191
	PKG_CHECK_MODULES(LDAP, [openldap],[found_ldap=yes], [found_ldap=no])
	if test  "$found_ldap" = "no"; then
		AC_CHECK_LIB(ldap,ldap_initialize, [LDAP_LIBS="-lldap -llber"],
			[AC_MSG_ERROR([You need libldap for LDAP support])]
192
		)
193
		AC_CHECK_HEADERS(ldap.h, [foo=bar], [AC_MSG_ERROR( [ldap.h not found] ) ] )
194
		found_ldap=yes
195
	fi
196

197
	PKG_CHECK_MODULES(SASL, [libsasl2],[found_sasl=yes],[found_sasl=no] )
198

199 200 201 202 203
	if test "$found_sasl" = "no"; then
		AC_CHECK_LIB(sasl2, sasl_client_init , [SASL_LIBS="-lsasl2"],
			[AC_MSG_ERROR([You need SASL for LDAP support] ) ]
			)
		AC_CHECK_HEADERS(sasl/sasl.h,foo=bar, [AC_MSG_ERROR([sasl/sasl.h not found])])
204
		found_sasl=yes
205
	fi
206

207
	AC_SUBST(LDAP_CFLAGS)
208
	AC_SUBST(LDAP_LIBS)
209

210 211
	AC_SUBST(SASL_CFLAGS)
	AC_SUBST(SASL_LIBS)
212

213 214 215
	if test "$found_ldap$found_sasl" = "yesyes"; then
		AC_DEFINE(BUILD_LDAP,1,[Defined if LDAP build option enabled])
	else
216
		AC_MSG_ERROR([Cannot use LDAP due to previous errors])
217 218
	fi

219
fi
220

221
AM_CONDITIONAL(BUILD_LDAP, test x$enable_ldap != xfalse)
222

aymeric's avatar
aymeric committed
223 224
dnl conditionnal build of console interface.
AC_ARG_ENABLE(console_ui,
Yann Diorcet's avatar
Yann Diorcet committed
225 226 227 228 229 230 231 232
	[AS_HELP_STRING([--enable-console_ui=[yes/no]], [Turn on or off compilation of console interface (default=yes)])],
	[case "${enableval}" in
		yes)	console_ui=true ;;
		no)	console_ui=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-console_ui) ;;
	esac],
	[console_ui=true]
)
aymeric's avatar
aymeric committed
233

Yann Diorcet's avatar
Yann Diorcet committed
234 235
dnl conditionnal build of tools.
AC_ARG_ENABLE(tools,
Yann Diorcet's avatar
Yann Diorcet committed
236 237 238 239 240 241 242 243
	[AS_HELP_STRING([--enable-tools=[yes/no]], [Turn on or off compilation of console interface (default=yes)])],
	[case "${enableval}" in
		yes)	build_tools=true ;;
		no)	build_tools=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
	esac],
	[build_tools=check]
)
Yann Diorcet's avatar
Yann Diorcet committed
244

Yann Diorcet's avatar
Yann Diorcet committed
245 246
dnl check for installed version of libupnp
AC_ARG_ENABLE(upnp,
Yann Diorcet's avatar
Yann Diorcet committed
247 248 249 250 251 252 253 254
	[AS_HELP_STRING([--disable-upnp], [Disable uPnP support])],
	[case "${enableval}" in
		yes)	build_upnp=true ;;
		no)	build_upnp=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-upnp) ;;
	esac],
	[build_upnp=auto]
)
Yann Diorcet's avatar
Yann Diorcet committed
255 256

if test "$build_upnp" != "false" ; then
257
	PKG_CHECK_MODULES([LIBUPNP], [libupnp],
Yann Diorcet's avatar
Yann Diorcet committed
258 259 260 261 262
		[if  pkg-config --atleast-version=1.6 "libupnp < 1.7"; then
			build_upnp=true
		else
			AC_MSG_ERROR([libupnp >= 1.6 < 1.5 required.])
		fi],
Yann Diorcet's avatar
Yann Diorcet committed
263
		[if test "$build_upnp" == "true" ; then
Yann Diorcet's avatar
Yann Diorcet committed
264 265 266
			AC_MSG_ERROR([libupnp not found.])
		else
			build_upnp=false
Yann Diorcet's avatar
Yann Diorcet committed
267 268
		fi]
	)
Yann Diorcet's avatar
Yann Diorcet committed
269 270 271 272 273 274 275

fi

AM_CONDITIONAL(BUILD_UPNP, test x$build_upnp != xfalse)
if test "$build_upnp" != "false" ; then
	AC_DEFINE(BUILD_UPNP, 1, [Define if upnp enabled])
fi
Yann Diorcet's avatar
Yann Diorcet committed
276

277
dnl check zlib
278 279 280 281 282 283 284 285 286 287 288
AC_ARG_ENABLE(zlib,
	[AS_HELP_STRING([--disable-zlib], [Disable ZLib support])],
	[case "${enableval}" in
		yes)	build_zlib=true ;;
		no)	build_zlib=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-zlib) ;;
	esac],
	[build_zlib=auto]
)
if test "$build_zlib" != "false" ; then
	PKG_CHECK_MODULES(ZLIB, [zlib], [found_zlib=yes], [found_zlib=no])
289
	if test "x$found_zlib" = "xno" ; then
290 291 292 293 294 295 296 297 298 299 300 301 302 303
		AC_CHECK_LIB(z, inflate,
			[AC_CHECK_HEADER([zlib.h],
			[AC_COMPILE_IFELSE(
				[AC_LANG_PROGRAM([[
				 #include <zlib.h>
				 #if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1230)
				 // compile error
				 #endif
			]],[])],
			[found_zlib=yes])])])
		if test "x$found_zlib" = "xno" ; then
			AC_MSG_NOTICE([zlib library and headers not found])
		else
			AC_DEFINE( HAVE_ZLIB, 1, [ZLIB support] )
Guillaume BIENKOWSKI's avatar
Guillaume BIENKOWSKI committed
304
			ZLIB_LIBS='-lz'
305 306
			AC_SUBST(ZLIB_LIBS)
		fi
307
	else
308
		AC_MSG_NOTICE([ZLIB found])
309 310 311 312 313
		AC_DEFINE( HAVE_ZLIB, 1, [ZLIB support] )
	fi
fi


314 315 316 317
dnl check libxml2
PKG_CHECK_MODULES(LIBXML2, [libxml-2.0],[libxml2_found=yes],foo=bar)
if test "$libxml2_found" != "yes" ; then
	AC_MSG_ERROR([libxml2 not found. Install it and try again (the package is usually named libxml2-dev in the Linux distributions)])
Yann Diorcet's avatar
Yann Diorcet committed
318 319 320 321
fi

AM_CONDITIONAL(BUILD_TOOLS, test x$build_tools != xfalse)
if test "$build_tools" != "false" ; then
Yann Diorcet's avatar
Yann Diorcet committed
322
	build_tools=true
323
	AC_DEFINE(BUILD_TOOLS, 1, [Define if tools enabled] )
Yann Diorcet's avatar
Yann Diorcet committed
324 325
fi

aymeric's avatar
aymeric committed
326 327
dnl conditionnal build of gtk interface.
AC_ARG_ENABLE(gtk_ui,
Yann Diorcet's avatar
Yann Diorcet committed
328 329 330 331 332 333 334 335
	[AS_HELP_STRING([--enable-gtk_ui=[yes/no]], [Turn on or off compilation of gtk interface (default=yes)])],
	[case "${enableval}" in
		yes)	gtk_ui=true ;;
		no)	gtk_ui=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-gtk_ui) ;;
	esac],
	[gtk_ui=true]
)
aymeric's avatar
aymeric committed
336 337

if test "$gtk_ui" = "true" ; then
338
	PKG_CHECK_MODULES(LIBGTK, gtk+-2.0 >= 2.18.0 gthread-2.0)
jehan's avatar
jehan committed
339
	if test "$enable_x11" = "false" ; then
340
		PKG_CHECK_MODULES(LIBGTKMAC,[gtk-mac-integration >= 2.0.1])
jehan's avatar
jehan committed
341
		AC_DEFINE([HAVE_GTK_OSX],[1],[Defined when gtk osx is used])
342
	fi
aymeric's avatar
aymeric committed
343 344 345 346
else
	echo "GTK interface compilation is disabled."
fi

347
AC_ARG_ENABLE(notify,
Yann Diorcet's avatar
Yann Diorcet committed
348 349 350 351 352 353 354 355
	[AS_HELP_STRING([--enable-notify=[yes/no]], [Enable libnotify support (default=yes)])],
	[case "${enableval}" in
		yes)	notify=true ;;
		no)	notify=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-notify) ;;
	esac],
	[notify=true]
)
356 357 358 359

dnl conditionnal build of the notify library
if test "$gtk_ui" = "true" ; then
	if test "$notify" = "true"; then
360 361
		PKG_CHECK_MODULES([NOTIFY4], [libnotify >= 0.7.0 ], [found_notify4=yes], foo=bar)
		case "$found_notify4" in
Yann Diorcet's avatar
Yann Diorcet committed
362
			yes)
363 364 365
				AC_SUBST(NOTIFY4_CFLAGS)
				AC_SUBST(NOTIFY4_LIBS)
				AC_DEFINE([HAVE_NOTIFY4],[1],[NOTIFY4 support])
366
		esac
367

Yann Diorcet's avatar
Yann Diorcet committed
368 369 370 371 372 373 374
		PKG_CHECK_MODULES([NOTIFY1], [libnotify < 0.7.0], [found_notify1=yes], foo=bar)
		case "$found_notify1" in
			yes)
				AC_SUBST(NOTIFY1_CFLAGS)
				AC_SUBST(NOTIFY1_LIBS)
				AC_DEFINE([HAVE_NOTIFY1],[1],[NOTIFY1 support])
		esac
375 376 377 378
	else
		echo "Libnotify support is disabled."
	fi
fi
aymeric's avatar
aymeric committed
379

jehan's avatar
jehan committed
380 381 382 383 384 385 386 387 388
case "$target" in
        #macosx 64 bits
        x86_64-apple-darwin*)
                LIBS="$LIBS -mmacosx-version-min=10.6"
                CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.6"
                CFLAGS="$CFLAGS -mmacosx-version-min=10.6"
        ;;
esac

aymeric's avatar
aymeric committed
389 390 391 392
dnl os-specific problems not handled by existing macros.
case "$host_os" in
	*freebsd*)
		LDFLAGS="$LDFLAGS -pthread"
Yann Diorcet's avatar
Yann Diorcet committed
393
	;;
aymeric's avatar
aymeric committed
394 395 396 397 398 399
esac

case "$host_cpu" in
	*arm*)
		AC_DEFINE(__ARM__,1,[Defined if we are compiling for arm processor])
		use_arm_toolchain=yes
Yann Diorcet's avatar
Yann Diorcet committed
400
	;;
aymeric's avatar
aymeric committed
401 402
esac

403
AC_ARG_WITH(configdir,
Yann Diorcet's avatar
Yann Diorcet committed
404 405
	[AS_HELP_STRING([--with-configdir], [Set a APPDATA subdir where linphone is supposed to find its config (windows only)])],
	[ configdir=${withval}],[ configdir="Linphone" ])
aymeric's avatar
aymeric committed
406

407
AC_DEFINE_UNQUOTED(LINPHONE_CONFIG_DIR,"$configdir",[Windows appdata subdir where linphonerc can be found])
aymeric's avatar
aymeric committed
408

409
AC_ARG_ENABLE(relativeprefix,
Yann Diorcet's avatar
Yann Diorcet committed
410 411 412 413 414 415 416 417
	[AS_HELP_STRING([--enable-relativeprefix], [Build a linphone that finds its resources relatively to the directory where it is installed])],
	[case "${enableval}" in
		yes)	relativeprefix=yes ;;
		no)	relativeprefix=no ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-relativeprefix) ;;
	esac],
	[relativeprefix=guess]
)
aymeric's avatar
aymeric committed
418

419
AC_ARG_ENABLE(date,
Yann Diorcet's avatar
Yann Diorcet committed
420 421 422 423 424 425 426 427
	[AS_HELP_STRING([--enable-date], [Use build date in internal version number])],
	[case "${enableval}" in
		yes)	use_date=yes ;;
		no)	use_date=no ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-date) ;;
	esac],
	[use_date=no]
)
428 429 430 431 432

if test x$use_date =  xyes ; then
	AC_DEFINE(USE_BUILDDATE_VERSION,1,[Tell whether date_version.h must be used])
fi

aymeric's avatar
aymeric committed
433 434 435

dnl enable ipv6 support
AC_ARG_ENABLE(ipv6,
Yann Diorcet's avatar
Yann Diorcet committed
436 437 438 439 440 441 442 443
	[AS_HELP_STRING([--enable-ipv6], [Turn on ipv6 support])],
	[case "${enableval}" in
		yes)	ipv6=true;;
		no)	ipv6=false;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
	esac],
	[ipv6=true]
)
aymeric's avatar
aymeric committed
444 445 446 447 448 449
IPV6_CFLAGS=
if test x$ipv6 = xtrue ; then
	IPV6_CFLAGS=-DINET6
fi
AC_SUBST(IPV6_CFLAGS)

450
dnl enable timestamp support
451
AC_ARG_ENABLE(ntp-timestamp,
Yann Diorcet's avatar
Yann Diorcet committed
452 453 454 455 456 457 458 459
	[AS_HELP_STRING([--enable-ntp-timestamp], [Turn on NTP timestamping on received packet])],
	[case "${enableval}" in
		yes)	ntptimestamp=true;;
		no)	ntptimestamp=false;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-ntp-timestamp) ;;
	esac],
	[ntptimestamp=false]
)
460 461

AC_ARG_ENABLE(debug,
Yann Diorcet's avatar
Yann Diorcet committed
462 463 464 465 466 467 468 469
	[AS_HELP_STRING([--enable-debug=[yes/no]], [Enables the display of traces showing the execution of the library. (default=yes)])],
	[case "${enableval}" in
		yes)	debug_enabled=yes;;
		no)	debug_enabled=no;;
		*)	AC_MSG_ERROR("Bad value for --enable-debug");;
	esac],
	[debug_enabled=no]
)
470
AS_CASE([$debug_enabled],
471
		[yes],[
472 473 474
			CFLAGS="$CFLAGS -g -O0 -DDEBUG"
			CXXFLAGS="$CXXFLAGS -g -O0 -DDEBUG"
			OBJCFLAGS="$OBJCFLAGS -g -O0 -DDEBUG"
475 476 477 478 479 480 481 482 483 484 485 486 487
		],
		[no],
		[
			case "$CFLAGS" in
				*-O*)
				;;
				*)
					CFLAGS="$CFLAGS -O2 -g"
					CXXFLAGS="$CXXFLAGS -O2 -g"
					OBJCFLAGS="$OBJCFLAGS -O2 -g"
				;;
			esac
		],
488
		[AC_MSG_ERROR([Bad value ($debug_enabled) for --enable-debug. Valid values are yes or no.])])
489

aymeric's avatar
aymeric committed
490 491
dnl enable truespeech codec support
AC_ARG_ENABLE(truespeech,
Yann Diorcet's avatar
Yann Diorcet committed
492 493 494 495 496 497 498 499
	[AS_HELP_STRING([--enable-truespeech], [Turn on TrueSpeech support (x86 only)])],
	[case "${enableval}" in
		yes)	truespeech=true;;
		no)	truespeech=false;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-truespeech) ;;
	esac],
	[truespeech=false]
)
aymeric's avatar
aymeric committed
500 501 502 503 504 505 506
TRUESPEECH_CFLAGS=
if test x$truespeech = xtrue ; then
	TRUESPEECH_CFLAGS=-DTRUESPEECH
fi
AC_SUBST(TRUESPEECH_CFLAGS)
AM_CONDITIONAL([BUILD_TRUESPEECH], [test x$truespeech = xtrue])

507
AC_ARG_ENABLE(nonstandard-gsm,
Yann Diorcet's avatar
Yann Diorcet committed
508 509 510 511 512 513 514 515 516 517 518
	[AS_HELP_STRING([--enable-nonstandard-gsm], [Enable GSM codec at nonstandard rates (11025hz, 16000hz)])],
	[case "${enableval}" in
		yes)
			exotic_gsm=yes
	 		AC_DEFINE(ENABLE_NONSTANDARD_GSM,1,[Defined when using gsm at nonstandard rates])
	 	;;
		no)	exotic_gsm=no ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-nonstandard-gsm) ;;
	esac],
	[exotic_gsm=no]
)
aymeric's avatar
aymeric committed
519 520

if test "x${prefix}" = "xNONE"; then
simorl's avatar
simorl committed
521 522 523 524 525
	package_prefix=${ac_default_prefix}
else
	package_prefix=${prefix}
fi

Simon Morlat's avatar
Simon Morlat committed
526 527 528 529 530
if test "$relativeprefix" = "guess" ; then
	if test "$mingw_found" = "yes" ; then
		relativeprefix="yes"
	fi
fi
531 532 533 534

if test "$relativeprefix" = "yes" ; then
	dnl allow binaries to install everywhere
	package_prefix="."
aymeric's avatar
aymeric committed
535 536 537
fi

dnl Set PACKAGE_LOCALE_DIR in config.h.
538 539 540 541 542 543 544 545
case "$target_os" in
	*qnx*)
		DATADIRNAME=app/native/assets
	;;
	*)
		DATADIRNAME=share
	;;
esac
simorl's avatar
simorl committed
546
AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${package_prefix}/${DATADIRNAME}/locale",[Defines the place where locales can be found])
aymeric's avatar
aymeric committed
547

simorl's avatar
simorl committed
548
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${package_prefix}/${DATADIRNAME}",[Defines the place where data are found])
aymeric's avatar
aymeric committed
549 550

dnl Set PACKAGE_SOUND_DIR in config.h.
simorl's avatar
simorl committed
551
AC_DEFINE_UNQUOTED(PACKAGE_SOUND_DIR, "${package_prefix}/${DATADIRNAME}/sounds/linphone",[Defines the place where linphone sounds are found])
aymeric's avatar
aymeric committed
552 553 554 555 556 557


dnl check if we have the getifaddrs() sytem call
AC_CHECK_FUNCS(getifaddrs)

if test "$console_ui" = "true" ; then
Yann Diorcet's avatar
Yann Diorcet committed
558 559
	dnl check gnu readline
	LP_CHECK_READLINE
aymeric's avatar
aymeric committed
560
else
Yann Diorcet's avatar
Yann Diorcet committed
561
	echo "Console interface compilation is disabled."
aymeric's avatar
aymeric committed
562 563 564 565
fi

AC_WORDS_BIGENDIAN

566
AC_ARG_ENABLE([speex],
Yann Diorcet's avatar
Yann Diorcet committed
567 568 569 570
	AS_HELP_STRING([--disable-speex], [Disable speex support]),
	[],
	[enable_speex=yes]
)
571 572 573 574 575 576 577 578
if test "x$enable_speex" = "xyes"; then
	dnl normaly this should only by done by mediastreamer2/configure.ac
	dnl but to workaround bugs when cross-compiling for arm-linux,
	dnl we need to have SPEEX_LIBS defined
	dnl Furthermore it is good to repeat here all mediastreamer2 toggles
	dnl since top-level configure --help will not print them.
	PKG_CHECK_MODULES(SPEEX, speex >= 1.1.6, build_speex=yes)
fi
aymeric's avatar
aymeric committed
579 580 581

dnl conditionnal build of video support
AC_ARG_ENABLE(video,
582
	[AS_HELP_STRING([--enable-video], [Turn on video support compiling (default=yes)])],
Yann Diorcet's avatar
Yann Diorcet committed
583 584 585 586 587 588 589
	[case "${enableval}" in
		yes)	video=true ;;
		no)	video=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-video) ;;
	esac],
	[video=true]
)
590

Yann Diorcet's avatar
Yann Diorcet committed
591 592 593 594 595
AC_ARG_WITH(ffmpeg,
	[AS_HELP_STRING([--with-ffmpeg], [Sets the installation prefix of ffmpeg, needed for video support. (default=/usr)])],
	[ ffmpegdir=${withval}],
	[ ffmpegdir=/usr ]
)
aymeric's avatar
aymeric committed
596 597

if test "$video" = "true"; then
598

599
	if test "$enable_x11" = "true"; then
600
	  	AC_CHECK_HEADERS(X11/Xlib.h)
601
		if test "$build_macos" = "yes"; then
jehan's avatar
jehan committed
602 603 604 605
			X11_LIBS="-L/usr/X11/lib -lX11"
		else
			AC_CHECK_LIB(X11,XUnmapWindow, X11_LIBS="-lX11")
		fi
606
		AC_SUBST(X11_LIBS)
607
	fi
aymeric's avatar
aymeric committed
608 609 610 611
	AC_DEFINE(VIDEO_ENABLED,1,[defined if video support is available])
fi

AC_ARG_ENABLE(alsa,
Yann Diorcet's avatar
Yann Diorcet committed
612 613 614 615 616 617 618 619
	[AS_HELP_STRING([--enable-alsa], [Turn on alsa native support compiling])],
	[case "${enableval}" in
		yes)	alsa=true ;;
		no)	alsa=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-alsa) ;;
	esac],
	[alsa=true]
)
aymeric's avatar
aymeric committed
620

Simon Morlat's avatar
Simon Morlat committed
621
AC_ARG_ENABLE(zrtp,
Yann Diorcet's avatar
Yann Diorcet committed
622 623 624 625 626 627 628 629
	[AS_HELP_STRING([--enable-zrtp], [Turn on zrtp support])],
	[case "${enableval}" in
		yes)	zrtp=true ;;
		no)	zrtp=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-zrtp) ;;
	esac],
	[zrtp=false]
)
Simon Morlat's avatar
Simon Morlat committed
630

johan's avatar
johan committed
631 632 633 634 635 636 637 638 639 640
AC_ARG_ENABLE(dtls,
	[AS_HELP_STRING([--enable-dtls], [Turn on dtls support - requires polarssl > 1.4])],
	[case "${enableval}" in
		yes)	dtls=true ;;
		no)	dtls=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-dtls) ;;
	esac],
	[dtls=false]
)

aymeric's avatar
aymeric committed
641 642
dnl build console if required
AM_CONDITIONAL(BUILD_CONSOLE, test x$console_ui = xtrue)
Yann Diorcet's avatar
Yann Diorcet committed
643

aymeric's avatar
aymeric committed
644 645
dnl special things for arm-linux cross compilation toolchain
AM_CONDITIONAL(ARMBUILD, test x$use_arm_toolchain = xyes)
Yann Diorcet's avatar
Yann Diorcet committed
646

647 648
dnl compilation of gtk user interface
AM_CONDITIONAL(BUILD_GTK_UI, [test x$gtk_ui = xtrue ] )
649
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes )
Simon Morlat's avatar
Simon Morlat committed
650
AM_CONDITIONAL(BUILD_ZRTP, test x$zrtp = xtrue)
johan's avatar
johan committed
651
AM_CONDITIONAL(BUILD_DTLS, test x$dtls = xtrue)
aymeric's avatar
aymeric committed
652

653 654 655 656 657 658 659 660 661 662
dnl check getenv
AH_TEMPLATE([HAVE_GETENV])
AC_CHECK_FUNC([getenv], AC_DEFINE([HAVE_GETENV], [1], [If present, the getenv function allows fim to read environment variables.]))

dnl
AC_MSG_CHECKING([for sighandler_t])
AC_TRY_COMPILE([#include <signal.h>],[sighandler_t *f;],
has_sighandler_t=yes,has_sighandler_t=no)
AC_MSG_RESULT($has_sighandler_t)
if test "$has_sighandler_t" = "yes" ; then
Yann Diorcet's avatar
Yann Diorcet committed
663
	AC_DEFINE( HAVE_SIGHANDLER_T, 1, [Define if sighandler_t available] )
664 665
fi

666
AC_ARG_ENABLE(assistant,
Yann Diorcet's avatar
Yann Diorcet committed
667 668 669 670 671 672 673 674
	[AS_HELP_STRING([--enable-assistant], [Turn on assistant compiling])],
	[case "${enableval}" in
		yes)	build_wizard=true ;;
		no)	build_wizard=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-assistant) ;;
	esac],
	[build_wizard=check]
)
675

Sylvain Berfini's avatar
Sylvain Berfini committed
676
dnl check libsoup (needed for wizard)
677
if test "$build_wizard" != "false" ; then
678
	PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.26],[],
Yann Diorcet's avatar
Yann Diorcet committed
679
		[if test "$build_wizard" = "true" ; then
680
			AC_MSG_ERROR([Could not found libsoup, assistant cannot be compiled.])
681 682
		else
			build_wizard=false
Yann Diorcet's avatar
Yann Diorcet committed
683 684
		fi]
	)
685
fi
Yann Diorcet's avatar
Yann Diorcet committed
686
if test "$build_wizard" != "false" ; then
687
	PKG_CHECK_MODULES(LIBGTKWIZARD, [gtk+-2.0 >= 2.22.0],[],
Yann Diorcet's avatar
Yann Diorcet committed
688
		[if test "$build_wizard" = "true" ; then
689 690 691
			AC_MSG_ERROR([gtk+-2.0 < 2.22.0, assistant cannot be compiled.])
		else
			build_wizard=false
Yann Diorcet's avatar
Yann Diorcet committed
692 693
		fi]
	)
694
fi
Sylvain Berfini's avatar
Sylvain Berfini committed
695 696
AC_SUBST(LIBSOUP_CFLAGS)
AC_SUBST(LIBSOUP_LIBS)
Yann Diorcet's avatar
Yann Diorcet committed
697
AM_CONDITIONAL(BUILD_WIZARD, test x$build_wizard != xfalse)
698
if test "$build_wizard" != "false" ; then
Yann Diorcet's avatar
Yann Diorcet committed
699
	build_wizard=true
700
	 AC_DEFINE(BUILD_WIZARD, 1, [Define if wizard enabled] )
701
fi
Sylvain Berfini's avatar
Sylvain Berfini committed
702

703 704 705
AC_CHECK_HEADERS(libudev.h)
AC_CHECK_LIB(udev,udev_new)

aymeric's avatar
aymeric committed
706 707 708 709 710 711
##################################################
# Stricter build options (after external packages)
##################################################


AC_ARG_ENABLE(strict,
712
	AC_HELP_STRING([--enable-strict], [Build with stricter options @<:@yes@:>@]),
Yann Diorcet's avatar
Yann Diorcet committed
713 714
	[strictness="${enableval}"],
	[strictness=yes]
aymeric's avatar
aymeric committed
715 716
)

717 718 719
STRICT_OPTIONS="-Wall -Wuninitialized"
STRICT_OPTIONS_CC="-Wdeclaration-after-statement "
STRICT_OPTIONS_CXX=""
720

721 722
#for clang

723
case $CC in
724
	*clang*)
725
		STRICT_OPTIONS="$STRICT_OPTIONS -Qunused-arguments "
726 727 728
		#disabled due to wrong optimization false positive with small string
		#(cf. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35903)
		STRICT_OPTIONS="$STRICT_OPTIONS -Wno-array-bounds "
729 730
	;;
esac
731 732 733 734 735 736 737 738 739
# because Darwin's gcc is actually clang, we need to check it...
case "$target_os" in
	*darwin*)
	STRICT_OPTIONS="$STRICT_OPTIONS -Wno-error=unknown-warning-option -Qunused-arguments -Wno-tautological-compare -Wno-unused-function "
	#disabled due to wrong optimization false positive with small string
	#(cf. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35903)
	STRICT_OPTIONS="$STRICT_OPTIONS -Wno-array-bounds "
	;;
esac
jehan's avatar
jehan committed
740
if test "$strictness" = "yes" ; then
741
	STRICT_OPTIONS="$STRICT_OPTIONS -Werror"
aymeric's avatar
aymeric committed
742 743 744 745
	CFLAGS="$CFLAGS -fno-strict-aliasing"
fi

AC_SUBST(STRICT_OPTIONS)
746 747
AC_SUBST(STRICT_OPTIONS_CC)
AC_SUBST(STRICT_OPTIONS_CXX)
aymeric's avatar
aymeric committed
748

749 750
top_srcdir=`dirname $0`

751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783
AC_ARG_ENABLE(external-ortp,
	[AS_HELP_STRING([--enable-external-ortp], [Use external oRTP library])],
	[case "${enableval}" in
		yes)	external_ortp=true ;;
		no)	external_ortp=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-external-ortp) ;;
	esac],
	[external_ortp=false]
)

if test "$external_ortp" = 'true'; then
	PKG_CHECK_MODULES([ORTP], [ortp >= 0.23.0])
	ORTP_VERSION=`$PKG_CONFIG --modversion ortp`
else
	AC_CONFIG_SUBDIRS( oRTP )
	ORTP_CFLAGS="-I\$(top_srcdir)/oRTP/include"
	ORTP_LIBS="\$(top_builddir)/oRTP/src/libortp.la"
	if test x$ac_cv_c_bigendian = xyes ; then
		ORTP_CFLAGS="$ORTP_CFLAGS -DORTP_BIGENDIAN"
	fi
	if test x$ntptimestamp = xtrue ; then
		ORTP_CFLAGS="$ORTP_CFLAGS -DORTP_TIMESTAMP"
	fi
	ORTP_DIR=oRTP
	changequote(<<, >>)
	ORTP_VERSION=`grep -E ^[AC]+_INIT ${top_srcdir}/oRTP/configure.ac | sed -e 's:^.*_INIT(.*,\[\(.*\)\]):\1:g'`
	changequote([, ])
fi
AC_SUBST(ORTP_CFLAGS)
AC_SUBST(ORTP_LIBS)
AC_SUBST([ORTP_VERSION])
AC_SUBST([ORTP_DIR])

784
AC_ARG_ENABLE([external-mediastreamer],
Yann Diorcet's avatar
Yann Diorcet committed
785 786 787
	[AS_HELP_STRING([--enable-external-mediastreamer],[Use external mediastreamer library])],,
	[enable_external_mediastreamer=no]
)
788 789

AS_CASE($enable_external_mediastreamer,
Yann Diorcet's avatar
Yann Diorcet committed
790
	[yes],
791
	[PKG_CHECK_MODULES([MEDIASTREAMER], [mediastreamer >= 2.10.0])
Yann Diorcet's avatar
Yann Diorcet committed
792 793 794 795 796 797
	MS2_VERSION=`$PKG_CONFIG --modversion mediastreamer`],
	[no],
	[AC_CONFIG_SUBDIRS( mediastreamer2 )
	MEDIASTREAMER_DIR=${top_srcdir}/mediastreamer2
	MEDIASTREAMER_CFLAGS="-I\$(top_srcdir)/mediastreamer2/include"
	MEDIASTREAMER_LIBS="\$(top_builddir)/mediastreamer2/src/libmediastreamer_base.la \$(top_builddir)/mediastreamer2/src/libmediastreamer_voip.la"
798
dnl need to temporary change quotes to allow square brackets
Yann Diorcet's avatar
Yann Diorcet committed
799 800 801 802 803 804
	changequote(<<, >>)
	MS2_VERSION=`grep -e '^.C_INIT(' $MEDIASTREAMER_DIR/configure.ac | sed -e 's:\([^(]\+\)(\[mediastreamer\],\[\(.*\)\]):\2:g'`
	changequote([, ])
	MS2_DIR=mediastreamer2],
	[AC_MSG_ERROR([bad value '${enable_external_mediastreamer}' for --enable-external-mediastreamer])]
)
805 806 807 808

AC_SUBST(MEDIASTREAMER_CFLAGS)
AC_SUBST(MEDIASTREAMER_LIBS)
AC_SUBST([MS2_VERSION])
809
AC_SUBST([MS2_DIR])
aymeric's avatar
aymeric committed
810

Guillaume Beraudo's avatar
Guillaume Beraudo committed
811 812

AC_ARG_ENABLE(tunnel,
Yann Diorcet's avatar
Yann Diorcet committed
813 814 815 816 817 818 819 820
	[AS_HELP_STRING([--enable-tunnel=[yes/no]], [Turn on compilation of tunnel support (default=no)])],
	[case "${enableval}" in
		yes)	enable_tunnel=true ;;
		no)	enable_tunnel=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-tunnel) ;;
	esac],
	[enable_tunnel=false]
)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
821 822
AM_CONDITIONAL(BUILD_TUNNEL, test x$enable_tunnel = xtrue)
if test x$enable_tunnel = xtrue; then
Yann Diorcet's avatar
Yann Diorcet committed
823
	PKG_CHECK_MODULES(TUNNEL, tunnel >= 0.3.3)
824
	AC_DEFINE(TUNNEL_ENABLED,1,[Tells tunnel extension is built-in])
Guillaume Beraudo's avatar
Guillaume Beraudo committed
825 826
fi

Margaux Clerc's avatar
Margaux Clerc committed
827
AC_ARG_ENABLE(msg-storage,
Simon Morlat's avatar
Simon Morlat committed
828
	[AS_HELP_STRING([--enable-msg-storage=[yes/no]], [Turn on compilation of message storage (default=auto)])],
Margaux Clerc's avatar
Margaux Clerc committed
829 830 831 832 833
	[case "${enableval}" in
		yes)	enable_msg_storage=true ;;
		no)	enable_msg_storage=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-msg-storage) ;;
	esac],
Simon Morlat's avatar
Simon Morlat committed
834
	[enable_msg_storage=auto]
Margaux Clerc's avatar
Margaux Clerc committed
835
)
Simon Morlat's avatar
Simon Morlat committed
836 837

if test x$enable_msg_storage != xfalse; then
838 839 840
	PKG_CHECK_MODULES(SQLITE3,[sqlite3 >= 3.6.0],[found_sqlite=yes],[found_sqlite=no])
	if test "$found_sqlite" = "no"; then
		dnl Check the lib presence in case the PKG-CONFIG version is not found
841
		AC_CHECK_LIB(sqlite3, sqlite3_open, [SQLITE3_LIBS+=" -lsqlite3 "; found_sqlite=yes], [foo=bar])
842 843
	fi
	if test "$found_sqlite" = "yes"; then
Simon Morlat's avatar
Simon Morlat committed
844
		SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED"
845
		enable_msg_storage=true
846 847 848
	else
		if test x$enable_msg_storage = xtrue; then
			AC_MSG_ERROR([sqlite3, required for message storage, not found])
Simon Morlat's avatar
Simon Morlat committed
849
		fi
850
		enable_msg_storage=false
851
	fi
852

853 854
	AC_SUBST(SQLITE3_CFLAGS)
	AC_SUBST(SQLITE3_LIBS)
Margaux Clerc's avatar
Margaux Clerc committed
855
fi
Guillaume Beraudo's avatar
Guillaume Beraudo committed
856

857
AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue)
858

859
PKG_CHECK_MODULES(BELLESIP, [belle-sip >= 1.3.1])
Guillaume Beraudo's avatar
Guillaume Beraudo committed
860

861 862
SIPSTACK_CFLAGS="$BELLESIP_CFLAGS"
SIPSTACK_LIBS="$BELLESIP_LIBS"
Guillaume Beraudo's avatar
Guillaume Beraudo committed
863 864


jehan's avatar
jehan committed
865 866
AC_SUBST(SIPSTACK_CFLAGS)
AC_SUBST(SIPSTACK_LIBS)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
867

aymeric's avatar
aymeric committed
868
dnl check for db2html (docbook) to generate html user manual
Yann Diorcet's avatar
Yann Diorcet committed
869
AC_CHECK_PROG(have_sgmltools, sgmltools, yes, no)
aymeric's avatar
aymeric committed
870 871 872
AM_CONDITIONAL(ENABLE_MANUAL, test x$have_sgmltools$build_manual = xyesyes )

dnl for external use of linphone libs
873
LINPHONE_CFLAGS="-I${includedir} -I${includedir}/linphone"
874
LINPHONE_LIBS="-L${libdir} -llinphone"
simorl's avatar
simorl committed
875

aymeric's avatar
aymeric committed
876 877 878
AC_SUBST(LINPHONE_CFLAGS)
AC_SUBST(LINPHONE_LIBS)

Yann Diorcet's avatar
Yann Diorcet committed
879
AC_DEFINE_UNQUOTED(LINPHONE_VERSION, "$PACKAGE_VERSION", [Linphone\'s version number])
aymeric's avatar
aymeric committed
880

simorl's avatar
simorl committed
881 882
AC_DEFINE_UNQUOTED(LINPHONE_PLUGINS_DIR, "${package_prefix}/lib/liblinphone/plugins" ,[path of liblinphone plugins, not mediastreamer2 plugins])
LINPHONE_PLUGINS_DIR="${package_prefix}/lib/liblinphone/plugins"
smorlat's avatar
smorlat committed
883
AC_SUBST(LINPHONE_PLUGINS_DIR)
aymeric's avatar
aymeric committed
884 885 886



jehan's avatar
jehan committed
887 888 889 890 891 892 893 894 895 896 897
AC_ARG_ENABLE(tutorials,
	[AS_HELP_STRING([--disable-tutorials], [Disable compilation of tutorials])],
	[case "${enableval}" in
		yes)	tutorials_enabled=true ;;
		no)	tutorials_enabled=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-tutorials) ;;
	esac],
	[tutorials_enabled=yes]
)
AM_CONDITIONAL(ENABLE_TUTORIALS, test x$tutorials_enabled = xyes)

Ghislain MARY's avatar
Ghislain MARY committed
898
AC_ARG_ENABLE(tests,
Yann Diorcet's avatar
Yann Diorcet committed
899 900 901 902 903 904
	[AS_HELP_STRING([--disable-tests], [Disable compilation of tests])],
	[case "${enableval}" in
		yes)	tests_enabled=true ;;
		no)	tests_enabled=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
	esac],
Simon Morlat's avatar
Simon Morlat committed
905
	[tests_enabled=yes]
Yann Diorcet's avatar
Yann Diorcet committed
906
)
907
AM_CONDITIONAL(ENABLE_TESTS, test x$tests_enabled = xyes)
jehan's avatar
jehan committed
908 909 910 911

PKG_CHECK_MODULES(CUNIT, cunit, [found_cunit=yes],[found_cunit=no])

if test "$found_cunit" = "no" ; then
jehan's avatar
jehan committed
912 913 914 915 916 917 918 919
        AC_CHECK_HEADERS(CUnit/CUnit.h,
                [
                        AC_CHECK_LIB(cunit,CU_add_suite,[
                                found_cunit=yes
                                CUNIT_LIBS+=" -lcunit"
                        ])

                ])
jehan's avatar
jehan committed
920 921 922 923 924 925 926 927
fi

case "$target_os" in
	*darwin*)
		#hack for macport
		CUNIT_LIBS+=" -lncurses"
	;;
esac
Simon Morlat's avatar
Simon Morlat committed
928
AM_CONDITIONAL([BUILD_CUNIT_TESTS], [test x$found_cunit = xyes && test x$tests_enabled != xfalse])
jehan's avatar
jehan committed
929 930 931
if test "$found_cunit" = "no" ; then
        AC_MSG_WARN([Could not find cunit framework, tests are not compiled.])
else
932 933 934 935
		AC_CHECK_LIB(cunit,CU_get_suite,[
										AC_DEFINE(HAVE_CU_GET_SUITE,1,[defined when CU_get_suite is available])
										],[foo=bar],[$CUNIT_LIBS])

jehan's avatar
jehan committed
936 937 938 939
        AC_CHECK_LIB(cunit,CU_curses_run_tests,[
                                        AC_DEFINE(HAVE_CU_CURSES,1,[defined when CU_curses_run_tests is available])
                                        ],[foo=bar],[$CUNIT_LIBS])
fi
Guillaume Beraudo's avatar
Guillaume Beraudo committed
940

941 942 943 944 945 946
case "$target_os" in
	*linux*)
		# Eliminate -lstdc++ addition to postdeps for cross compiles.
		postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'`
	;;
esac
Guillaume Beraudo's avatar
Guillaume Beraudo committed
947

948

949 950 951 952
dnl ##################################################
dnl # Check for doxygen
dnl ##################################################

953
AC_CHECK_PROG(DOXYGEN,doxygen,doxygen,false)
Simon Morlat's avatar
Simon Morlat committed
954
AM_CONDITIONAL(HAVE_DOXYGEN, test "$DOXYGEN" != "false")
955

956

957
AC_CONFIG_FILES([
Yann Diorcet's avatar
Yann Diorcet committed
958 959 960 961 962 963 964
	Makefile
	build/Makefile
	build/macos/Makefile
	build/macos/Info-linphone.plist
	m4/Makefile
	po/Makefile.in
	pixmaps/Makefile
jehan's avatar
jehan committed
965
	include/Makefile
Yann Diorcet's avatar
Yann Diorcet committed
966 967 968
	coreapi/Makefile
	coreapi/help/Makefile
	coreapi/help/Doxyfile
969
	tester/Makefile
Yann Diorcet's avatar
Yann Diorcet committed
970 971 972 973 974 975 976 977 978 979 980
	gtk/Makefile
	console/Makefile
	share/Makefile
	share/C/Makefile
	share/fr/Makefile
	share/it/Makefile
	share/ja/Makefile
	share/cs/Makefile
	share/xml/Makefile
	share/linphone.pc
	share/linphone.desktop
981
	share/audio-assistant.desktop
Yann Diorcet's avatar
Yann Diorcet committed
982 983 984 985
	scripts/Makefile
	tools/Makefile
	linphone.spec
	linphone.iss
aymeric's avatar
aymeric committed
986 987
])

988 989
AC_OUTPUT

aymeric's avatar
aymeric committed
990
echo "Linphone build configuration ended."
991
echo "Summary of build options:"
Yann Diorcet's avatar
Yann Diorcet committed
992 993 994 995 996
printf "* %-30s %s\n" "Video support"		$video
printf "* %-30s %s\n" "GTK interface"		$gtk_ui
printf "* %-30s %s\n" "Account assistant"	$build_wizard
printf "* %-30s %s\n" "Console interface"	$console_ui
printf "* %-30s %s\n" "Tools"			$build_tools
Margaux Clerc's avatar
Margaux Clerc committed
997
printf "* %-30s %s\n" "Message storage"		$enable_msg_storage
998
printf "* %-30s %s\n" "zRTP encryption"		$zrtp
johan's avatar
johan committed
999
printf "* %-30s %s\n" "DTLS encryption"		$dtls
1000
printf "* %-30s %s\n" "uPnP support" 		$build_upnp
1001
printf "* %-30s %s\n" "LDAP support" 		$enable_ldap
1002
printf "* %-30s %s\n" "ZLIB support" 		$found_zlib
1003 1004

if test "$enable_tunnel" = "true" ; then
1005
	printf "* %-30s %s\n" "Tunnel support" "true"
jehan's avatar
jehan committed
1006
fi
aymeric's avatar
aymeric committed
1007

1008

aymeric's avatar
aymeric committed
1009
echo "Now type 'make' to compile, and then 'make install' as root to install it."