configure.ac 54 KB
Newer Older
1
AC_PREREQ([2.63])
Dan Williams's avatar
Dan Williams committed
2

3
dnl The NM version number
4
dnl
5
dnl NOTE: When incrementing version also:
6 7 8
dnl  - add corresponding NM_VERSION_x_y_z macros in
dnl    "shared/nm-version-macros.h.in"
dnl  - update number in meson.build
9
m4_define([nm_major_version], [1])
10
m4_define([nm_minor_version], [15])
11
m4_define([nm_micro_version], [2])
12
m4_define([nm_version],
13
          [nm_major_version.nm_minor_version.nm_micro_version])
14 15

AC_INIT([NetworkManager], [nm_version],
Dan Williams's avatar
Dan Williams committed
16
        [http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager],
17
        [NetworkManager])
Dan Williams's avatar
Dan Williams committed
18

19
AC_CONFIG_HEADERS([config.h])
Michael Biebl's avatar
Michael Biebl committed
20
AC_CONFIG_MACRO_DIR([m4])
21
AC_CONFIG_AUX_DIR([build-aux])
22
AC_REQUIRE_AUX_FILE([tap-driver.sh])
Michael Biebl's avatar
Michael Biebl committed
23

24
AM_INIT_AUTOMAKE(1.12 tar-ustar no-dist-gzip dist-xz -Wno-portability)  dnl NB: Do not [quote] this parameter.
25
AM_MAINTAINER_MODE([enable])
Adrian Bunk's avatar
Adrian Bunk committed
26
AM_SILENT_RULES([yes])
27 28 29

dnl Define _SYSTEM_EXTENSIONS for various things like strcasestr()
AC_USE_SYSTEM_EXTENSIONS
Michael Biebl's avatar
Michael Biebl committed
30

31 32 33
dnl
dnl Require programs
dnl
Dan Williams's avatar
Dan Williams committed
34
AC_PROG_CC
35
AM_PROG_CC_C_O
36

37 38 39
# C++ only required if --enable-qt=yes
AC_PROG_CXX

40
AC_PROG_LN_S
41
AC_PROG_MKDIR_P
42

43 44 45
# Prefer gcc-* variants; the ones libtool would choose don't work with LTO
AC_CHECK_TOOLS(AR, [gcc-ar ar], false)
AC_CHECK_TOOLS(RANLIB, [gcc-ranlib ranlib], :)
46
AC_CHECK_TOOLS(NM, [$BINUTILS_NM gcc-nm nm])
47

48 49
dnl Initialize libtool
LT_PREREQ([2.2])
50
LT_INIT([disable-static])
51

52 53 54 55 56 57 58 59 60
dnl Version stuff
NM_MAJOR_VERSION=nm_major_version
NM_MINOR_VERSION=nm_minor_version
NM_MICRO_VERSION=nm_micro_version
NM_VERSION=nm_version
AC_SUBST(NM_MAJOR_VERSION)
AC_SUBST(NM_MINOR_VERSION)
AC_SUBST(NM_MICRO_VERSION)
AC_SUBST(NM_VERSION)
61 62

GIT_SHA_RECORD(NM_GIT_SHA)
63

64 65 66 67
dnl
dnl Checks for typedefs, structures, and compiler characteristics.
dnl
AC_TYPE_PID_T
68
AC_CHECK_SIZEOF(dev_t)
69
AC_CHECK_SIZEOF(time_t)
70
AC_CHECK_SIZEOF(pid_t)
71

72 73 74 75 76
AC_CHECK_DECLS([
	explicit_bzero],
	[], [], [[
#include <string.h>
]])
77

78 79 80 81 82 83
AC_CHECK_DECLS([
	reallocarray],
	[], [], [[
#include <malloc.h>
]])

84 85 86 87 88 89
AC_CHECK_DECLS([
	memfd_create],
	[], [], [[
#include <sys/mman.h>
]])

90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
AC_CHECK_HEADERS(sys/auxv.h)

AC_CHECK_DECLS([getrandom],
               [AC_DEFINE([USE_SYS_RANDOM_H], [1], [sys/random.h is usable])
                AC_DEFINE([HAVE_GETRANDOM], [1], [has getrandom])
               ],
               [AC_CHECK_DECLS([getrandom],
                               [AC_DEFINE([USE_SYS_RANDOM_H], [0], [sys/random.h is usable])
                                AC_DEFINE([HAVE_GETRANDOM], [1], [has getrandom])],
                               [AC_DEFINE([USE_SYS_RANDOM_H], [0], [sys/random.h is usable])
                                AC_DEFINE([HAVE_GETRANDOM], [0], [has getrandom])],
                               [[#include <linux/random.h>
                                 ]])],
               [[#include <sys/random.h>
                 ]])
105

106 107 108
dnl
dnl translation support
dnl
109 110 111 112 113
IT_PROG_INTLTOOL([0.40.0])

AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])

114 115 116 117
GETTEXT_PACKAGE=NetworkManager
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])

118 119 120 121
# Add runstatedir if not specified manually in autoconf < 2.70
AS_IF([test -z "$runstatedir"], runstatedir="$localstatedir/run")
AC_SUBST(runstatedir)

122
# NetworkManager paths
123 124 125 126 127 128
AC_SUBST(nmbinary, '${sbindir}'/$PACKAGE, [NetworkManager binary executable])
AC_SUBST(nmconfdir, '${sysconfdir}'/$PACKAGE, [NetworkManager configuration directory])
AC_SUBST(nmlibdir, '${prefix}'/lib/$PACKAGE, [NetworkManager library directory])
AC_SUBST(nmdatadir, '${datadir}'/$PACKAGE, [NetworkManager shared data directory])
AC_SUBST(nmstatedir, '${localstatedir}'/lib/$PACKAGE, [NetworkManager persistent state directory])
AC_SUBST(nmrundir, '${runstatedir}'/$PACKAGE, [NetworkManager runtime state directory])
129

130 131 132
AC_GNU_SOURCE
AC_CHECK_FUNCS([__secure_getenv secure_getenv])

133
# Alternative configuration plugins
134
AC_ARG_ENABLE(config-plugin-ibft, AS_HELP_STRING([--enable-config-plugin-ibft], [enable ibft configuration plugin]))
135 136 137
AC_ARG_ENABLE(ifcfg-rh, AS_HELP_STRING([--enable-ifcfg-rh], [enable ifcfg-rh configuration plugin (Fedora/RHEL)]))
AC_ARG_ENABLE(ifupdown, AS_HELP_STRING([--enable-ifupdown], [enable ifupdown configuration plugin (Debian/Ubuntu)]))
# Default alternative plugins by distribution
138 139
AS_IF([test -z "$enable_ifcfg_rh" -a -d /etc/sysconfig/network-scripts], enable_ifcfg_rh=yes)
AS_IF([test -z "$enable_ifupdown" -a -f /etc/debian_version],            enable_ifupdown=yes)
140 141 142
# Otherwise plugins default to "no"
AS_IF([test -z "$enable_ifcfg_rh"], enable_ifcfg_rh=no)
AS_IF([test -z "$enable_ifupdown"], enable_ifupdown=no)
143 144
# Disable obsolete ibft plugin by default
AS_IF([test -z "$enable_config_plugin_ibft"], enable_config_plugin_ibft="no")
145
# Create automake conditionals
146
AM_CONDITIONAL(CONFIG_PLUGIN_IBFT, test "$enable_config_plugin_ibft" = "yes")
147 148
AM_CONDITIONAL(CONFIG_PLUGIN_IFCFG_RH, test "$enable_ifcfg_rh" = "yes")
AM_CONDITIONAL(CONFIG_PLUGIN_IFUPDOWN, test "$enable_ifupdown" = "yes")
149

150 151 152 153
AC_ARG_WITH(config-plugins-default,
            AS_HELP_STRING([--with-config-plugins-default=PLUGINS],
                           [Default configuration option for main.plugins setting, used as fallback if the configuration option is unset]),
            [config_plugins_default="$withval"], [config_plugins_default=""])
154
if test -z "$config_plugins_default" -o "$config_plugins_default" = no; then
155 156 157 158 159
	config_plugins_default=''
	test "$enable_ifcfg_rh" = "yes"           && config_plugins_default="$config_plugins_default,ifcfg-rh"
	test "$enable_ifupdown" = "yes"           && config_plugins_default="$config_plugins_default,ifupdown"
	test "$enable_config_plugin_ibft" = "yes" && config_plugins_default="$config_plugins_default,ibft"
	config_plugins_default="${config_plugins_default#,}"
160
fi
161 162 163 164 165

test "$enable_ifcfg_rh" = "yes"           && distro_plugins="$distro_plugins,ifcfg-rh"
test "$enable_ifupdown" = "yes"           && distro_plugins="$distro_plugins,ifupdown"
distro_plugins="${distro_plugins#,}"

166
AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_MAIN_PLUGINS, "$config_plugins_default", [Default configuration option for main.plugins setting])
167 168 169 170 171
if test "${enable_config_plugin_ibft}" = yes; then
	AC_DEFINE(WITH_SETTINGS_PLUGIN_IBFT, 1, [Whether compilation of ibft setting plugin is enabled])
else
	AC_DEFINE(WITH_SETTINGS_PLUGIN_IBFT, 0, [Whether compilation of ibft setting plugin is enabled])
fi
172

173
if test "$enable_ifcfg_rh" = "yes"; then
174
	DISTRO_NETWORK_SERVICE=network.service
175 176 177
fi
AC_SUBST(DISTRO_NETWORK_SERVICE)

178 179
# Code coverage
GNOME_CODE_COVERAGE
180

181 182 183
dnl
dnl Distribution version string
dnl
184 185 186
AC_ARG_WITH(dist-version,
            AS_HELP_STRING([--with-dist-version=<NM-distribution-version>],
                           [Define the NM''s distribution version string]),
187 188 189
            ac_distver=$withval, ac_distver=$NM_VERSION)
AC_DEFINE_UNQUOTED(NM_DIST_VERSION, "$ac_distver", [Define the distribution version string])
AC_SUBST(NM_DIST_VERSION, "$ac_distver")
190

191 192 193 194 195 196 197 198 199
AC_ARG_ENABLE(wifi, AS_HELP_STRING([--enable-wifi], [enable Wi-Fi support]))
if test "${enable_wifi}" != "no"; then
	enable_wifi='yes'
	AC_DEFINE(WITH_WIFI, 1, [Define if you have Wi-Fi support])
else
	AC_DEFINE(WITH_WIFI, 0, [Define if you have Wi-Fi support])
fi
AM_CONDITIONAL(WITH_WIFI, test "${enable_wifi}" = "yes")

200 201 202
dnl
dnl Default to using WEXT but allow it to be disabled
dnl
203 204 205 206
AC_ARG_WITH(wext,
            AS_HELP_STRING([--with-wext=yes],
                           [Enable or disable Linux Wireless Extensions]),
            ac_with_wext=$withval, ac_with_wext="$enable_wifi")
207 208 209
if test "$ac_with_wext" != 'no'; then
	ac_with_wext='yes'
fi
210
if test x"$ac_with_wext" = x"yes"; then
211 212 213
	if test "$enable_wifi" != "yes"; then
		AC_MSG_ERROR(Enabling WEXT support and disabling Wi-Fi makes no sense)
	fi
214 215 216
	AC_DEFINE(HAVE_WEXT, 1, [Define if you have Linux Wireless Extensions support])
else
	AC_DEFINE(HAVE_WEXT, 0, [Define if you have Linux Wireless Extensions support])
217
fi
218
AM_CONDITIONAL(WITH_WEXT, test x"${ac_with_wext}" = x"yes")
219

220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
dnl
dnl Default to using wpa_supplicant but allow IWD as wifi backend
dnl
AC_ARG_WITH(iwd,
            AS_HELP_STRING([--with-iwd=yes],
                           [Support IWD as wifi-backend in addition to wpa_supplicant (experimental)]),
            ac_with_iwd=$withval, ac_with_iwd="no")
if test "$ac_with_iwd" != 'no'; then
	ac_with_iwd='yes'
fi
if test x"$ac_with_iwd" = x"yes"; then
	if test "$enable_wifi" != "yes"; then
		AC_MSG_ERROR(Enabling IWD support and disabling Wi-Fi makes no sense)
	fi
	AC_DEFINE(WITH_IWD, 1, [Define to compile with the IWD wifi-backend])
else
	AC_DEFINE(WITH_IWD, 0, [Define to compile without the IWD wifi-backend])
fi
AM_CONDITIONAL(WITH_IWD, test x"${ac_with_iwd}" = x"yes")

240 241 242
dnl
dnl Checks for libdl - on certain platforms its part of libc
dnl
243 244
AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=])
AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen")
245

246
PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0],
247 248
                  [AC_SUBST(LOG_DRIVER, '$(top_srcdir)/build-aux/tap-driver.sh')
                   AC_SUBST(AM_TESTS_FD_REDIRECT, '--tap')],
Lubomir Rintel's avatar
Lubomir Rintel committed
249
                  [PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.40 gmodule-2.0)
250
                   AC_SUBST(LOG_DRIVER, '$(top_srcdir)/build-aux/test-driver')])
251

Lubomir Rintel's avatar
Lubomir Rintel committed
252
GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40"
253

254 255 256
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)

257 258
GOBJECT_INTROSPECTION_CHECK([0.9.6])

259
AC_ARG_WITH(libnm-glib,
260 261
            AS_HELP_STRING([--with-libnm-glib],
                           [build legacy libraries]))
262
fake_typelibs=no
263
if test "$with_libnm_glib" == "yes"; then
264 265
	PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.94, :,
	                  [AC_MSG_FAILURE([$DBUS_PKG_ERRORS
266

267 268 269
Configure with --without-libnm-glib if you do not need the legacy libraries])
	                  ])

270 271 272 273 274 275
	if test "${found_introspection}" = "yes"; then
		AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
		if ! test x"$GLIB_COMPILE_RESOURCES" = x""; then
			fake_typelibs=yes
		fi
	fi
276 277
else
	with_libnm_glib=no
278
fi
279
AM_CONDITIONAL(WITH_LEGACY_LIBRARIES, test "$with_libnm_glib" == "yes")
280 281 282 283 284 285
if test "$fake_typelibs" = "yes"; then
	AC_DEFINE(WITH_FAKE_TYPELIBS, 1, [Define for libnm to prevent GIR from loading libnm-glib])
else
	AC_DEFINE(WITH_FAKE_TYPELIBS, 0, [Define for libnm to prevent GIR from loading libnm-glib])
fi
AM_CONDITIONAL(WITH_FAKE_TYPELIBS, test "${fake_typelibs}" = "yes")
286

287
PKG_CHECK_MODULES([LIBUDEV], [libudev >= 175])
288

289
# Qt4
290
PKG_CHECK_MODULES(QT, [QtCore >= 4 QtDBus QtNetwork], [have_qt=yes],[have_qt=no])
291 292 293
AC_ARG_ENABLE(qt,
              AS_HELP_STRING([--enable-qt], [enable Qt examples]),
              [enable_qt=${enableval}], [enable_qt=${have_qt}])
294 295 296 297
if (test "${enable_qt}" = "yes"); then
	if test x"$have_qt" = x"no"; then
		AC_MSG_ERROR(Qt development headers are required)
	fi
298
	# Check for moc-qt4 and if not found then moc
299
	QT4_BINDIR=`$PKG_CONFIG QtCore --variable moc_location`
300
	AC_CHECK_PROGS(MOC, [moc-qt4 moc],, [$QT4_BINDIR:$PATH])
301 302 303
fi
AM_CONDITIONAL(WITH_QT, test "${enable_qt}" = "yes")

304 305 306 307
AC_ARG_WITH(udev-dir,
            AS_HELP_STRING([--with-udev-dir=DIR],
                           [Absolute path of the udev base directory. Set to 'no' not to install the udev rules]),
            [], [with_udev_dir="yes"])
308
if (test "$with_udev_dir" != 'no'); then
309
	if (test "$with_udev_dir" != 'yes' && printf '%s' "$with_udev_dir" | grep -v -q '^/'); then
310 311 312
		AC_MSG_ERROR([--with-udev-dir must be an absolute path or 'yes' or 'no'. Instead it is '$with_udev_dir'])
	fi
	if (test "$with_udev_dir" = 'yes'); then
313
		with_udev_dir="\$(prefix)/lib/udev"
314 315 316
	fi
	UDEV_DIR="$with_udev_dir"
	AC_SUBST(UDEV_DIR)
317
fi
318
AM_CONDITIONAL(WITH_UDEV_DIR, test "$with_udev_dir" != 'no')
319

320
# systemd unit support
321 322 323
AC_ARG_WITH([systemdsystemunitdir],
            AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
                           [Directory for systemd service files]))
324 325
# default location
AS_IF([test -z "$with_systemdsystemunitdir" && $PKG_CONFIG systemd],
326
      with_systemdsystemunitdir="\$(prefix)/lib/systemd/system")
327 328 329 330
AS_IF([test -z "$with_systemdsystemunitdir"], with_systemdsystemunitdir=no)
# add conditional and subst
AM_CONDITIONAL(HAVE_SYSTEMD, [test "$with_systemdsystemunitdir" != no])
if test "$with_systemdsystemunitdir" != no; then
331
	AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
332 333 334
	AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd support is available])
else
	AC_DEFINE(HAVE_SYSTEMD, 0, [Define if systemd support is available])
335
fi
336

337
PKG_CHECK_MODULES(SYSTEMD_200, [systemd >= 200], [have_systemd_200=yes], [have_systemd_200=no])
338 339
AM_CONDITIONAL(HAVE_SYSTEMD_200, test "${have_systemd_200}" = "yes")

340
# Hostname persist mode
341 342 343
AC_ARG_WITH(hostname-persist,
            AS_HELP_STRING([--with-hostname-persist=default|suse|gentoo|slackware],
                           [Hostname persist method]))
344 345 346

AS_IF([test "$with_hostname_persist" = "suse"], hostname_persist=suse)
AS_IF([test "$with_hostname_persist" = "gentoo"], hostname_persist=gentoo)
347
AS_IF([test "$with_hostname_persist" = "slackware"], hostname_persist=slackware)
348 349
AS_IF([test "$with_hostname_persist" = "default"], hostname_persist=default)
# if the method was not explicitly set, try to guess it from the enabled plugins
350
AS_IF([test -z "$hostname_persist" -a -f /etc/SuSE-release], hostname_persist=suse)
351
AS_IF([test -z "$hostname_persist" -a -f /etc/gentoo-release], hostname_persist=gentoo)
352
AS_IF([test -z "$hostname_persist" -a -f /etc/slackware-version], hostname_persist=slackware)
353 354 355 356 357 358
AS_IF([test -z "$hostname_persist"], hostname_persist=default)

if test "$hostname_persist" = suse; then
	AC_DEFINE(HOSTNAME_PERSIST_SUSE, 1, [Enable SuSE hostname persist method])
elif test "$hostname_persist" = gentoo; then
	AC_DEFINE(HOSTNAME_PERSIST_GENTOO, 1, [Enable Gentoo hostname persist method])
359 360
elif test "$hostname_persist" = slackware; then
	AC_DEFINE(HOSTNAME_PERSIST_SLACKWARE, 1, [Enable Slackware hostname persist method])
361 362
fi

363
PKG_CHECK_MODULES(LIBSYSTEMD, [libsystemd >= 209],
364 365
                  [AC_DEFINE([HAVE_LIBSYSTEMD], 1, [Define to 1 if libsystemd is available])],
                  [AC_DEFINE([HAVE_LIBSYSTEMD], 0, [Define to 1 if libsystemd is available])])
366

367 368 369
AC_ARG_WITH(systemd-journal,
            AS_HELP_STRING([--with-systemd-journal=yes|no],
                           [Use systemd journal for logging]))
370 371
have_systemd_journal=no
if test "$with_systemd_journal" != "no"; then
372
	PKG_CHECK_MODULES(SYSTEMD_JOURNAL, [libsystemd >= 209], [have_systemd_journal=yes],
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388
	                  [PKG_CHECK_MODULES(SYSTEMD_JOURNAL,
	                                     [libsystemd-journal],
	                                     [have_systemd_journal=yes],
	                                     [have_systemd_journal=no])])
	if test "$have_systemd_journal" != "yes"; then
		if test "$with_systemd_journal" = "yes"; then
			AC_MSG_ERROR([Missing systemd-journald support])
		fi
	fi
fi
if test "$have_systemd_journal" = "yes"; then
	AC_DEFINE([SYSTEMD_JOURNAL], 1, [Define to 1 if libsystemd-journald is available])
else
	AC_DEFINE([SYSTEMD_JOURNAL], 0, [Define to 1 if libsystemd-journald is available])
fi

389 390 391 392 393
AC_ARG_WITH(config-logging-backend-default,
            AS_HELP_STRING([--with-config-logging-backend-default=backend],
                           [Default value for logging.backend]),
            nm_config_logging_backend_default="$withval",
            nm_config_logging_backend_default="")
394

395 396
if test "$nm_config_logging_backend_default" != 'syslog' \
     -a "$nm_config_logging_backend_default" != 'journal'; then
397 398 399 400 401 402
	# unknown backend. Reset to default. Silently accept the invalid value to
	# be future proof.
	nm_config_logging_backend_default=''
fi
if test "$nm_config_logging_backend_default" = ""; then
	if test "$have_systemd_journal" = "yes"; then
403
		nm_config_logging_backend_default='journal'
404 405 406 407
	else
		nm_config_logging_backend_default='syslog'
	fi
fi
408 409 410
AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_LOGGING_BACKEND, "$nm_config_logging_backend_default", [Default configuration option for logging.backend])
NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT="$nm_config_logging_backend_default"
AC_SUBST(NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT)
411

412
# Session tracking support
413 414 415 416 417 418 419 420 421
AC_ARG_WITH(systemd-logind,
            AS_HELP_STRING([--with-systemd-logind=yes|no],
                           [Support systemd session tracking]))
AC_ARG_WITH(consolekit,
            AS_HELP_STRING([--with-consolekit=yes|no],
                           [Support consolekit session tracking]))
AC_ARG_WITH(session-tracking,
            AS_HELP_STRING([--with-session-tracking=systemd|elogind|consolekit|no],
                           [Compatibility option to choose one session tracking module]))
422
# backwards compatibility
Sven Eden's avatar
Sven Eden committed
423 424 425 426 427 428
AS_IF([test "$with_session_tracking" = "ck"], [use_consolekit="yes" use_systemd_logind="no" use_elogind="no"])
AS_IF([test "$with_session_tracking" = "consolekit"], [use_consolekit="yes" use_systemd_logind="no" use_elogind="no"])
AS_IF([test "$with_session_tracking" = "systemd"], [use_consolekit="no" use_systemd_logind="yes" use_elogind="no"])
AS_IF([test "$with_session_tracking" = "elogind"], [use_consolekit="no" use_systemd_logind="no" use_elogind="yes"])
AS_IF([test "$with_session_tracking" = "no"], [use_consolekit="no" use_systemd_logind="no" use_elogind="no"])
AS_IF([test "$with_session_tracking" = "none"], [use_consolekit="no" use_systemd_logind="no" use_elogind="no"])
429 430 431 432
# current options
AS_IF([test -n "$with_systemd_logind" ], [use_systemd_logind="$with_systemd_logind"])
AS_IF([test -n "$with_consolekit" ], [use_consolekit="$with_consolekit"])
# defaults
433
AS_IF([test -z "$use_systemd_logind"], [use_systemd_logind="auto"])
434
AS_IF([test -z "$use_consolekit"], [use_consolekit="yes"])
435 436
# output
session_tracking=
437
if test "$use_systemd_logind" = "yes" -o "$use_systemd_logind" = "auto"; then
438
	PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd], [have_systemd_logind=yes], [PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login], [have_systemd_logind=yes], [have_systemd_logind=no])])
439
else
440
	have_systemd_logind=no
441 442
fi
if test "$use_systemd_logind" = "yes" -a "$have_systemd_logind" = "no"; then
443
	AC_MSG_ERROR([You must have libsystemd installed to build with systemd-logind support.])
444 445
fi
if test "$have_systemd_logind" = "yes"; then
446 447
	AC_DEFINE([SESSION_TRACKING_SYSTEMD], 1, [Define to 1 if libsystemd-login is available])
	session_tracking="$session_tracking, systemd-logind"
448 449
else
	AC_DEFINE([SESSION_TRACKING_SYSTEMD], 0, [Define to 1 if libsystemd-login is available])
450
fi
Sven Eden's avatar
Sven Eden committed
451

452
if test "$use_elogind" = "yes" -a "$have_systemd_logind" = "yes"; then
453
	AC_MSG_ERROR([Cannot enable systemd-logind together with elogind.])
454 455
fi
if test "$use_elogind" = "yes"; then
456
	PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libelogind], [have_elogind=yes], [PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libelogind], [have_elogind=yes], [have_elogind=no])])
Sven Eden's avatar
Sven Eden committed
457
else
458
	have_elogind=no
Sven Eden's avatar
Sven Eden committed
459 460
fi
if test "$use_elogind" = "yes" -a "$have_elogind" = "no"; then
461
	AC_MSG_ERROR([You must have libelogind installed to build with elogind support.])
Sven Eden's avatar
Sven Eden committed
462 463
fi
if test "$have_elogind" = "yes"; then
464 465
	AC_DEFINE([SESSION_TRACKING_ELOGIND], 1, [Define to 1 if libelogin is available])
	session_tracking="$session_tracking, elogind"
466 467
else
	AC_DEFINE([SESSION_TRACKING_ELOGIND], 0, [Define to 1 if libelogin is available])
Sven Eden's avatar
Sven Eden committed
468 469
fi

470
if test "$use_consolekit" = "yes"; then
471 472
	AC_DEFINE([SESSION_TRACKING_CONSOLEKIT], 1, [Define to 1 if ConsoleKit is available])
	session_tracking="$session_tracking, consolekit"
473 474
else
	AC_DEFINE([SESSION_TRACKING_CONSOLEKIT], 0, [Define to 1 if ConsoleKit is available])
475
fi
476
session_tracking="$(printf '%s' "${session_tracking}" | sed 's/^, //')"
477

478 479 480
AC_ARG_WITH(suspend-resume,
            AS_HELP_STRING([--with-suspend-resume=upower|systemd|elogind|consolekit],
                           [Build NetworkManager with specific suspend/resume support]))
481
if test "z$with_suspend_resume" = "z"; then
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502
	PKG_CHECK_EXISTS([libsystemd >= 209], [have_systemd_inhibit=yes],
	                 [PKG_CHECK_EXISTS([libsystemd-login >= 183], [have_systemd_inhibit=yes], [have_systemd_inhibit=no])])
	if test "z${have_systemd_inhibit}" = "zyes"; then
		# Use systemd if it's new enough
		with_suspend_resume="systemd"
	else
		PKG_CHECK_EXISTS([libelogind >= 219], [have_elogind_inhibit=yes],
		                 [PKG_CHECK_EXISTS([libelogind >= 219], [have_elogind_inhibit=yes], [have_elogind_inhibit=no])])
		if test "z${have_elogind_inhibit}" = "zyes"; then
			# Use elogind if it's new enough
			with_suspend_resume="elogind"
		else
			if test "$use_consolekit" = "yes"; then
				# Use consolekit suspend if session tracking is consolekit
				with_suspend_resume="consolekit"
			else
				# Fall back to upower
				with_suspend_resume="upower"
			fi
		fi
	fi
Sven Eden's avatar
Sven Eden committed
503
fi
504 505

case $with_suspend_resume in
506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
	upower)
		AC_DEFINE([SUSPEND_RESUME_UPOWER], 1, [Define to 1 to use UPower suspend api])
		;;
	systemd)
		PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd >= 209],,
		                  [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183])])
		AC_DEFINE([SUSPEND_RESUME_SYSTEMD], 1, [Define to 1 to use systemd suspend api])
		;;
	elogind)
		PKG_CHECK_MODULES(ELOGIND_INHIBIT, [libelogind >= 219],,
		                  [PKG_CHECK_MODULES(ELOGIND_INHIBIT, [libelogind >= 219])])
		AC_DEFINE([SUSPEND_RESUME_ELOGIND], 1, [Define to 1 to use elogind suspend api])
		;;
	consolekit)
		AC_DEFINE([SUSPEND_RESUME_CONSOLEKIT], 1, [Define to 1 to use ConsoleKit2 suspend api])
		;;
	*)
		AC_MSG_ERROR(--with-suspend-resume must be one of [upower, systemd, elogind, consolekit])
		;;
525 526
esac

527 528
# eBPF support
AC_ARG_WITH(ebpf,
529 530 531 532 533 534 535 536 537
            AS_HELP_STRING([--with-ebpf=yes|no|auto], [Build with eBPF support (default: auto)]),
            [], [with_ebpf=auto])
if test "$with_ebpf" = "yes" -o "$with_ebpf" = "auto"; then
	AC_CHECK_HEADER(linux/bpf.h, [have_ebpf=yes], [have_ebpf=no])
else
	have_ebpf=no
fi
if test "$with_ebpf" = "yes" -a "$have_ebpf" = "no"; then
	AC_MSG_ERROR([--with-ebpf=yes requires eBPF kernel header])
538
fi
539
AM_CONDITIONAL(WITH_EBPF, test "${have_ebpf}" = "yes")
540

541
# SELinux support
542 543 544
AC_ARG_WITH(selinux,
            AS_HELP_STRING([--with-selinux=yes|no|auto], [Build with SELinux (default: auto)]),
            [], [with_selinux=auto])
545
if test "$with_selinux" = "yes" -o "$with_selinux" = "auto"; then
546
	PKG_CHECK_MODULES(SELINUX, libselinux, [have_selinux=yes], [have_selinux=no])
547
else
548
	have_selinux=no
549 550
fi
if test "$with_selinux" = "yes" -a "$have_selinux" = "no"; then
551
	AC_MSG_ERROR([You must have libselinux installed to build --with-selinux=yes.])
552 553
fi
if test "$have_selinux" = "yes"; then
554
	AC_DEFINE(HAVE_SELINUX, 1, [Define if you have SELinux support])
555
else
556
	AC_DEFINE(HAVE_SELINUX, 0, [Define if you have SELinux support])
557 558
fi

Beniamino Galvani's avatar
Beniamino Galvani committed
559
# libaudit support
560
AC_ARG_WITH(libaudit, AS_HELP_STRING([--with-libaudit=yes|yes-disabled-by-default|no|auto], [Build with audit daemon support (default: auto). yes-disabled-by-default enables support, but disables it unless explicitly configured via NetworkManager.conf]),,[with_libaudit=auto])
561
if test "$with_libaudit" = "yes" -o "$with_libaudit" = "yes-disabled-by-default" -o "$with_libaudit" = "auto"; then
562 563 564 565
	PKG_CHECK_MODULES(LIBAUDIT, audit, [have_libaudit=yes], [have_libaudit=no])
	if test "$with_libaudit" != "auto" -a "$have_libaudit" = "no"; then
		AC_MSG_ERROR([You must have libaudit installed to build --with-libaudit=$with_libaudit.])
	fi
Beniamino Galvani's avatar
Beniamino Galvani committed
566
else
567
	have_libaudit=no
Beniamino Galvani's avatar
Beniamino Galvani committed
568 569
fi
if test "$have_libaudit" = "yes"; then
570 571 572 573 574 575 576 577
	AC_DEFINE(HAVE_LIBAUDIT, 1, [Define if you have libaudit support])
	if test "$with_libaudit" = "yes-disabled-by-default"; then
		AC_DEFINE(NM_CONFIG_DEFAULT_LOGGING_AUDIT, "false", [The default value of the logging.audit configuration option])
		NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT='false'
	else
		AC_DEFINE(NM_CONFIG_DEFAULT_LOGGING_AUDIT, "true",  [The default value of the logging.audit configuration option])
		NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT='true'
	fi
Beniamino Galvani's avatar
Beniamino Galvani committed
578
else
579 580 581
	AC_DEFINE(HAVE_LIBAUDIT, 0, [Define if you have libaudit support])
	AC_DEFINE(NM_CONFIG_DEFAULT_LOGGING_AUDIT, "false", [The default value of the logging.audit configuration option])
	NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT='false'
Beniamino Galvani's avatar
Beniamino Galvani committed
582
fi
583
AC_SUBST(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)
Beniamino Galvani's avatar
Beniamino Galvani committed
584

585
# uuid library
586 587
PKG_CHECK_MODULES(UUID, uuid)

588
# Teamd control checks
589

Lubomir Rintel's avatar
Lubomir Rintel committed
590
PKG_CHECK_MODULES(JANSSON, [jansson >= 2.5], [have_jansson=yes], [have_jansson=no])
591 592
if test "$have_jansson" = "yes"; then
	AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
593 594 595 596 597 598 599 600 601

	AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
	JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
	JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'`

	if test "$JANSSON_SONAME" = ""; then
		AC_MSG_ERROR(Unable to locate the Jansson library)
	fi
	AC_DEFINE_UNQUOTED(JANSSON_SONAME, "$JANSSON_SONAME", [Define to path to the Jansson shared library])
602 603 604 605 606
else
	AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled])
fi
AM_CONDITIONAL(WITH_JANSSON, test "${have_jansson}" = "yes")

607
PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], [have_teamdctl=yes],[have_teamdctl=no])
608 609 610 611 612 613
if test "$have_jansson" = "yes" -a "$have_teamdctl" = "yes"; then
	have_team_prereq=yes
else
	have_team_prereq=no
fi

614 615 616 617
AC_ARG_ENABLE(teamdctl,
              AS_HELP_STRING([--enable-teamdctl], [enable Teamd control support]),
              [enable_teamdctl=${enableval}], [enable_teamdctl=${have_team_prereq}])
if (test "${enable_teamdctl}" = "yes"); then
618 619 620 621 622
	if test "$have_teamdctl" = "no"; then
		AC_MSG_ERROR(Libteamdctl is required for team support)
	fi
	if test "$have_jansson" = "no"; then
		AC_MSG_ERROR(Jansson is required for team support)
623 624 625
	fi
	# temporary bug workaround
	LIBTEAMDCTL_CFLAGS=`echo $LIBTEAMDCTL_CFLAGS | sed -e 's:/teamdctl.h::'`
626 627 628 629 630 631 632 633 634 635 636 637 638 639 640
fi
AM_CONDITIONAL(WITH_TEAMDCTL, test "${enable_teamdctl}" = "yes")

# Jansson for team configuration validation
AC_ARG_ENABLE(json-validation,
              AS_HELP_STRING([--enable-json-validation], [Enable JSON validation in libnm]),
              [enable_json_validation=${enableval}],
              [enable_json_validation=${have_jansson}])
if (test "${enable_json_validation}" == "no"); then
	AC_DEFINE(WITH_JSON_VALIDATION, 0, [Define if JSON validation in libnm is enabled])
else
	if test "$have_jansson" = "no"; then
		AC_MSG_ERROR([jansson is needed for team configuration validation. Use --disable-json-validation to build without it.])
	fi
		AC_DEFINE(WITH_JSON_VALIDATION, 1, [Define if JSON validation in libnm is enabled])
641
fi
642
AM_CONDITIONAL(WITH_JSON_VALIDATION, test "${enable_json_validation}" != "no")
643

644 645
# we usually compile with polkit support. --enable-polkit=yes|no only sets the
# default configuration for main.auth-polkit. User can always enable/disable polkit
luz.paz's avatar
luz.paz committed
646
# authorization via config.
647
AC_ARG_ENABLE(polkit,
648 649
              AS_HELP_STRING([--enable-polkit=yes|no],
                             [set default value for auth-polkit configuration option. This value can be overwritten by NM configuration. 'disabled' is an alias for 'no']),
650
              [enable_polkit=${enableval}], [enable_polkit=yes])
651
if (test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled"); then
652
	enable_polkit=true
653 654
	AC_DEFINE(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT, "true", [The default value of the auth-polkit configuration option])
	AC_SUBST(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT, true)
655
else
656
	enable_polkit=false
657 658
	AC_DEFINE(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT, "false", [The default value of the auth-polkit configuration option])
	AC_SUBST(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT, false)
659
fi
660

661
PKG_CHECK_MODULES(POLKIT, [polkit-agent-1 >= 0.97], [have_pk_agent=yes],[have_pk_agent=no])
662 663 664
AC_ARG_ENABLE(polkit-agent,
              AS_HELP_STRING([--enable-polkit-agent], [enable polkit agent for clients]),
              [enable_polkit_agent=${enableval}], [enable_polkit_agent=${have_pk_agent}])
665 666 667 668 669 670 671 672 673 674
if (test "${enable_polkit_agent}" = "yes"); then
	if test x"$have_pk_agent" = x"no"; then
		AC_MSG_ERROR(Polkit agent is required)
	fi
	AC_DEFINE(WITH_POLKIT_AGENT, 1, [Define if you have polkit agent])
else
	AC_DEFINE(WITH_POLKIT_AGENT, 0, [Define if you have polkit agent])
fi
AM_CONDITIONAL(WITH_POLKIT_AGENT, test "${enable_polkit_agent}" = "yes")

675
AC_ARG_ENABLE(modify-system, AS_HELP_STRING([--enable-modify-system], [Allow users to modify system connections]))
676 677 678 679 680 681 682
if test "${enable_modify_system}" = "yes"; then
	NM_MODIFY_SYSTEM_POLICY="yes"
else
	NM_MODIFY_SYSTEM_POLICY="auth_admin_keep"
fi
AC_SUBST(NM_MODIFY_SYSTEM_POLICY)

683 684 685 686 687 688 689 690 691 692 693 694
PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.12], [have_crypto_gnutls=yes], [have_crypto_gnutls=no])
PKG_CHECK_MODULES(NSS, [nss], [have_crypto_nss=yes], [have_crypto_nss=yes])
if test "${have_crypto_nss}" = "yes"; then
	# Work around a pkg-config bug (fdo #29801) where exists != usable
	FOO=`$PKG_CONFIG --cflags --libs nss`
	if test x"$?" != "x0"; then
		have_crypto_nss=no
	fi
fi
AM_CONDITIONAL(HAVE_CRYPTO_GNUTLS, test "${have_crypto_gnutls}" = 'yes')
AM_CONDITIONAL(HAVE_CRYPTO_NSS, test "${have_crypto_nss}" = 'yes')

695 696 697
AC_ARG_WITH(crypto,
            AS_HELP_STRING([--with-crypto=nss|gnutls],
                           [Cryptography library to use for certificate and key operations]),
698 699 700
            with_crypto=$withval,
            with_crypto=nss)
if test "$with_crypto" = 'nss'; then
701 702
	if test "${have_crypto_nss}" != "yes"; then
		AC_MSG_ERROR([No usable NSS found for --with-crypto=nss])
703
	fi
704
elif test "$with_crypto" = 'gnutls'; then
705 706 707
	if test "${have_crypto_gnutls}" != "yes"; then
		AC_MSG_ERROR([No usable gnutls found for --with-crypto=gnutls])
	fi
708
else
709
	AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and crypto operations])
710
fi
711 712
AM_CONDITIONAL(WITH_NSS, test "$with_crypto" = 'nss')
AM_CONDITIONAL(WITH_GNUTLS, test "$with_crypto" = 'gnutls')
713

714 715
GLIB_MAKEFILE='$(top_srcdir)/Makefile.glib'
AC_SUBST(GLIB_MAKEFILE)
716
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
717
AC_SUBST(GLIB_MKENUMS)
718

719 720
AC_ARG_WITH(dbus-sys-dir,
            AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is]))
Bryan W. Clark's avatar
Bryan W. Clark committed
721

722
if test -n "$with_dbus_sys_dir" ; then
723
	DBUS_SYS_DIR="$with_dbus_sys_dir"
Bryan W. Clark's avatar
Bryan W. Clark committed
724
else
725
	DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d"
Bryan W. Clark's avatar
Bryan W. Clark committed
726 727 728
fi
AC_SUBST(DBUS_SYS_DIR)

729
# pppd
730 731 732
AC_ARG_ENABLE(ppp,
              AS_HELP_STRING([--enable-ppp], [enable PPP/PPPoE support]),
              [enable_ppp=${enableval}], [enable_ppp=yes])
733 734
if (test "${enable_ppp}" = "yes"); then
	AC_CHECK_HEADERS(pppd/pppd.h,,
735
	                 AC_MSG_ERROR("couldn't find pppd.h. pppd development headers are required."))
736 737

	AC_DEFINE(WITH_PPP, 1, [Define if you have PPP support])
738 739
else
	AC_DEFINE(WITH_PPP, 0, [Define if you have PPP support])
740 741
fi
AM_CONDITIONAL(WITH_PPP, test "${enable_ppp}" = "yes")
742

743 744
AC_ARG_WITH([pppd-plugin-dir],
            AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
745 746 747 748

if test -n "$with_pppd_plugin_dir" ; then
	PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
else
749
	PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5"
750 751
fi
AC_SUBST(PPPD_PLUGIN_DIR)
752

753 754
AC_ARG_WITH(pppd, AS_HELP_STRING([--with-pppd=/path/to/pppd], [path to pppd binary]))
if test "x${with_pppd}" = x; then
755
	AC_PATH_PROG(PPPD_PATH, pppd, [], $PATH:/sbin:/usr/sbin)
756
else
757
	PPPD_PATH="$with_pppd"
758 759 760 761
fi
AC_DEFINE_UNQUOTED(PPPD_PATH, "$PPPD_PATH", [Define to path of pppd binary])
AC_SUBST(PPPD_PATH)

762
# ModemManager1 with libmm-glib
763 764 765 766
AC_ARG_WITH(modem-manager-1,
            AS_HELP_STRING([--with-modem-manager-1],
                           [Enable new ModemManager1 interface support]),
            [], [with_modem_manager_1=auto])
767
if (test "${with_modem_manager_1}" != "no"); then
768 769 770 771 772 773 774 775 776 777 778 779 780 781
	PKG_CHECK_MODULES(MM_GLIB,
	                  [mm-glib >= 0.7.991],
	                  [have_libmm_glib=yes],
	                  [have_libmm_glib=no])

	if (test "${have_libmm_glib}" = "no"); then
		if (test "${with_modem_manager_1}" = "yes"); then
			AC_MSG_ERROR([Couldn't find libmm-glib])
		else
			with_modem_manager_1="no"
		fi
	else
		with_modem_manager_1="yes"
	fi
782 783
fi
AM_CONDITIONAL(WITH_MODEM_MANAGER_1, test "${with_modem_manager_1}" = "yes")
784

785 786
# Bluez5 DUN support
PKG_CHECK_MODULES(BLUEZ5, [bluez >= 5], [have_bluez5=yes],[have_bluez5=no])
787 788 789
AC_ARG_ENABLE(bluez5-dun,
              AS_HELP_STRING([--enable-bluez5-dun], [enable Bluez5 DUN support]),
              [enable_bluez5_dun=${enableval}], [enable_bluez5_dun=${have_bluez5}])
790 791 792 793 794 795
if (test "${enable_bluez5_dun}" = "yes"); then
	if test x"$have_bluez5" = x"no"; then
		AC_MSG_ERROR(Bluez 5.x development headers are required)
	fi
	AC_DEFINE(WITH_BLUEZ5_DUN, 1, [Define if you have Bluez 5 libraries])
else
796
	AC_DEFINE(WITH_BLUEZ5_DUN, 0, [Define if you have Bluez 5 libraries])
797 798 799
fi
AM_CONDITIONAL(WITH_BLUEZ5_DUN, test "${enable_bluez5_dun}" = "yes")

800
# OFONO
801 802 803
AC_ARG_WITH(ofono,
            AS_HELP_STRING([--with-ofono], [Enable oFono support (experimental)]),
            [], [with_ofono=no])
804
if (test "${with_ofono}" = "yes"); then
805
	AC_DEFINE(WITH_OFONO, 1, [Define if you have oFono support (experimental)])
806
else
807
	AC_DEFINE(WITH_OFONO, 0, [Define if you have oFono support (experimental)])
808 809 810
fi
AM_CONDITIONAL(WITH_OFONO, test "${with_ofono}" = "yes")

811 812 813 814 815 816 817 818 819 820 821 822 823 824 825
# DHCP client support with dhcpcanon
AC_ARG_WITH([dhcpcanon],
            AS_HELP_STRING([--with-dhcpcanon=yes|no|path], [Enable dhcpcanon support (experimental)]))
if test "$with_dhcpcanon" != "no"; then
    with_dhcpcanon_="$with_dhcpcanon"
    AC_PATH_PROGS(with_dhcpcanon, dhcpcanon, no, /sbin:/usr/sbin:/usr/local/sbin:/usr/bin:/usr/local/bin)
    if test "$with_dhcpcanon" == "no"; then
        if test "$with_dhcpcanon_" == yes; then
            AC_MSG_WARN([dhcpcanon not found, assume path /sbin/dhcpcanon])
            with_dhcpcanon=/sbin/dhcpcanon
        fi
    fi
fi
if test "$with_dhcpcanon" != "no"; then
    AC_DEFINE(WITH_DHCPCANON, 1, [Define if you have dhcpcanon])
826
    AC_DEFINE_UNQUOTED(DHCPCANON_PATH, "$with_dhcpcanon", [Define path to dhcpcanon])
827 828 829
else
    AC_DEFINE(WITH_DHCPCANON, 0, [Define if you have dhcpcanon])
fi
830

831 832
# Open vSwitch integration
AC_ARG_ENABLE(ovs, AS_HELP_STRING([--enable-ovs], [enable Open vSwitch support]))
833 834 835 836 837 838 839 840
if test "${enable_ovs}" != "no"; then
	enable_ovs='yes'
	if test "$have_jansson" = "no"; then
		AC_MSG_ERROR(Jansson is required for ovs support)
	fi
fi
AM_CONDITIONAL(WITH_OPENVSWITCH, test "${enable_ovs}" = "yes")

841
# DHCP client support
842
AC_ARG_WITH([dhclient],
843
            AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient support]))
844 845
if test "$with_dhclient" != "no"; then
	with_dhclient_="$with_dhclient"
846
	AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin)
847 848 849 850 851
	if test "$with_dhclient" == "no"; then
		if test "$with_dhclient_" == yes; then
			AC_MSG_WARN([dhclient not found, assume path /usr/sbin/dhclient])
			with_dhclient=/usr/sbin/dhclient
		fi
852 853
	fi
fi
854 855
if test "$with_dhclient" != "no"; then
	AC_DEFINE(WITH_DHCLIENT, 1, [Define if you have dhclient])
856
	AC_DEFINE_UNQUOTED(DHCLIENT_PATH, "$with_dhclient", [Define path to dhclient])
857 858 859 860
else
	AC_DEFINE(WITH_DHCLIENT, 0, [Define if you have dhclient])
fi

861 862
AC_ARG_WITH([dhcpcd],
            AS_HELP_STRING([--with-dhcpcd=yes|no|path], [Enable dhcpcd 4.x support]))
863 864
if test "$with_dhcpcd" != "no"; then
	with_dhcpcd_="$with_dhcpcd"
865
	AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
866 867 868 869
	if test "$with_dhcpcd" == "no"; then
		if test "$with_dhcpcd_" == yes; then
			AC_MSG_WARN([dhcpcd not found, assume path /usr/sbin/dhcpcd])
			with_dhcpcd=/usr/sbin/dhcpcd
870 871 872 873
		fi
	fi
fi
if test "$with_dhcpcd" != "no"; then
874
	AC_DEFINE(WITH_DHCPCD, 1, [Define if you have dhcpcd])
875
	AC_DEFINE_UNQUOTED(DHCPCD_PATH, "$with_dhcpcd", [Define path to dhcpcd])
876
else
877
	AC_DEFINE(WITH_DHCPCD, 0, [Define if you have dhcpcd])
878 879
fi

880 881 882 883
AC_ARG_WITH(config-dhcp-default,
            AS_HELP_STRING([--with-config-dhcp-default=dhclient|dhcpcd|internal],
                           [Default configuration option for main.dhcp setting, used as fallback if the configuration option is unset]),
            [config_dhcp_default="$withval"], [config_dhcp_default=""])
884 885 886
if test "$config_dhcp_default" = yes -o "$config_dhcp_default" = no; then
	config_dhcp_default=''
fi
887
test -z "$config_dhcp_default" -a "$with_dhcpcanon" != "no" && config_dhcp_default='dhcpcanon'
888 889 890
test -z "$config_dhcp_default" -a "$with_dhclient" != "no" && config_dhcp_default='dhclient'
test -z "$config_dhcp_default" -a "$with_dhcpcd"   != "no" && config_dhcp_default='dhcpcd'
test -z "$config_dhcp_default"                             && config_dhcp_default='internal'
891 892
AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_MAIN_DHCP, "$config_dhcp_default", [Default configuration option for main.dhcp setting])
AC_SUBST(NM_CONFIG_DEFAULT_MAIN_DHCP, $config_dhcp_default)
893

894 895
AC_ARG_WITH(resolvconf, AS_HELP_STRING([--with-resolvconf=yes|no|path], [Enable resolvconf support]))
AC_ARG_WITH(netconfig, AS_HELP_STRING([--with-netconfig=yes|no], [Enable SUSE netconfig support]))
896
AC_ARG_WITH(config-dns-rc-manager-default, AS_HELP_STRING([--with-config-dns-rc-manager-default=symlink|file|netconfig|resolvconf], [Configure default value for main.rc-manager setting]), [config_dns_rc_manager_default=$withval])
897
if test "$config_dns_rc_manager_default" != "" -a \
898
        "$config_dns_rc_manager_default" != file -a \
899
        "$config_dns_rc_manager_default" != symlink -a \
900 901
        "$config_dns_rc_manager_default" != netconfig -a \
        "$config_dns_rc_manager_default" != resolvconf; then
902 903 904
	AC_MSG_WARN([Unknown --with-config-dns-rc-manager-default=$config_dns_rc_manager_default setting.])
	config_dns_rc_manager_default=
fi
905
# Use netconfig by default on SUSE
906
AS_IF([test -z "$with_netconfig" -a -f /etc/SuSE-release], with_netconfig=yes)
907 908 909
# Otherwise default to "no"
AS_IF([test -z "$with_resolvconf"], with_resolvconf=no)
AS_IF([test -z "$with_netconfig"], with_netconfig=no)
910

911
if test "$with_resolvconf" = "yes"; then
912 913 914 915
	AC_PATH_PROGS(with_resolvconf, resolvconf, 'yes', /sbin:/usr/sbin:/usr/local/sbin)
	if test "$with_resolvconf" = "yes"; then
		AC_MSG_ERROR(cannot find resolvconf in path. Set the path explicitly via --with-resolvconf=PATH.)
	fi
916
fi
917 918 919
if test "$with_resolvconf" != "no"; then
	AS_IF([test -z "$config_dns_rc_manager_default"], config_dns_rc_manager_default=resolvconf)
fi
920

921
if test "$with_netconfig" = "yes"; then
922 923 924 925
	AC_PATH_PROGS(with_netconfig, netconfig, yes, /sbin:/usr/sbin:/usr/local/sbin)
	if test "$with_netconfig" = "yes"; then
		AC_MSG_ERROR(cannot find netconfig in path. Set the path explicitly via --with-netconfig=PATH.)
	fi
926
fi
927 928 929
if test "$with_netconfig" != "no"; then
	AS_IF([test -z "$config_dns_rc_manager_default"], config_dns_rc_manager_default=netconfig)
fi
930

931
AS_IF([test -z "$config_dns_rc_manager_default"], config_dns_rc_manager_default=symlink)
932

933
if test "$with_resolvconf" != "no"; then
934
	AC_DEFINE_UNQUOTED(RESOLVCONF_PATH, "$with_resolvconf", [Path to resolvconf])
935
fi
936
if test "$with_netconfig" != "no"; then
937
	AC_DEFINE_UNQUOTED(NETCONFIG_PATH, "$with_netconfig", [Path to netconfig])
938
fi
939 940
AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER, "$config_dns_rc_manager_default", [Default value for main.rc-manager setting (--with-config-dns-rc-manager-default)])
AC_SUBST(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER, $config_dns_rc_manager_default)
941

942
# iptables path
943 944
AC_ARG_WITH(iptables,
            AS_HELP_STRING([--with-iptables=/path/to/iptables], [path to iptables]))
945
if test "x${with_iptables}" = x; then
946 947 948 949
	AC_PATH_PROG(IPTABLES_PATH, iptables, [], $PATH:/sbin:/usr/sbin)
	if ! test -x "$IPTABLES_PATH"; then
		AC_MSG_ERROR(iptables was not installed.)
	fi
950
else
951
	IPTABLES_PATH="$with_iptables"
952 953 954 955
fi
AC_DEFINE_UNQUOTED(IPTABLES_PATH, "$IPTABLES_PATH", [Define to path of iptables binary])
AC_SUBST(IPTABLES_PATH)

956
# dnsmasq path
957 958
AC_ARG_WITH(dnsmasq,
            AS_HELP_STRING([--with-dnsmasq=/path/to/dnsmasq], [path to dnsmasq]))
959
if test "x${with_dnsmasq}" = x; then
960
	AC_PATH_PROG(DNSMASQ_PATH, dnsmasq, [], $PATH:/sbin:/usr/sbin)
961
else
962
	DNSMASQ_PATH="$with_dnsmasq"
963 964 965 966
fi
AC_DEFINE_UNQUOTED(DNSMASQ_PATH, "$DNSMASQ_PATH", [Define to path of dnsmasq binary])
AC_SUBST(DNSMASQ_PATH)

967
# dnssec-trigger-script path
968 969
AC_ARG_WITH(dnssec_trigger,
            AS_HELP_STRING([--with-dnssec-trigger=/path/to/dnssec-trigger-script], [path to unbound dnssec-trigger-script]))
970
if test "x${with_dnssec_trigger}" = x; then
971
	AC_PATH_PROG(DNSSEC_TRIGGER_PATH, dnssec-trigger-script, /usr/libexec/dnssec-trigger-script,
972
	             /usr/local/libexec:/usr/local/lib:/usr/local/lib/dnssec-trigger:/usr/libexec:/usr/lib:/usr/lib/dnssec-trigger)
973
else
974
	DNSSEC_TRIGGER_PATH="$with_dnssec_trigger"
975
fi
976 977
AC_DEFINE_UNQUOTED(DNSSEC_TRIGGER_PATH, "$DNSSEC_TRIGGER_PATH", [Define to path of unbound dnssec-trigger-script])
AC_SUBST(DNSSEC_TRIGGER_PATH)
978

979
# system CA certificates path
980
AC_ARG_WITH(system-ca-path,
981
            AS_HELP_STRING([--with-system-ca-path=/path/to/ssl/certs], [path to system CA certificates]))
982
if test "x${with_system_ca_path}" = x; then
983
	SYSTEM_CA_PATH=/etc/ssl/certs
984
else
985
	SYSTEM_CA_PATH="$with_system_ca_path"
986 987 988 989
fi
AC_DEFINE_UNQUOTED(SYSTEM_CA_PATH, "$SYSTEM_CA_PATH", [Define to path to system CA certificates])
AC_SUBST(SYSTEM_CA_PATH)

990 991
AC_ARG_WITH(kernel-firmware-dir,
            AS_HELP_STRING([--with-kernel-firmware-dir=DIR], [where kernel firmware directory is (default is /lib/firmware)]))
992
if test -n "$with_kernel_firmware_dir" ; then
993
	KERNEL_FIRMWARE_DIR="$with_kernel_firmware_dir"
994
else
995
	KERNEL_FIRMWARE_DIR="/lib/firmware"
996 997 998 999
fi
AC_DEFINE_UNQUOTED(KERNEL_FIRMWARE_DIR, "$KERNEL_FIRMWARE_DIR", [Define to path of the kernel firmware directory])
AC_SUBST(KERNEL_FIRMWARE_DIR)

1000
PKG_CHECK_MODULES(LIBPSL, [libpsl >= 0.1], [have_libpsl=yes],[have_libpsl=no])
1001 1002 1003
AC_ARG_WITH(libpsl,
            AS_HELP_STRING([--with-libpsl=yes|no], [Link against libpsl]),
            [], [with_libpsl=${have_libpsl}])
1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014
if test "$with_libpsl" != "no"; then
	if test "$have_libpsl" != "yes"; then
		AC_MSG_ERROR(libpsl library not found)
	fi
	with_libpsl='yes'
	AC_DEFINE(WITH_LIBPSL, 1, [Define if you have libpsl])
else
	AC_DEFINE(WITH_LIBPSL, 0, [Define if you have libpsl])
fi
AM_CONDITIONAL(WITH_LIBPSL, test "$with_libpsl" != "no")

1015

1016 1017
AC_ARG_ENABLE(concheck,
              AS_HELP_STRING([--enable-concheck], [enable connectivity checking support]),
1018
              [enable_concheck=${enableval}], [enable_concheck=yes])
1019
if test "${enable_concheck}" = "yes"; then
1020
	PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.24.0], [have_libcurl=yes], [have_libcurl=no])
1021
	if test "$have_libcurl" != "yes"; then
1022
		AC_MSG_ERROR(--enable-concheck requires libcurl library.)
1023
	fi
1024 1025
	AC_DEFINE(WITH_CONCHECK, 1, [Define if you want connectivity checking support])
else
1026
	enable_concheck=no
1027 1028 1029
	AC_DEFINE(WITH_CONCHECK, 0, [Define if you want connectivity checking support])
fi

1030
PKG_CHECK_MODULES(LIBNDP, [libndp])
1031

1032 1033
AC_ARG_WITH(nmcli,
            AS_HELP_STRING([--with-nmcli=yes|no], [Build nmcli]))
1034
if test "$with_nmcli" != no; then
1035 1036
	AX_LIB_READLINE
	build_nmcli=yes
1037
else
1038
	build_nmcli=no
1039 1040 1041
fi
AM_CONDITIONAL(BUILD_NMCLI, test "$build_nmcli" = yes)

1042 1043
AC_ARG_WITH(nmtui,
            AS_HELP_STRING([--with-nmtui=yes|no], [Build nmtui]))
Dan Winship's avatar
Dan Winship committed
1044
if test "$with_nmtui" != no; then
1045
	PKG_CHECK_MODULES(NEWT, [libnewt >= 0.52.15], [build_nmtui=yes], [build_nmtui=no])
Dan Winship's avatar
Dan Winship committed
1046
else
1047
	build_nmtui=no
Dan Winship's avatar
Dan Winship committed
1048 1049
fi
if test "$with_nmtui" = yes -a "$build_nmtui" = no; then
1050
	AC_MSG_ERROR([You must have libnewt installed to build nmtui.])
Dan Winship's avatar
Dan Winship committed
1051 1052 1053
fi
AM_CONDITIONAL(BUILD_NMTUI, test "$build_nmtui" = yes)

1054
if test $(( ${NM_MINOR_VERSION} % 2 )) = "1"; then
1055 1056 1057 1058
	# A development version
	more_warnings_default=error
	more_asserts_default=100
	more_logging_default=yes
1059
else
1060 1061 1062 1063
	# A release version
	more_warnings_default=yes
	more_asserts_default=0
	more_logging_default=no
1064
fi
1065

1066
NM_COMPILER_WARNINGS(AM_CFLAGS, ${more_warnings_default})
1067

1068 1069 1070
NM_COMPILER_FLAG(LIBSYSTEMD_NM_CFLAGS, "-Wno-gnu-variable-sized-type-not-at-end")
AC_SUBST(LIBSYSTEMD_NM_CFLAGS)

1071 1072 1073
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
	-fno-strict-aliasing \
])
1074
AM_CFLAGS="$AM_CFLAGS $with_cflags"
1075

1076
AC_ARG_ENABLE(more-asserts,
1077 1078
              AS_HELP_STRING([--enable-more-asserts],
                             [Enable more assertions for debugging (default: auto). Deprecated option. Use --with-more-asserts=level]))
1079
if test "${enable_more_asserts}" = "yes"; then
1080
	more_asserts=100
1081 1082
fi
AC_ARG_WITH(more-asserts,
1083
            AS_HELP_STRING([--with-more-asserts=level], [Enable more assertions for debugging (0 = none, 100 = all, default: auto)]),
1084 1085 1086
            [more_asserts=${with_more_asserts}],
            [])
if test "${more_asserts}" = "no"; then
1087
	more_asserts=0
1088
else
1089 1090 1091
	if test "${more_asserts}" = "yes"; then
		more_asserts=100
	fi
1092
fi
1093
if test "${more_asserts}" = ""; then
1094
	more_asserts=${more_asserts_default}
1095
fi
1096
AC_DEFINE_UNQUOTED(NM_MORE_ASSERTS, $more_asserts, [Define if more asserts are enabled])
1097

1098
AC_ARG_ENABLE(more-logging, AS_HELP_STRING([--enable-more-logging], [Enable more debug logging (default: auto)]))