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

3
AC_INIT([linphone],[3.10.2],[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=9 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)])

Gautier Pelloux-Prayer's avatar
Gautier Pelloux-Prayer committed
33
AM_INIT_AUTOMAKE([1.9 tar-pax subdir-objects])
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
AC_PROG_CXX(["xcrun clang++" g++])
AC_PROG_CC(["xcrun clang" gcc])
42
AC_PROG_OBJC(["xcrun clang" gcc])
Simon Morlat's avatar
Simon Morlat committed
43

44 45
gl_LD_OUTPUT_DEF

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

53 54
ios_found=no

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

87 88
esac

89
AM_CONDITIONAL(BUILD_IOS, test x$ios_found = xyes)
jehan's avatar
jehan committed
90

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

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

AC_SUBST(HTTPS_CA_DIR)

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

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

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

Yann Diorcet's avatar
Yann Diorcet committed
124 125 126 127 128 129 130 131 132
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]
)
133

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

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

143 144 145
	dnl AM_GNU_GETTEXT pollutes CPPFLAGS: workaround this.
	CPPFLAGS_save=$CPPFLAGS
	AM_GNU_GETTEXT([external])
Yann Diorcet's avatar
Yann Diorcet committed
146
	AC_SUBST(INTLLIBS)
147 148
	CPPFLAGS=$CPPFLAGS_save
	LIBS="$LIBS $LIBINTL"
149
else
150
	if test "$USE_NLS" = "yes" ; then
151
		AC_DEFINE(HAVE_INTL,1,[Tells wheter localisation is possible])
152 153
		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 163 164 165
PKG_CHECK_MODULES(BCTOOLBOX, bctoolbox, [found_bctoolbox=yes],[found_bctoolbox=no])
if test "x$found_bctoolbox" != "xyes" ; then
	AC_MSG_ERROR(["Could not find bctoolbox (required dependency)"])
fi

aymeric's avatar
aymeric committed
166 167
AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )

168
AC_ARG_ENABLE(x11,
169
	[AS_HELP_STRING([--disable-x11], [Disable X11 support (default=yes for MacOSX, no otherwise)])],
Yann Diorcet's avatar
Yann Diorcet committed
170 171 172 173 174
	[case "${enableval}" in
		yes)	enable_x11=true ;;
		no)	enable_x11=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
	esac],
175 176 177 178
	[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
179
)
180

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

if test "$enable_ldap" = "true"; then
193 194 195 196
	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])]
197
		)
198
		AC_CHECK_HEADERS(ldap.h, [foo=bar], [AC_MSG_ERROR( [ldap.h not found] ) ] )
199
		found_ldap=yes
200
	fi
201

202
	PKG_CHECK_MODULES(SASL, [libsasl2],[found_sasl=yes],[found_sasl=no] )
203

204 205 206 207 208
	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])])
209
		found_sasl=yes
210
	fi
211

212
	AC_SUBST(LDAP_CFLAGS)
213
	AC_SUBST(LDAP_LIBS)
214

215 216
	AC_SUBST(SASL_CFLAGS)
	AC_SUBST(SASL_LIBS)
217

218 219 220
	if test "$found_ldap$found_sasl" = "yesyes"; then
		AC_DEFINE(BUILD_LDAP,1,[Defined if LDAP build option enabled])
	else
221
		AC_MSG_ERROR([Cannot use LDAP due to previous errors])
222 223
	fi

224
fi
225

226
AM_CONDITIONAL(BUILD_LDAP, test x$enable_ldap != xfalse)
227

aymeric's avatar
aymeric committed
228 229
dnl conditionnal build of console interface.
AC_ARG_ENABLE(console_ui,
Yann Diorcet's avatar
Yann Diorcet committed
230 231 232 233 234 235 236 237
	[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
238

Yann Diorcet's avatar
Yann Diorcet committed
239 240
dnl conditionnal build of tools.
AC_ARG_ENABLE(tools,
Yann Diorcet's avatar
Yann Diorcet committed
241 242 243 244 245 246 247 248
	[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
249

Yann Diorcet's avatar
Yann Diorcet committed
250 251
dnl check for installed version of libupnp
AC_ARG_ENABLE(upnp,
Yann Diorcet's avatar
Yann Diorcet committed
252 253 254 255 256 257 258 259
	[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
260 261

if test "$build_upnp" != "false" ; then
262
	PKG_CHECK_MODULES([LIBUPNP], [libupnp],
Yann Diorcet's avatar
Yann Diorcet committed
263 264 265 266 267
		[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
268
		[if test "$build_upnp" == "true" ; then
Yann Diorcet's avatar
Yann Diorcet committed
269 270 271
			AC_MSG_ERROR([libupnp not found.])
		else
			build_upnp=false
Yann Diorcet's avatar
Yann Diorcet committed
272 273
		fi]
	)
Yann Diorcet's avatar
Yann Diorcet committed
274 275 276 277 278 279 280

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
281

282
dnl check zlib
283 284 285 286 287 288 289 290 291 292 293
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])
294
	if test "x$found_zlib" = "xno" ; then
295 296 297 298 299 300 301 302 303 304 305 306 307 308
		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
309
			ZLIB_LIBS='-lz'
310 311
			AC_SUBST(ZLIB_LIBS)
		fi
312
	else
313
		AC_MSG_NOTICE([ZLIB found])
314 315 316 317 318
		AC_DEFINE( HAVE_ZLIB, 1, [ZLIB support] )
	fi
fi


Ghislain MARY's avatar
Ghislain MARY committed
319 320 321 322
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
323 324 325 326
fi

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

aymeric's avatar
aymeric committed
331 332
dnl conditionnal build of gtk interface.
AC_ARG_ENABLE(gtk_ui,
Yann Diorcet's avatar
Yann Diorcet committed
333 334 335 336 337 338 339 340
	[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
341 342

if test "$gtk_ui" = "true" ; then
343
	PKG_CHECK_MODULES(LIBGTK, gtk+-2.0 >= 2.18.0 gthread-2.0)
jehan's avatar
jehan committed
344
	if test "$enable_x11" = "false" ; then
345 346 347 348 349 350 351 352
		PKG_CHECK_MODULES(LIBGTKMAC,[gtk-mac-integration >= 2.0.1], [found_gtkmac=true], [found_gtkmac=false])
		if test "$found_gtkmac" != "true" ; then
			dnl for newest macports, the name changed.
			PKG_CHECK_MODULES(LIBGTKMAC,[gtk-mac-integration-gtk2 >= 2.0.1], [found_gtkmac=true], [found_gtkmac=false])
		fi
		if test "$found_gtkmac" != "true" ; then
			AC_MSG_ERROR([gtk-mac-integration not found. Please install gtk-osx-application package.])
		fi
jehan's avatar
jehan committed
353
		AC_DEFINE([HAVE_GTK_OSX],[1],[Defined when gtk osx is used])
354
	fi
355 356

	PKG_CHECK_MODULES(LIBGLIB, [glib-2.0 >= 2.26.0], [build_status_notifier=yes], [build_status_notifier=no])
aymeric's avatar
aymeric committed
357 358 359 360
else
	echo "GTK interface compilation is disabled."
fi

361 362
AM_CONDITIONAL([BUILD_STATUS_NOTIFIER], [test "$build_status_notifier" = "yes"])

363
AC_ARG_ENABLE(notify,
Yann Diorcet's avatar
Yann Diorcet committed
364 365 366 367 368 369 370 371
	[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]
)
372 373 374 375

dnl conditionnal build of the notify library
if test "$gtk_ui" = "true" ; then
	if test "$notify" = "true"; then
376 377
		PKG_CHECK_MODULES([NOTIFY4], [libnotify >= 0.7.0 ], [found_notify4=yes], foo=bar)
		case "$found_notify4" in
Yann Diorcet's avatar
Yann Diorcet committed
378
			yes)
379 380 381
				AC_SUBST(NOTIFY4_CFLAGS)
				AC_SUBST(NOTIFY4_LIBS)
				AC_DEFINE([HAVE_NOTIFY4],[1],[NOTIFY4 support])
382
		esac
383

Yann Diorcet's avatar
Yann Diorcet committed
384 385 386 387 388 389 390
		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
391 392 393 394
	else
		echo "Libnotify support is disabled."
	fi
fi
aymeric's avatar
aymeric committed
395 396 397 398 399

dnl os-specific problems not handled by existing macros.
case "$host_os" in
	*freebsd*)
		LDFLAGS="$LDFLAGS -pthread"
Yann Diorcet's avatar
Yann Diorcet committed
400
	;;
aymeric's avatar
aymeric committed
401 402 403 404 405 406
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
407
	;;
aymeric's avatar
aymeric committed
408 409
esac

410
AC_ARG_WITH(configdir,
Yann Diorcet's avatar
Yann Diorcet committed
411 412
	[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
413

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

416
AC_ARG_ENABLE(relativeprefix,
Yann Diorcet's avatar
Yann Diorcet committed
417 418 419 420 421 422 423 424
	[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
425

426
AC_ARG_ENABLE(date,
Yann Diorcet's avatar
Yann Diorcet committed
427 428 429 430 431 432 433 434
	[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]
)
435 436 437 438 439

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
440 441 442

dnl enable ipv6 support
AC_ARG_ENABLE(ipv6,
Yann Diorcet's avatar
Yann Diorcet committed
443 444 445 446 447 448 449 450
	[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
451 452 453 454 455 456
IPV6_CFLAGS=
if test x$ipv6 = xtrue ; then
	IPV6_CFLAGS=-DINET6
fi
AC_SUBST(IPV6_CFLAGS)

457
dnl enable timestamp support
458
AC_ARG_ENABLE(ntp-timestamp,
Yann Diorcet's avatar
Yann Diorcet committed
459 460 461 462 463 464 465 466
	[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]
)
467 468

AC_ARG_ENABLE(debug,
Yann Diorcet's avatar
Yann Diorcet committed
469 470 471 472 473 474 475 476
	[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]
)
477
AS_CASE([$debug_enabled],
478
		[yes],[
479 480 481
			CFLAGS="$CFLAGS -g -O0 -DDEBUG"
			CXXFLAGS="$CXXFLAGS -g -O0 -DDEBUG"
			OBJCFLAGS="$OBJCFLAGS -g -O0 -DDEBUG"
482 483 484 485 486 487 488 489 490 491 492 493 494
		],
		[no],
		[
			case "$CFLAGS" in
				*-O*)
				;;
				*)
					CFLAGS="$CFLAGS -O2 -g"
					CXXFLAGS="$CXXFLAGS -O2 -g"
					OBJCFLAGS="$OBJCFLAGS -O2 -g"
				;;
			esac
		],
495
		[AC_MSG_ERROR([Bad value ($debug_enabled) for --enable-debug. Valid values are yes or no.])])
496

aymeric's avatar
aymeric committed
497 498
dnl enable truespeech codec support
AC_ARG_ENABLE(truespeech,
Yann Diorcet's avatar
Yann Diorcet committed
499 500 501 502 503 504 505 506
	[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
507 508 509 510 511 512 513
TRUESPEECH_CFLAGS=
if test x$truespeech = xtrue ; then
	TRUESPEECH_CFLAGS=-DTRUESPEECH
fi
AC_SUBST(TRUESPEECH_CFLAGS)
AM_CONDITIONAL([BUILD_TRUESPEECH], [test x$truespeech = xtrue])

514
AC_ARG_ENABLE(nonstandard-gsm,
Yann Diorcet's avatar
Yann Diorcet committed
515 516 517 518 519 520 521 522 523 524 525
	[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
526 527

if test "x${prefix}" = "xNONE"; then
simorl's avatar
simorl committed
528 529 530 531 532
	package_prefix=${ac_default_prefix}
else
	package_prefix=${prefix}
fi

Simon Morlat's avatar
Simon Morlat committed
533 534 535 536 537
if test "$relativeprefix" = "guess" ; then
	if test "$mingw_found" = "yes" ; then
		relativeprefix="yes"
	fi
fi
538 539 540 541

if test "$relativeprefix" = "yes" ; then
	dnl allow binaries to install everywhere
	package_prefix="."
aymeric's avatar
aymeric committed
542 543 544
fi

dnl Set PACKAGE_LOCALE_DIR in config.h.
545 546 547 548 549 550 551 552
case "$target_os" in
	*qnx*)
		DATADIRNAME=app/native/assets
	;;
	*)
		DATADIRNAME=share
	;;
esac
simorl's avatar
simorl committed
553
AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${package_prefix}/${DATADIRNAME}/locale",[Defines the place where locales can be found])
aymeric's avatar
aymeric committed
554

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

dnl Set PACKAGE_SOUND_DIR in config.h.
simorl's avatar
simorl committed
558
AC_DEFINE_UNQUOTED(PACKAGE_SOUND_DIR, "${package_prefix}/${DATADIRNAME}/sounds/linphone",[Defines the place where linphone sounds are found])
aymeric's avatar
aymeric committed
559 560 561 562 563 564


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
565 566
	dnl check gnu readline
	LP_CHECK_READLINE
aymeric's avatar
aymeric committed
567
else
Yann Diorcet's avatar
Yann Diorcet committed
568
	echo "Console interface compilation is disabled."
aymeric's avatar
aymeric committed
569 570 571 572
fi

AC_WORDS_BIGENDIAN

573
AC_ARG_ENABLE([speex],
Yann Diorcet's avatar
Yann Diorcet committed
574 575 576 577
	AS_HELP_STRING([--disable-speex], [Disable speex support]),
	[],
	[enable_speex=yes]
)
578 579 580 581 582 583 584 585
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
586 587 588

dnl conditionnal build of video support
AC_ARG_ENABLE(video,
589
	[AS_HELP_STRING([--enable-video], [Turn on video support compiling (default=yes)])],
Yann Diorcet's avatar
Yann Diorcet committed
590 591 592 593 594 595 596
	[case "${enableval}" in
		yes)	video=true ;;
		no)	video=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-video) ;;
	esac],
	[video=true]
)
597

Yann Diorcet's avatar
Yann Diorcet committed
598 599 600 601 602
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
603

604 605
AM_CONDITIONAL([BUILD_MACOS], [test "x$build_macos" = "xyes"])

aymeric's avatar
aymeric committed
606
if test "$video" = "true"; then
607

608
	if test "$enable_x11" = "true"; then
609
	  	AC_CHECK_HEADERS(X11/Xlib.h)
610
		if test "$build_macos" = "yes"; then
jehan's avatar
jehan committed
611 612 613 614
			X11_LIBS="-L/usr/X11/lib -lX11"
		else
			AC_CHECK_LIB(X11,XUnmapWindow, X11_LIBS="-lX11")
		fi
615
		AC_SUBST(X11_LIBS)
616
	fi
aymeric's avatar
aymeric committed
617 618 619 620
	AC_DEFINE(VIDEO_ENABLED,1,[defined if video support is available])
fi

AC_ARG_ENABLE(alsa,
Yann Diorcet's avatar
Yann Diorcet committed
621 622 623 624 625 626 627 628
	[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
629

Simon Morlat's avatar
Simon Morlat committed
630
dnl this options are just for passing to mediastreamer2 subproject
Simon Morlat's avatar
Simon Morlat committed
631
AC_ARG_ENABLE(zrtp,
Yann Diorcet's avatar
Yann Diorcet committed
632 633 634 635 636 637 638 639
	[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
640

Simon Morlat's avatar
Simon Morlat committed
641
dnl this options are just for passing to mediastreamer2 subproject
johan's avatar
johan committed
642
AC_ARG_ENABLE(dtls,
643
	[AS_HELP_STRING([--enable-dtls], [Turn on srtp-dtls support - requires polarssl > 1.4])],
johan's avatar
johan committed
644 645 646 647 648 649 650 651
	[case "${enableval}" in
		yes)	dtls=true ;;
		no)	dtls=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-dtls) ;;
	esac],
	[dtls=false]
)

652 653 654 655 656 657 658 659 660 661
AC_ARG_ENABLE(g729bCN,
	[AS_HELP_STRING([--enable-g729bCN], [Turn on or off usage of G729AnnexB in RFC3389 implementation of Comfort Noise Payload (default=no)])],
	[case "${enableval}" in
		yes)	g729bCN=true ;;
		no)	g729bCN=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-g729bCN) ;;
	esac],
	[g729bCN=false]
)

johan's avatar
johan committed
662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694
dnl Polarssl lib is requested for Lime
AC_ARG_WITH( polarssl,
      [  --with-polarssl      Set prefix where polarssl can be found (ex:/usr, /usr/local)[[default=PREFIX or /usr if NONE]] ],
      [ polarssl_prefix=${withval}],[ if test "$prefix" != "NONE"; then
					polarssl_prefix=${prefix}
				      else
					polarssl_prefix="/usr"
				      fi ])

found_polarssl=no

if test "$polarssl_prefix" != "none" ; then
	if test "$polarssl_prefix" != "/usr" ; then
		POLARSSL_CFLAGS="-I${polarssl_prefix}/include"
		POLARSSL_LIBS="-L${polarssl_prefix}/lib"
	fi
	POLARSSL_LIBS="$POLARSSL_LIBS -lpolarssl"

	CPPFLAGS_save=$CPPFLAGS
	LIBS_save=$LIBS

	CPPFLAGS="$CPPFLAGS $POLARSSL_CFLAGS"
	LIBS="$LIBS $POLARSSL_LIBS"
	AC_CHECK_HEADERS(polarssl/gcm.h,
				[found_polarssl=yes; AC_MSG_NOTICE([polarssl usable])],
				[POLARSSL_CFLAGS=""
					POLARSSL_LIBS=""])
	CPPFLAGS=$CPPFLAGS_save
	LIBS=$LIBS_save
fi

dnl check for Lime support, need polarssl version >= 1.3 (with gcm.h)
AC_ARG_ENABLE(lime,
Simon Morlat's avatar
Simon Morlat committed
695
	[AS_HELP_STRING([--enable-lime], [Turn on or off compilation of Instant Messaging Encryption (default=auto)])],
johan's avatar
johan committed
696 697 698 699 700
	[case "${enableval}" in
		yes)	lime=true ;;
		no)	lime=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-lime) ;;
	esac],
701
	[lime=false]
johan's avatar
johan committed
702 703
)

Simon Morlat's avatar
Simon Morlat committed
704
if test "$lime" != "false" ; then
johan's avatar
johan committed
705
	if test "x$found_polarssl" != "xyes" ; then
Simon Morlat's avatar
Simon Morlat committed
706 707 708 709
		if test "$lime" = "true" ; then
			AC_MSG_ERROR("LIME requires POLARSSL in version >= 1.3")
		fi
		lime=false
johan's avatar
johan committed
710 711
	else
		AC_DEFINE(HAVE_LIME, 1, [Defined when LIME support is compiled])
Simon Morlat's avatar
Simon Morlat committed
712
		lime=true
johan's avatar
johan committed
713 714 715
	fi
fi

aymeric's avatar
aymeric committed
716 717
dnl build console if required
AM_CONDITIONAL(BUILD_CONSOLE, test x$console_ui = xtrue)
Yann Diorcet's avatar
Yann Diorcet committed
718

aymeric's avatar
aymeric committed
719 720
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
721

722 723
dnl compilation of gtk user interface
AM_CONDITIONAL(BUILD_GTK_UI, [test x$gtk_ui = xtrue ] )
724
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes )
aymeric's avatar
aymeric committed
725

726 727 728 729 730 731 732 733 734 735
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
736
	AC_DEFINE( HAVE_SIGHANDLER_T, 1, [Define if sighandler_t available] )
737 738
fi

739
AC_ARG_ENABLE(assistant,
Yann Diorcet's avatar
Yann Diorcet committed
740 741 742 743 744 745 746 747
	[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]
)
748

Yann Diorcet's avatar
Yann Diorcet committed
749
if test "$build_wizard" != "false" ; then
750
	PKG_CHECK_MODULES(LIBGTKWIZARD, [gtk+-2.0 >= 2.22.0],[],
Yann Diorcet's avatar
Yann Diorcet committed
751
		[if test "$build_wizard" = "true" ; then
Yann Diorcet's avatar
Yann Diorcet committed
752 753 754
			AC_MSG_ERROR([gtk+-2.0 < 2.22.0, assistant cannot be compiled.])
		else
			build_wizard=false
Yann Diorcet's avatar
Yann Diorcet committed
755 756
		fi]
	)
757
fi
Yann Diorcet's avatar
Yann Diorcet committed
758
AM_CONDITIONAL(BUILD_WIZARD, test x$build_wizard != xfalse)
759
if test "$build_wizard" != "false" ; then
Yann Diorcet's avatar
Yann Diorcet committed
760
	build_wizard=true
761
	 AC_DEFINE(BUILD_WIZARD, 1, [Define if wizard enabled] )
762
fi
Sylvain Berfini's avatar
Wizard  
Sylvain Berfini committed
763

764 765 766
AC_CHECK_HEADERS(libudev.h)
AC_CHECK_LIB(udev,udev_new)

aymeric's avatar
aymeric committed
767 768 769 770 771 772
##################################################
# Stricter build options (after external packages)
##################################################


AC_ARG_ENABLE(strict,
773
	AC_HELP_STRING([--enable-strict], [Build with stricter options @<:@yes@:>@]),
Yann Diorcet's avatar
Yann Diorcet committed
774 775
	[strictness="${enableval}"],
	[strictness=yes]
aymeric's avatar
aymeric committed
776 777
)

778
STRICT_OPTIONS="-Wall -Wuninitialized"
779
STRICT_OPTIONS_CC="-Wstrict-prototypes"
780
STRICT_OPTIONS_CXX=""
781

jehan's avatar
jehan committed
782 783
#for clang

784
case $CC in
785 786 787
	*gcc*)
		STRICT_OPTIONS="$STRICT_OPTIONS -fno-inline-small-functions"
	;;
Simon Morlat's avatar
Simon Morlat committed
788
	*clang*)
789
		STRICT_OPTIONS="$STRICT_OPTIONS -Qunused-arguments "
790 791 792
		#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 "
Simon Morlat's avatar
Simon Morlat committed
793 794
	;;
esac
795 796 797 798 799 800 801
# 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 "
Simon Morlat's avatar
Simon Morlat committed
802 803
	;;
esac
jehan's avatar
jehan committed
804
if test "$strictness" = "yes" ; then
Simon Morlat's avatar
Simon Morlat committed
805
	STRICT_OPTIONS="$STRICT_OPTIONS -Werror -Wextra -Wno-unused-parameter -Wno-error=deprecated-declarations -Wno-error=strict-prototypes -Wno-missing-field-initializers"
aymeric's avatar
aymeric committed
806 807 808 809
	CFLAGS="$CFLAGS -fno-strict-aliasing"
fi

AC_SUBST(STRICT_OPTIONS)
810 811
AC_SUBST(STRICT_OPTIONS_CC)
AC_SUBST(STRICT_OPTIONS_CXX)
aymeric's avatar
aymeric committed
812

813 814
top_srcdir=`dirname $0`

815 816 817 818 819 820 821 822 823 824 825
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
826
	PKG_CHECK_MODULES([ORTP], [ortp >= 0.24.0])
827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847
	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])

848
AC_ARG_ENABLE([external-mediastreamer],
Yann Diorcet's avatar
Yann Diorcet committed
849 850 851
	[AS_HELP_STRING([--enable-external-mediastreamer],[Use external mediastreamer library])],,
	[enable_external_mediastreamer=no]
)
852 853

AS_CASE($enable_external_mediastreamer,
Yann Diorcet's avatar
Yann Diorcet committed
854
	[yes],
855
	[PKG_CHECK_MODULES([MEDIASTREAMER], [mediastreamer >= 2.11.0])
Yann Diorcet's avatar
Yann Diorcet committed
856 857 858 859 860 861
	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"
862
dnl need to temporary change quotes to allow square brackets
Yann Diorcet's avatar
Yann Diorcet committed
863 864 865 866 867 868
	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])]
)
869 870 871 872

AC_SUBST(MEDIASTREAMER_CFLAGS)
AC_SUBST(MEDIASTREAMER_LIBS)
AC_SUBST([MS2_VERSION])
873
AC_SUBST([MS2_DIR])
aymeric's avatar
aymeric committed
874

Guillaume Beraudo's avatar
Guillaume Beraudo committed
875 876

AC_ARG_ENABLE(tunnel,
Yann Diorcet's avatar
Yann Diorcet committed
877 878 879 880 881 882 883 884
	[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
885 886
AM_CONDITIONAL(BUILD_TUNNEL, test x$enable_tunnel = xtrue)
if test x$enable_tunnel = xtrue; then
Simon Morlat's avatar
Simon Morlat committed
887
	PKG_CHECK_MODULES(TUNNEL, tunnel >= 0.6.0)
888
	AC_DEFINE(TUNNEL_ENABLED,1,[Tells tunnel extension is built-in])
Guillaume Beraudo's avatar
Guillaume Beraudo committed
889 890
fi

891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909
AC_ARG_ENABLE(vcard,
	[AS_HELP_STRING([--enable-vcard=[yes/no]], [Turn on compilation of vcard (default=auto)])],
	[case "${enableval}" in
		yes)	enable_vcard=true ;;
		no)		enable_vcard=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-vcard) ;;
	esac],
	[enable_vcard=auto]
)

if test x$enable_vcard != xfalse; then
	PKG_CHECK_MODULES(BELCARD, belcard, [found_vcard=yes],[found_vcard=no])
	if test "$found_vcard" = "no"; then
		dnl Check the lib presence in case the PKG-CONFIG version is not found
		AC_LANG_CPLUSPLUS
		AC_CHECK_LIB(belcard, main, [BELCARD_LIBS+=" -lbelr -lbelcard"; found_vcard=yes], [foo=bar])
		AC_LANG_C
	fi
	if test "$found_vcard" = "yes"; then
910
		BELCARD_CFLAGS+=" -DVCARD_ENABLED"
911 912 913 914 915 916 917 918 919 920 921 922 923 924
		enable_vcard=true
	else
		if test x$enable_vcard = xtrue; then
			AC_MSG_ERROR([belcard, required for vcard support, not found])
		fi
		enable_vcard=false
	fi

	AC_SUBST(BELCARD_CFLAGS)
	AC_SUBST(BELCARD_LIBS)
fi

AM_CONDITIONAL(BUILD_VCARD, test x$enable_vcard = xtrue)

925 926
AC_ARG_ENABLE(sqlite-storage,
	[AS_HELP_STRING([--sqlite-msg-storage=[yes/no]], [Turn on compilation of sqlite storage for call history, messages, friends (default=auto)])],
Margaux Clerc's avatar
Margaux Clerc committed
927
	[case "${enableval}" in
928 929 930
		yes)	enable_sqlite_storage=true ;;
		no)	enable_sqlite_storage=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-sqlite-storage) ;;
Margaux Clerc's avatar
Margaux Clerc committed
931
	esac],
932
	[enable_sqlite_storage=auto]
Margaux Clerc's avatar
Margaux Clerc committed
933
)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
934

935
if test x$enable_sqlite_storage != xfalse; then
936 937 938
	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
939
		AC_CHECK_LIB(sqlite3, sqlite3_open, [SQLITE3_LIBS+=" -lsqlite3 "; found_sqlite=yes], [foo=bar])
940 941
	fi
	if test "$found_sqlite" = "yes"; then
942
		SQLITE3_CFLAGS+=" -DSQLITE_STORAGE_ENABLED"
François Grisez's avatar
François Grisez committed
943
		if test "$build_macos" = "yes" -o "$ios_found" = "yes"; then
944 945
			SQLITE3_LIBS+=" -liconv"
		fi
Simon Morlat's avatar
Simon Morlat committed
946
		enable_sqlite_storage=true
947
	else
948 949
		if test x$enable_sqlite_storage = xtrue; then
			AC_MSG_ERROR([sqlite3, required for storage, not found])
Simon Morlat's avatar
Simon Morlat committed
950
		fi
Simon Morlat's avatar
Simon Morlat committed
951
		enable_sqlite_storage=false
952
	fi
953

954 955
	AC_SUBST(SQLITE3_CFLAGS)
	AC_SUBST(SQLITE3_LIBS)
Margaux Clerc's avatar
Margaux Clerc committed
956
fi
Guillaume Beraudo's avatar
Guillaume Beraudo committed
957

958
AM_CONDITIONAL(BUILD_SQLITE_STORAGE, test x$enable_sqlite_storage = xtrue)
959

960

961
PKG_CHECK_MODULES(BELLESIP, [belle-sip >= 1.4.2])
Guillaume Beraudo's avatar
Guillaume Beraudo committed
962

963 964
SIPSTACK_CFLAGS="$BELLESIP_CFLAGS"
SIPSTACK_LIBS="$BELLESIP_LIBS"
Guillaume Beraudo's avatar
Guillaume Beraudo committed
965 966


jehan's avatar
jehan committed
967 968
AC_SUBST(SIPSTACK_CFLAGS)
AC_SUBST(SIPSTACK_LIBS)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
969

aymeric's avatar
aymeric committed
970
dnl check for db2html (docbook) to generate html user manual
Yann Diorcet's avatar
Yann Diorcet committed
971
AC_CHECK_PROG(have_sgmltools, sgmltools, yes, no)
aymeric's avatar
aymeric committed
972 973 974
AM_CONDITIONAL(ENABLE_MANUAL, test x$have_sgmltools$build_manual = xyesyes )

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

aymeric's avatar
aymeric committed
978 979 980
AC_SUBST(LINPHONE_CFLAGS)
AC_SUBST(LINPHONE_LIBS)

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

simorl's avatar
simorl committed
983 984
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
985
AC_SUBST(LINPHONE_PLUGINS_DIR)
aymeric's avatar
aymeric committed
986 987 988



jehan's avatar
jehan committed
989 990 991 992 993 994 995 996 997 998 999
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
1000
AC_ARG_ENABLE(tests,
Yann Diorcet's avatar
Yann Diorcet committed
1001 1002 1003 1004 1005 1006
	[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
1007
	[tests_enabled=yes]
Yann Diorcet's avatar
Yann Diorcet committed
1008
)
1009 1010
AM_CONDITIONAL(ENABLE_TESTS, test x$tests_enabled = xyes)

1011
PKG_CHECK_MODULES(BCTOOLBOXTESTER, bctoolbox-tester, [found_pkg_config_bctoolboxtester=yes],[found_pkg_config_bctoolboxtester=no])
jehan's avatar
jehan committed
1012

1013 1014 1015
AM_CONDITIONAL([ENABLE_TESTS], [test x$found_pkg_config_bctoolboxtester = xyes && test x$tests_enabled != xfalse])
if test "$found_pkg_config_bctoolboxtester" = "no" ; then
        AC_MSG_WARN([Could not find bctoolbox-tester wrapper, tests are not compiled.])
jehan's avatar
jehan committed
1016 1017
fi

Guillaume Beraudo's avatar
Guillaume Beraudo committed
1018

1019

1020 1021 1022 1023
dnl ##################################################
dnl # Check for doxygen
dnl ##################################################

1024 1025
AC_ARG_ENABLE(documentation,
	[AS_HELP_STRING([--enable-documentation], [Documentation generation using doxygen (default=yes)])],
1026 1027 1028
	[case "${enableval}" in
		yes)	documentation_enabled=yes;;
		no)		documentation_enabled=no;;
1029
		*)		AC_MSG_ERROR("Bad value for --enable-documentation");;
1030 1031 1032 1033 1034 1035 1036 1037
	esac],
	[documentation_enabled=yes]
)
if test "$documentation_enabled" = "yes" ; then
	AC_CHECK_PROG(DOXYGEN,doxygen,doxygen,false)
else
	DOXYGEN=false
fi
Simon Morlat's avatar
Simon Morlat committed
1038
AM_CONDITIONAL(HAVE_DOXYGEN, test "$DOXYGEN" != "false")