configure.ac 8.28 KB
Newer Older
dafydd.harries's avatar
dafydd.harries committed
1

2
AC_PREREQ(2.59c)
3

4 5 6
dnl Always compile with -Wall; if --enable-compile-warnings=error is passed,
dnl also use -Werror. git and pre-releases default to -Werror

7
dnl use a three digit version number for releases, and four for cvs/prerelease
8
AC_INIT([libnice],[0.1.4.1])
Youness Alaoui's avatar
Youness Alaoui committed
9
LIBNICE_RELEASE="no"
10

11
AC_CANONICAL_TARGET
12

13
AC_CONFIG_SRCDIR([agent/agent.c])
14
AC_CONFIG_HEADERS([config.h])
15
AM_INIT_AUTOMAKE([-Wall])
16

17 18
AC_CONFIG_FILES([
	Makefile
19
	agent/Makefile
20
	stun/Makefile
21
	stun/tests/Makefile
22
	stun/tools/Makefile
23
	socket/Makefile
Dafydd Harries's avatar
Dafydd Harries committed
24
	nice/Makefile
25
	nice/nice.pc
26
	random/Makefile
27
	gst/Makefile
Youness Alaoui's avatar
Youness Alaoui committed
28 29 30
	docs/Makefile
	docs/reference/Makefile
	docs/reference/libnice/Makefile
31
	tests/Makefile
32
	examples/Makefile
33
	])
dafydd.harries's avatar
dafydd.harries committed
34

35
# Set the libtool C/A/R version info
Youness Alaoui's avatar
Youness Alaoui committed
36 37 38 39 40 41
#    If the source code was changed, but there were no interface changes:
#      Increment REVISION.
#    If there was a compatible interface change:
#      Increment CURRENT and AGE. Set REVISION to 0
#    If there was an incompatible interface change:
#      Increment CURRENT. Set AGE and REVISION to 0
Youness Alaoui's avatar
Youness Alaoui committed
42
LIBNICE_CURRENT=12
Olivier Crête's avatar
Olivier Crête committed
43
LIBNICE_REVISION=0
Youness Alaoui's avatar
Youness Alaoui committed
44
LIBNICE_AGE=2
45
LIBNICE_LIBVERSION=${LIBNICE_CURRENT}:${LIBNICE_REVISION}:${LIBNICE_AGE}
46
LIBNICE_LT_LDFLAGS="-version-info ${LIBNICE_LIBVERSION} -no-undefined"
47
AC_SUBST(LIBNICE_LT_LDFLAGS)
48

49

50 51 52 53 54 55
dnl use pretty build output with automake >= 1.11
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
  [AM_DEFAULT_VERBOSITY=1
   AC_SUBST(AM_DEFAULT_VERBOSITY)])


dafydd.harries's avatar
dafydd.harries committed
56 57
# Checks for programs.

58
AC_USE_SYSTEM_EXTENSIONS
dafydd.harries's avatar
dafydd.harries committed
59
AC_PROG_CC
60
AM_PROG_AR
61
LT_INIT
dafydd.harries's avatar
dafydd.harries committed
62

63 64 65 66 67 68 69 70 71 72 73 74 75 76
# Check Operating System
AC_MSG_CHECKING([operating system])
case "$host" in
	*-*-*mingw*|*-*-*cygwin*)
		platform=win32
		AC_MSG_RESULT($platform)
		;;
	*)
		platform=linux/other
		AC_MSG_RESULT($platform)
		;;
esac

AM_CONDITIONAL([WINDOWS], [test "$platform" = "win32"])
77

78 79 80
# Checks for compiler features

AC_C_RESTRICT
81
AC_C_VARARRAYS
82 83
AC_HEADER_ASSERT
AC_HEADER_STDBOOL
84 85 86 87 88 89
AH_VERBATIM([_FORTIFY_SOURCE], 
[/* Define to `2' to get GNU/libc warnings. */
/* Only define if -O1 or more is enabled */
#if defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# define _FORTIFY_SOURCE 2
#endif])
90
AC_DEFINE([NICEAPI_EXPORT], [ ], [Public library function implementation])
91 92
AC_CHECK_HEADERS([arpa/inet.h net/in.h])
AC_CHECK_HEADERS([ifaddrs.h], \
93 94
		      [AC_DEFINE(HAVE_GETIFADDRS, [1], \
		       [Whether getifaddrs() is available on the system])])
95

96 97 98
# Also put matching version in LIBNICE_CFLAGS
GLIB_REQ=2.30

99 100 101 102 103 104 105 106 107 108 109
LIBNICE_CFLAGS="-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_30 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32"

dnl Support different levels of compiler error reporting.
dnl This configure flag is designed to mimic one from gnome-common,
dnl Defaults to "error" except for releases where it defaults to "yes"
AC_ARG_ENABLE(compile-warnings,
              AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
                             [Enable different levels of compiler warnings]),,
              [AS_IF([test "$LIBNICE_RELEASE" = "yes"],
                  [enable_compile_warnings="yes"],
                  [enable_compile_warnings="error"])])
110 111 112 113 114 115

AC_DEFUN([NICE_ADD_FLAG],
  AS_COMPILER_FLAG([$1], LIBNICE_CFLAGS="$LIBNICE_CFLAGS $1", [])
)

NICE_ADD_FLAG([-fno-strict-aliasing])
116

117
AS_IF([test "$enable_compile_warnings" != "no"],[
118
    NICE_ADD_FLAG([-Wall])
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
])
AS_IF([test "$enable_compile_warnings" != "no" -a
            "$enable_compile_warnings" != "minimum"],[
    NICE_ADD_FLAG([-Wextra])
    NICE_ADD_FLAG([-Wundef])
    NICE_ADD_FLAG([-Wnested-externs])
    NICE_ADD_FLAG([-Wwrite-strings])
    NICE_ADD_FLAG([-Wpointer-arith])
    NICE_ADD_FLAG([-Wbad-function-cast])
    NICE_ADD_FLAG([-Wmissing-declarations])
    NICE_ADD_FLAG([-Wmissing-prototypes])
    NICE_ADD_FLAG([-Wstrict-prototypes])
    NICE_ADD_FLAG([-Wredundant-decls])
    NICE_ADD_FLAG([-Wno-unused-parameter])
    NICE_ADD_FLAG([-Wno-missing-field-initializers])
    NICE_ADD_FLAG([-Wdeclaration-after-statement])
    NICE_ADD_FLAG([-Wformat=2])
    NICE_ADD_FLAG([-Wold-style-definition])
    NICE_ADD_FLAG([-Wcast-align])
    NICE_ADD_FLAG([-Wformat-nonliteral])
    NICE_ADD_FLAG([-Wformat-security])
])
AS_IF([test "$enable_compile_warnings" = "yes" -o \
            "$enable_compile_warnings" = "maximum" -o \
            "$enable_compile_warnings" = "error"],[
    NICE_ADD_FLAG([-Wsign-compare])
    NICE_ADD_FLAG([-Wstrict-aliasing])
    NICE_ADD_FLAG([-Wunsafe-loop-optimizations])
    NICE_ADD_FLAG([-Wshadow])
    NICE_ADD_FLAG([-Winline])
    NICE_ADD_FLAG([-Wpacked])
    NICE_ADD_FLAG([-Wmissing-format-attribute])
    NICE_ADD_FLAG([-Wmissing-noreturn])
    NICE_ADD_FLAG([-Winit-self])
    NICE_ADD_FLAG([-Wredundant-decls])
    NICE_ADD_FLAG([-Wmissing-include-dirs])
    NICE_ADD_FLAG([-Wunused-but-set-variable])
    NICE_ADD_FLAG([-Warray-bounds])
])
AS_IF([test "$enable_compile_warnings" = "maximum" -o \
            "$enable_compile_warnings" = "error"],[
    NICE_ADD_FLAG([-Wswitch-enum])
    NICE_ADD_FLAG([-Wswitch-default])
    NICE_ADD_FLAG([-Waggregate-return])
163 164 165 166
])
AS_IF([test "x$enable_compile_warnings" = "xerror"],[
    NICE_ADD_FLAG([-Werror])
])
167

168 169 170 171 172 173 174 175 176 177 178
#
# Fixes for Solaris
#
AC_SEARCH_LIBS([inet_pton],[nsl])
AC_SEARCH_LIBS([socket],[socket inet])
case $host in
	*-*-solaris* )
	AC_DEFINE(_XOPEN_SOURCE,          600, Needed to get declarations for msg_control and msg_controllen on Solaris)
	AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
     ;;
esac
179

180 181
AC_SUBST(LIBNICE_CFLAGS)
AC_MSG_NOTICE([set LIBNICE_CFLAGS to $LIBNICE_CFLAGS])
182

dafydd.harries's avatar
dafydd.harries committed
183
# Checks for libraries.
184
AC_CHECK_LIB(rt, clock_gettime, [LIBRT="-lrt"], [LIBRT=""])
185
AC_CHECK_FUNCS([poll])
186 187
AC_SUBST(LIBRT)

188
PKG_CHECK_MODULES(GLIB, [dnl
189 190 191 192
	glib-2.0 >= $GLIB_REQ dnl
	gobject-2.0 >= $GLIB_REQ dnl
	gthread-2.0 >= $GLIB_REQ dnl
	gio-2.0 >= $GLIB_REQ dnl
193
	])
dafydd.harries's avatar
dafydd.harries committed
194

195
AC_ARG_WITH(gstreamer, 
196
	AS_HELP_STRING([--with-gstreamer],[build GStreamer plugin]),
197 198 199
	[with_gstreamer=${withval}],
	[with_gstreamer=auto])

200
AC_ARG_WITH(gstreamer-0.10, 
201
	AS_HELP_STRING([--with-gstreamer-0.10],[build GStreamer 0.10 plugin]),
202 203 204
	[with_gstreamer010=${withval}],
	[with_gstreamer010=auto])

205
AS_IF([test "$with_gstreamer" != no], [
206
  
207
	PKG_CHECK_MODULES(GST, [
208 209
		gstreamer-1.0 >= 0.11.91
		gstreamer-base-1.0 >= 0.11.91
210
		],
211 212
		[
		with_gstreamer=yes
213
		GST_MAJORMINOR=1.0
214
		gstplugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
215
		],
216
		[
217
		AS_IF([test "$with_gstreamer" = yes], [
218
			AC_MSG_ERROR([GStreamer 1.0 support was requested but GStreamer 1.0 libraries are not available])
219
		])
220 221 222

		with_gstreamer=no
		])
223
])
224

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
AS_IF([test "$with_gstreamer010" != no], [
  
	PKG_CHECK_MODULES(GST010, [
		gstreamer-0.10 >= 0.10.10
		gstreamer-base-0.10 >= 0.10.10
		],
		[
		with_gstreamer010=yes
		GST_MAJORMINOR=0.10
		gstplugin010dir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
		],
		[
		AS_IF([test "$with_gstreamer010" = yes], [
			AC_MSG_ERROR([GStreamer 0.10 support was requested but GStreamer 0.10 libraries are not available])
		])

		with_gstreamer010=no
		])
])

245
AC_SUBST(gstplugindir)
246
AC_SUBST(gstplugin010dir)
247

248
AM_CONDITIONAL(WITH_GSTREAMER, test "$with_gstreamer" = yes)
249
AM_CONDITIONAL(WITH_GSTREAMER010, test "$with_gstreamer010" = yes)
250

251 252
GUPNP_IGD_REQUIRED=0.1.2

253
AC_ARG_ENABLE([gupnp],
254
        AS_HELP_STRING([--disable-gupnp],[Disable GUPnP IGD support]),
255 256 257 258 259 260 261 262 263
        [case "${enableval}" in
            yes) WANT_GUPNP=yes ;;
            no)  WANT_GUPNP=no ;;
            *) AC_MSG_ERROR(bad value ${enableval} for --enable-gupnp) ;;
        esac],
        WANT_GUPNP=test)

HAVE_GUPNP=no
if test "x$WANT_GUPNP" != "xno"; then
264
   PKG_CHECK_MODULES(GUPNP, gupnp-igd-1.0 >= $GUPNP_IGD_REQUIRED,
265 266 267 268
    [ HAVE_GUPNP=yes ],
    [ HAVE_GUPNP=no ])
fi
if test "x$WANT_GUPNP" = "xyes" && test "x$HAVE_GUPNP" = "xno"; then
269
   AC_MSG_ERROR(Requested GUPnP IGD, but it is not available)
270 271 272 273 274 275 276 277
fi

if test "x$HAVE_GUPNP" = "xyes"; then
   AC_DEFINE(HAVE_GUPNP,,[Have the GUPnP IGD library])
fi

AC_SUBST(HAVE_GUPNP)

278 279 280 281 282 283 284 285 286 287 288 289
dnl Test coverage
AC_ARG_ENABLE([coverage],
	[AS_HELP_STRING([--enable-coverage],
		[build for test coverage (default disabled)])],,
	[enable_coverage="no"])
AS_IF([test "${enable_coverage}" != "no"], [
	CFLAGS="${CFLAGS} -g -O0 -fprofile-arcs -ftest-coverage"
	LDFLAGS="-lgcov"
	CCACHE_DISABLE=1
])
AC_SUBST(CCACHE_DISABLE)

290 291 292 293 294 295 296 297
case $host_os in
  solaris*)
    LDFLAGS="$LDFLAGS -lsocket -lnls"
    ;;
  *)
    ;;
esac

Youness Alaoui's avatar
Youness Alaoui committed
298
# check for gtk-doc
299
m4_ifdef([GTK_DOC_CHECK], [
Youness Alaoui's avatar
Youness Alaoui committed
300
GTK_DOC_CHECK(1.9)
301 302 303
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])
Youness Alaoui's avatar
Youness Alaoui committed
304
AC_CONFIG_MACRO_DIR(m4)
305

dafydd.harries's avatar
dafydd.harries committed
306 307
AC_OUTPUT