configure.ac 8.22 KB
Newer Older
dafydd.harries's avatar
import  
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
Olivier Crête's avatar
Olivier Crête committed
8
AC_INIT([libnice],[0.1.5])
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
import  
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
Olivier Crête's avatar
Olivier Crête committed
42
LIBNICE_CURRENT=13
Olivier Crête's avatar
Olivier Crête committed
43
LIBNICE_REVISION=0
Olivier Crête's avatar
Olivier Crête committed
44
LIBNICE_AGE=3
45
LIBNICE_LIBVERSION=${LIBNICE_CURRENT}:${LIBNICE_REVISION}:${LIBNICE_AGE}
Siraj Razick's avatar
Siraj Razick committed
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
import  
dafydd.harries committed
56 57
# Checks for programs.

58
AC_USE_SYSTEM_EXTENSIONS
dafydd.harries's avatar
import  
dafydd.harries committed
59
AC_PROG_CC
60
AM_PROG_AR
61
LT_INIT
dafydd.harries's avatar
import  
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
AC_CHECK_TYPES([size_t, ssize_t])
96

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

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

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"])])
111 112 113 114 115 116

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

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

118
AS_IF([test "$enable_compile_warnings" != "no"],[
119
    NICE_ADD_FLAG([-Wall])
120
])
121 122
AS_IF([test "x$enable_compile_warnings" != "xno" -a \
	    "x$enable_compile_warnings" != "xminimum"],[
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
    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([-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([-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])
162 163 164 165
])
AS_IF([test "x$enable_compile_warnings" = "xerror"],[
    NICE_ADD_FLAG([-Werror])
])
166

167 168 169 170 171 172 173 174 175 176 177
#
# 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
178

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

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

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

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

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

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

		with_gstreamer=no
		])
222
])
223

224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243
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
		])
])

244
AC_SUBST(gstplugindir)
245
AC_SUBST(gstplugin010dir)
246

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

250 251
GUPNP_IGD_REQUIRED=0.1.2

Youness Alaoui's avatar
Youness Alaoui committed
252
AC_ARG_ENABLE([gupnp],
253
        AS_HELP_STRING([--disable-gupnp],[Disable GUPnP IGD support]),
Youness Alaoui's avatar
Youness Alaoui committed
254 255 256 257 258 259 260 261 262
        [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
263
   PKG_CHECK_MODULES(GUPNP, gupnp-igd-1.0 >= $GUPNP_IGD_REQUIRED,
Youness Alaoui's avatar
Youness Alaoui committed
264 265 266 267
    [ HAVE_GUPNP=yes ],
    [ HAVE_GUPNP=no ])
fi
if test "x$WANT_GUPNP" = "xyes" && test "x$HAVE_GUPNP" = "xno"; then
268
   AC_MSG_ERROR(Requested GUPnP IGD, but it is not available)
Youness Alaoui's avatar
Youness Alaoui committed
269 270 271 272 273 274 275 276
fi

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

AC_SUBST(HAVE_GUPNP)

277 278 279 280 281 282 283 284 285 286 287 288
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)

Apostolos Syropoulos's avatar
Apostolos Syropoulos committed
289 290 291 292 293 294 295 296
case $host_os in
  solaris*)
    LDFLAGS="$LDFLAGS -lsocket -lnls"
    ;;
  *)
    ;;
esac

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

dafydd.harries's avatar
import  
dafydd.harries committed
305 306
AC_OUTPUT