configure.ac 33.3 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.11.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

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)])

33
AM_INIT_AUTOMAKE([1.9 tar-pax subdir-objects foreign])
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

90
AM_CONDITIONAL(BUILD_IOS, test x$ios_found = xyes)
91

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

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

AC_SUBST(HTTPS_CA_DIR)

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

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

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

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

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

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

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

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

162 163 164 165 166
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
167 168
AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )

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

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

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

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

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

213
	AC_SUBST(LDAP_CFLAGS)
214
	AC_SUBST(LDAP_LIBS)
215

216 217
	AC_SUBST(SASL_CFLAGS)
	AC_SUBST(SASL_LIBS)
218

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

225
fi
226

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

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

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

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

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

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
282

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


320 321 322 323
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
324 325 326 327
fi

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

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

if test "$gtk_ui" = "true" ; then
344
	PKG_CHECK_MODULES(LIBGTK, gtk+-2.0 >= 2.18.0 gthread-2.0)
jehan's avatar
jehan committed
345
	if test "$enable_x11" = "false" ; then
346 347 348 349 350 351 352 353
		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
354
		AC_DEFINE([HAVE_GTK_OSX],[1],[Defined when gtk osx is used])
355
	fi
356 357

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

561 562
dnl Set PACKAGE_RING_DIR in config.h.
AC_DEFINE_UNQUOTED(PACKAGE_RING_DIR, "${package_prefix}/${DATADIRNAME}/sounds/linphone/rings",[Defines the place where linphone rings are found])
aymeric's avatar
aymeric committed
563 564 565 566 567

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

AC_WORDS_BIGENDIAN

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

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

Yann Diorcet's avatar
Yann Diorcet committed
601 602 603 604 605
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
606

607 608
AM_CONDITIONAL([BUILD_MACOS], [test "x$build_macos" = "xyes"])

aymeric's avatar
aymeric committed
609
if test "$video" = "true"; then
610

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

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

633

Simon Morlat's avatar
Simon Morlat committed
634
AC_ARG_ENABLE(zrtp,
Yann Diorcet's avatar
Yann Diorcet committed
635 636 637 638 639 640
	[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],
641
	[zrtp=auto]
Yann Diorcet's avatar
Yann Diorcet committed
642
)
Simon Morlat's avatar
Simon Morlat committed
643

644 645 646 647 648 649 650
if test "$zrtp" != "false" ; then
	PKG_CHECK_MODULES(LIBBZRTP, libbzrtp >= 1.0.0, found_zrtp=true, found_zrtp=false)
	if test "$zrtp$found_zrtp" = "truefalse" ; then
		AC_MSG_ERROR("Cound not find bZRTP library.")
	fi
	if test "$found_zrtp" = "true" ; then
		zrtp=true
johan's avatar
johan committed
651
		AC_DEFINE(HAVE_ZRTP, 1, [Defined if bzrtp is available])
652 653 654 655 656
	else
		zrtp=false
	fi
fi

Simon Morlat's avatar
Simon Morlat committed
657
dnl this options are just for passing to mediastreamer2 subproject
johan's avatar
johan committed
658
AC_ARG_ENABLE(dtls,
659
	[AS_HELP_STRING([--enable-dtls], [Turn on srtp-dtls support - requires polarssl > 1.4])],
johan's avatar
johan committed
660 661 662 663 664 665 666 667
	[case "${enableval}" in
		yes)	dtls=true ;;
		no)	dtls=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-dtls) ;;
	esac],
	[dtls=false]
)

668 669 670 671 672 673 674 675 676 677
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]
)

678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710
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
711
	[AS_HELP_STRING([--enable-lime], [Turn on or off compilation of Instant Messaging Encryption (default=auto)])],
712 713 714 715 716
	[case "${enableval}" in
		yes)	lime=true ;;
		no)	lime=false ;;
		*)	AC_MSG_ERROR(bad value ${enableval} for --enable-lime) ;;
	esac],
717
	[lime=auto]
718 719
)

720 721 722 723 724 725
if test "$lime" = "true" ; then
	if test "$zrtp" = "false" ; then
		AC_MSG_ERROR([LIME requires zrtp])
	fi
fi

Simon Morlat's avatar
Simon Morlat committed
726
if test "$lime" != "false" ; then
727
	if test "$found_zrtp" = "true" ; then
728
		AC_DEFINE(HAVE_LIME, 1, [Defined when LIME support is compiled])
Simon Morlat's avatar
Simon Morlat committed
729
		lime=true
730 731
	else
		lime = false
732 733 734
	fi
fi

aymeric's avatar
aymeric committed
735 736
dnl build console if required
AM_CONDITIONAL(BUILD_CONSOLE, test x$console_ui = xtrue)
Yann Diorcet's avatar
Yann Diorcet committed
737

aymeric's avatar
aymeric committed
738 739
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
740

741 742
dnl compilation of gtk user interface
AM_CONDITIONAL(BUILD_GTK_UI, [test x$gtk_ui = xtrue ] )
743
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes )
aymeric's avatar
aymeric committed
744

745 746 747 748 749 750 751 752 753 754
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
755
	AC_DEFINE( HAVE_SIGHANDLER_T, 1, [Define if sighandler_t available] )
756 757
fi

758
AC_ARG_ENABLE(assistant,
Yann Diorcet's avatar
Yann Diorcet committed
759 760 761 762 763 764 765 766
	[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]
)
767

Yann Diorcet's avatar
Yann Diorcet committed
768
if test "$build_wizard" != "false" ; then
769
	PKG_CHECK_MODULES(LIBGTKWIZARD, [gtk+-2.0 >= 2.22.0],[],
Yann Diorcet's avatar
Yann Diorcet committed
770
		[if test "$build_wizard" = "true" ; then
771 772 773
			AC_MSG_ERROR([gtk+-2.0 < 2.22.0, assistant cannot be compiled.])
		else
			build_wizard=false
Yann Diorcet's avatar
Yann Diorcet committed
774 775
		fi]
	)
776
fi
Yann Diorcet's avatar
Yann Diorcet committed
777
AM_CONDITIONAL(BUILD_WIZARD, test x$build_wizard != xfalse)
778
if test "$build_wizard" != "false" ; then
Yann Diorcet's avatar
Yann Diorcet committed
779
	build_wizard=true
780
	 AC_DEFINE(BUILD_WIZARD, 1, [Define if wizard enabled] )
781
fi
Sylvain Berfini's avatar
Sylvain Berfini committed
782

783 784 785
AC_CHECK_HEADERS(libudev.h)
AC_CHECK_LIB(udev,udev_new)

aymeric's avatar
aymeric committed
786 787 788 789 790 791
##################################################
# Stricter build options (after external packages)
##################################################


AC_ARG_ENABLE(strict,
792
	AC_HELP_STRING([--enable-strict], [Build with stricter options @<:@yes@:>@]),
Yann Diorcet's avatar
Yann Diorcet committed
793 794
	[strictness="${enableval}"],
	[strictness=yes]
aymeric's avatar
aymeric committed
795 796
)

797
STRICT_OPTIONS="-Wall -Wuninitialized"
798
STRICT_OPTIONS_CC="-Wstrict-prototypes"
799
STRICT_OPTIONS_CXX=""
800

801 802
#for clang

803
case $CC in
804 805 806
	*gcc*)
		STRICT_OPTIONS="$STRICT_OPTIONS -fno-inline-small-functions"
	;;
807
	*clang*)
808
		STRICT_OPTIONS="$STRICT_OPTIONS -Qunused-arguments "
809 810 811
		#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 "
812 813
	;;
esac
814 815 816 817 818 819 820
# 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 "
821 822
	;;
esac
jehan's avatar
jehan committed
823
if test "$strictness" = "yes" ; then
824
	STRICT_OPTIONS="$STRICT_OPTIONS -Werror -Wextra -Wno-unused-parameter -Wno-error=deprecated-declarations -Wno-missing-field-initializers"
aymeric's avatar
aymeric committed
825 826 827 828
	CFLAGS="$CFLAGS -fno-strict-aliasing"
fi

AC_SUBST(STRICT_OPTIONS)
829 830
AC_SUBST(STRICT_OPTIONS_CC)
AC_SUBST(STRICT_OPTIONS_CXX)
aymeric's avatar
aymeric committed
831

832 833
top_srcdir=`dirname $0`

834 835 836 837 838 839 840
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],
841
	[external_ortp=$(if test -d oRTP; then printf false; else printf true; fi)]
842 843 844
)

if test "$external_ortp" = 'true'; then
845
	PKG_CHECK_MODULES([ORTP], [ortp >= 0.24.0])
846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866
	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])

867
AC_ARG_ENABLE([external-mediastreamer],
Yann Diorcet's avatar
Yann Diorcet committed
868
	[AS_HELP_STRING([--enable-external-mediastreamer],[Use external mediastreamer library])],,
869
	[enable_external_mediastreamer=$(if test -d mediastreamer2; then printf no; else printf yes; fi)]
Yann Diorcet's avatar
Yann Diorcet committed
870
)
871 872

AS_CASE($enable_external_mediastreamer,
Yann Diorcet's avatar
Yann Diorcet committed
873
	[yes],
874
	[PKG_CHECK_MODULES([MEDIASTREAMER], [mediastreamer >= 2.11.0])
Yann Diorcet's avatar
Yann Diorcet committed
875 876 877 878 879 880
	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"
881
dnl need to temporary change quotes to allow square brackets
Yann Diorcet's avatar
Yann Diorcet committed
882 883 884 885 886 887
	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])]
)
888 889 890 891

AC_SUBST(MEDIASTREAMER_CFLAGS)
AC_SUBST(MEDIASTREAMER_LIBS)
AC_SUBST([MS2_VERSION])
892
AC_SUBST([MS2_DIR])
aymeric's avatar
aymeric committed
893

Guillaume Beraudo's avatar
Guillaume Beraudo committed
894 895

AC_ARG_ENABLE(tunnel,
Yann Diorcet's avatar
Yann Diorcet committed
896 897 898 899 900 901 902 903
	[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
904 905
AM_CONDITIONAL(BUILD_TUNNEL, test x$enable_tunnel = xtrue)
if test x$enable_tunnel = xtrue; then
906
	PKG_CHECK_MODULES(TUNNEL, tunnel >= 0.6.0)
907
	AC_DEFINE(TUNNEL_ENABLED,1,[Tells tunnel extension is built-in])
Guillaume Beraudo's avatar
Guillaume Beraudo committed
908 909
fi

910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928
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
929
		BELCARD_CFLAGS+=" -DVCARD_ENABLED"
930 931 932 933 934 935 936 937 938 939 940 941 942 943
		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)

944
AC_ARG_ENABLE(sqlite-storage,
Simon Morlat's avatar
Simon Morlat committed
945
	[AS_HELP_STRING([--enable-sqlite-storage=[yes/no]], [Turn on compilation of sqlite storage for call history, messages, friends (default=auto)])],
Margaux Clerc's avatar
Margaux Clerc committed
946
	[case "${enableval}" in
947 948 949
		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
950
	esac],
951
	[enable_sqlite_storage=auto]
Margaux Clerc's avatar
Margaux Clerc committed
952
)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
953

954
if test x$enable_sqlite_storage != xfalse; then
955 956 957
	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
958
		AC_CHECK_LIB(sqlite3, sqlite3_open, [SQLITE3_LIBS+=" -lsqlite3 "; found_sqlite=yes], [foo=bar])
959 960
	fi
	if test "$found_sqlite" = "yes"; then
961
		SQLITE3_CFLAGS+=" -DSQLITE_STORAGE_ENABLED"
François Grisez's avatar
François Grisez committed
962
		if test "$build_macos" = "yes" -o "$ios_found" = "yes"; then
963 964
			SQLITE3_LIBS+=" -liconv"
		fi
965
		enable_sqlite_storage=true
966
	else
967 968
		if test x$enable_sqlite_storage = xtrue; then
			AC_MSG_ERROR([sqlite3, required for storage, not found])
Simon Morlat's avatar
Simon Morlat committed
969
		fi
970
		enable_sqlite_storage=false
971
	fi
972

973 974
	AC_SUBST(SQLITE3_CFLAGS)
	AC_SUBST(SQLITE3_LIBS)
Margaux Clerc's avatar
Margaux Clerc committed
975
fi
Guillaume Beraudo's avatar
Guillaume Beraudo committed
976

977
AM_CONDITIONAL(BUILD_SQLITE_STORAGE, test x$enable_sqlite_storage = xtrue)
978

979

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

982 983
SIPSTACK_CFLAGS="$BELLESIP_CFLAGS"
SIPSTACK_LIBS="$BELLESIP_LIBS"
Guillaume Beraudo's avatar
Guillaume Beraudo committed
984 985


jehan's avatar
jehan committed
986 987
AC_SUBST(SIPSTACK_CFLAGS)
AC_SUBST(SIPSTACK_LIBS)
Guillaume Beraudo's avatar
Guillaume Beraudo committed
988

aymeric's avatar
aymeric committed
989
dnl check for db2html (docbook) to generate html user manual
Yann Diorcet's avatar
Yann Diorcet committed
990
AC_CHECK_PROG(have_sgmltools, sgmltools, yes, no)
aymeric's avatar
aymeric committed
991 992 993
AM_CONDITIONAL(ENABLE_MANUAL, test x$have_sgmltools$build_manual = xyesyes )

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

aymeric's avatar
aymeric committed
997 998 999
AC_SUBST(LINPHONE_CFLAGS)
AC_SUBST(LINPHONE_LIBS)

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

simorl's avatar
simorl committed
1002 1003
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
1004
AC_SUBST(LINPHONE_PLUGINS_DIR)
aymeric's avatar
aymeric committed
1005 1006 1007



jehan's avatar
jehan committed
1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
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
1019
AC_ARG_ENABLE(tests,
Yann Diorcet's avatar
Yann Diorcet committed
1020 1021 1022 1023 1024 1025
	[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
1026
	[tests_enabled=yes]
Yann Diorcet's avatar
Yann Diorcet committed
1027
)
1028 1029
AM_CONDITIONAL(ENABLE_TESTS, test x$tests_enabled = xyes)

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

1032 1033 1034
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
1035 1036
fi

Guillaume Beraudo's avatar
Guillaume Beraudo committed
1037

1038

1039 1040 1041 1042
dnl ##################################################
dnl # Check for doxygen
dnl ##################################################

1043 1044
AC_ARG_ENABLE(documentation,
	[AS_HELP_STRING([--enable-documentation], [Documentation generation using doxygen (default=yes)])],
1045 1046 1047
	[case "${enableval}" in
		yes)	documentation_enabled=yes;;
		no)		documentation_enabled=no;;
1048
		*)		AC_MSG_ERROR("Bad value for --enable-documentation");;
1049 1050 1051 1052 1053 1054 1055 1056
	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
1057
AM_CONDITIONAL(HAVE_DOXYGEN, test "$DOXYGEN" != "false")
1058

jehan's avatar
jehan committed
1059
AC_PATH_PROG([SIPP],[sipp],[false])
jehan's avatar
jehan committed
1060 1061
if test "x$SIPP" != "xfalse" ; then
	AC_DEFINE(HAVE_SIPP,1,[defined when SIPP is available])
jehan's avatar
jehan committed
1062
	AC_DEFINE_UNQUOTED(SIPP_COMMAND,"$SIPP",[defined when SIPP is available])
jehan's avatar
jehan committed
1063
fi
1064

1065
AC_CONFIG_FILES([
Yann Diorcet's avatar
Yann Diorcet committed
1066 1067 1068 1069
	Makefile
	build/Makefile
	build/macos/Makefile
	build/macos/Info-linphone.plist
1070
	build/macos/pkg-distribution.xml
Yann Diorcet's avatar
Yann Diorcet committed
1071 1072 1073
	m4/Makefile
	po/Makefile.in
	pixmaps/Makefile
jehan's avatar
jehan committed
1074
	include/Makefile
1075
	include/linphone/Makefile
Yann Diorcet's avatar
Yann Diorcet committed
1076
	coreapi/Makefile
1077
	tester/Makefile
Yann Diorcet's avatar
Yann Diorcet committed
1078 1079
	gtk/Makefile
	console/Makefile
1080
	daemon/Makefile
Yann Diorcet's avatar
Yann Diorcet committed
1081 1082 1083 1084 1085 1086 1087 1088 1089
	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
1090
	share/audio-assistant.desktop
Yann Diorcet's avatar
Yann Diorcet committed
1091 1092 1093 1094
	scripts/Makefile
	tools/Makefile
	linphone.spec
	linphone.iss
aymeric's avatar
aymeric committed
1095 1096
])

1097 1098
AC_OUTPUT

aymeric's avatar
aymeric committed
1099
echo "Linphone build configuration ended."
1100
echo "Summary of build options:"
Yann Diorcet's avatar
Yann Diorcet committed
1101 1102 1103 1104
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
1105
printf "* %-30s %s\n" "Tools"				$build_tools
1106
printf "* %-30s %s\n" "Sqlite storage"		$enable_sqlite_storage
1107
printf "* %-30s %s\n" "VCard support"		$enable_vcard
1108
printf "* %-30s %s\n" "ZRTP"			$zrtp
1109
printf "* %-30s %s\n" "IM encryption"		$lime
1110
printf "* %-30s %s\n" "uPnP support" 		$build_upnp
1111
printf "* %-30s %s\n" "LDAP support" 		$enable_ldap
1112
printf "* %-30s %s\n" "ZLIB support" 		$found_zlib
1113
printf "* %-30s %s\n" "Documentation" 		$documentation_enabled
1114 1115

if test "$enable_tunnel" = "true" ; then
1116
	printf "* %-30s %s\n" "Tunnel support" "true"
aymeric's avatar
aymeric committed
1117 1118
fi

1119

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