diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 680 |
1 files changed, 294 insertions, 386 deletions
diff --git a/configure.ac b/configure.ac index 91afabeb9..dbbc1fdc0 100644 --- a/configure.ac +++ b/configure.ac @@ -3,8 +3,8 @@ AC_PREREQ([2.63]) dnl The NM version number m4_define([nm_major_version], [0]) m4_define([nm_minor_version], [9]) -m4_define([nm_micro_version], [6]) -m4_define([nm_nano_version], [4]) +m4_define([nm_micro_version], [7]) +m4_define([nm_nano_version], [995]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version.nm_nano_version]) @@ -16,10 +16,9 @@ AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) -AM_INIT_AUTOMAKE([1.10 subdir-objects tar-ustar no-dist-gzip dist-bzip2 -Wno-portability]) +AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2 -Wno-portability]) AM_MAINTAINER_MODE([enable]) - -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) dnl Define _SYSTEM_EXTENSIONS for various things like strcasestr() AC_USE_SYSTEM_EXTENSIONS @@ -38,14 +37,6 @@ dnl Initialize libtool LT_PREREQ([2.2]) LT_INIT([disable-static]) -dnl maintainer mode stuff -if test $USE_MAINTAINER_MODE = yes; then - DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED" -else - DISABLE_DEPRECATED="" -fi -AC_SUBST(DISABLE_DEPRECATED) - dnl Version stuff NM_MAJOR_VERSION=nm_major_version NM_MINOR_VERSION=nm_minor_version @@ -89,132 +80,46 @@ AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) dnl -dnl Documentation -dnl -AC_ARG_WITH(docs, AS_HELP_STRING([--with-docs], [Build NetworkManager documentation])) -AM_CONDITIONAL(WITH_DOCS, test "x$with_docs" = "xyes") -case $with_docs in - yes) - enable_gtk_doc=yes - ;; - *) - with_docs=no - ;; -esac - -dnl dnl Make sha1.c happy on big endian systems dnl AC_C_BIGENDIAN -AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, suse, gentoo, debian, arch, slackware, paldo, mandriva, pardus, linexa, exherbo or lfs])) -if test "z$with_distro" = "z"; then - AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat") - AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse") - AC_CHECK_FILE(/etc/fedora-release,with_distro="redhat") - AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo") - AC_CHECK_FILE(/etc/debian_version,with_distro="debian") - AC_CHECK_FILE(/etc/arch-release,with_distro="arch") - AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware") - AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware") - AC_CHECK_FILE(/etc/mandriva-release,with_distro="mandriva") - AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus") - AC_CHECK_FILE(/etc/linexa-release,with_distro="linexa") - AC_CHECK_FILE(/etc/exherbo-release,with_distro="exherbo") - AC_CHECK_FILE(/etc/lfs-release,with_distro="lfs") - if test "z$with_distro" = "z"; then - with_distro=`lsb_release -is` - fi -fi -with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` - -if test "z$with_distro" = "z"; then - echo "Linux distribution autodetection failed, you must specify the distribution to target using --with-distro=DISTRO" - exit 1 -else - case $with_distro in - redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa|exherbo|lfs|generic) ;; - *) - echo "Your distribution (${with_distro}) is not yet supported! (patches welcome)" - exit 1 - ;; - esac -fi - -AM_CONDITIONAL(TARGET_GENERIC, test x"$with_distro" = xgeneric) -if test x"$with_distro" = xgeneric; then - AC_DEFINE(TARGET_GENERIC, 1, [Define for a general unknown Linux system]) -fi - -AM_CONDITIONAL(TARGET_REDHAT, test x"$with_distro" = xredhat) -if test x"$with_distro" = xredhat; then - AC_DEFINE(TARGET_REDHAT, 1, [Define if you have Fedora or RHEL]) -fi - -AM_CONDITIONAL(TARGET_SUSE, test x"$with_distro" = xsuse) -if test x"$with_distro" = xsuse; then - AC_DEFINE(TARGET_SUSE, 1, [Define if you have OpenSUSE or SLES]) -fi - -AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo) -if test x"$with_distro" = xgentoo; then - AC_DEFINE(TARGET_GENTOO, 1, [Define if you have Gentoo]) -fi - -AM_CONDITIONAL(TARGET_DEBIAN, test x"$with_distro" = xdebian) -if test x"$with_distro" = xdebian; then - AC_DEFINE(TARGET_DEBIAN, 1, [Define if you have Debian]) -fi - -AM_CONDITIONAL(TARGET_SLACKWARE, test x"$with_distro" = xslackware) -if test x"$with_distro" = xslackware; then - AC_DEFINE(TARGET_SLACKWARE, 1, [Define if you have Slackware]) -fi - -AM_CONDITIONAL(TARGET_ARCH, test x"$with_distro" = xarch) -if test x"$with_distro" = xarch; then - AC_DEFINE(TARGET_ARCH, 1, [Define if you have Arch]) -fi - -AM_CONDITIONAL(TARGET_PALDO, test x"$with_distro" = xpaldo) -if test x"$with_distro" = xpaldo; then - AC_DEFINE(TARGET_PALDO, 1, [Define if you have Paldo]) -fi - -AM_CONDITIONAL(TARGET_FRUGALWARE, test x"$with_distro" = xfrugalware) -if test x"$with_distro" = xfrugalware; then - AC_DEFINE(TARGET_FRUGALWARE, 1, [Define if you have Frugalware]) -fi - -AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva) -if test x"$with_distro" = xmandriva; then - AC_DEFINE(TARGET_MANDRIVA, 1, [Define if you have Mandriva]) -fi - -AM_CONDITIONAL(TARGET_PARDUS, test x"$with_distro" = xpardus) -if test x"$with_distro" = xpardus; then - AC_DEFINE(TARGET_PARDUS, 1, [Define if you have Pardus]) -fi - -AM_CONDITIONAL(TARGET_LINEXA, test x"$with_distro" = xlinexa) -if test x"$with_distro" = xlinexa; then - AC_DEFINE(TARGET_LINEXA, 1, [Define if you have linexa]) -fi - -AM_CONDITIONAL(TARGET_EXHERBO, test x"$with_distro" = xexherbo) -if test x"$with_distro" = xexherbo; then - AC_DEFINE(TARGET_EXHERBO, 1, [Define if you have Exherbo]) -fi - -AM_CONDITIONAL(TARGET_LFS, test x"$with_distro" = xlfs) -if test x"$with_distro" = xlfs; then - AC_DEFINE(TARGET_LFS, 1, [Define if you have Linux From Scratch]) -fi +# NetworkManager paths +AC_SUBST(nmbinary, "$sbindir/$PACKAGE", [NetworkManager binary executable]) +AC_SUBST(nmconfdir, "$sysconfdir/$PACKAGE", [NetworkManager configuration directory]) +AC_SUBST(nmdatadir, "$datadir/$PACKAGE", [NetworkManager shared data directory]) +AC_SUBST(nmstatedir, "$localstatedir/lib/$PACKAGE", [NetworkManager persistent state directory]) +AC_SUBST(nmrundir, "$localstatedir/run/$PACKAGE", [NetworkManager runtime state directory]) + +# Alternative configuration plugins +AC_ARG_ENABLE(ifcfg-rh, AS_HELP_STRING([--enable-ifcfg-rh], [enable ifcfg-rh configuration plugin (Fedora/RHEL)])) +AC_ARG_ENABLE(ifcfg-suse, AS_HELP_STRING([--enable-ifcfg-suse], [enable ifcfg-suse configuration plugin (SUSE)])) +AC_ARG_ENABLE(ifupdown, AS_HELP_STRING([--enable-ifupdown], [enable ifupdown configuration plugin (Debian/Ubuntu)])) +AC_ARG_ENABLE(ifnet, AS_HELP_STRING([--enable-ifnet], [enable ifnet configuration plugin (Gentoo)])) +# Default alternative plugins by distribution +AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/redhat-release, enable_ifcfg_rh=yes)) +AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/fedora-release, enable_ifcfg_rh=yes)) +AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/mandriva-release, enable_ifcfg_rh=yes)) +AS_IF([test -z "$enable_ifcfg_suse"], AC_CHECK_FILE(/etc/SuSE-release, enable_ifcfg_suse=yes)) +AS_IF([test -z "$enable_ifupdown"], AC_CHECK_FILE(/etc/debian_version, enable_ifupdown=yes)) +AS_IF([test -z "$enable_ifnet"], AC_CHECK_FILE(/etc/gentoo-release, enable_ifnet=yes)) +# Otherwise plugins default to "no" +AS_IF([test -z "$enable_ifcfg_rh"], enable_ifcfg_rh=no) +AS_IF([test -z "$enable_ifcfg_suse"], enable_ifcfg_suse=no) +AS_IF([test -z "$enable_ifupdown"], enable_ifupdown=no) +AS_IF([test -z "$enable_ifnet"], enable_ifnet=no) +# Create automake conditionals +AM_CONDITIONAL(CONFIG_PLUGIN_IFCFG_RH, test "$enable_ifcfg_rh" = "yes") +AM_CONDITIONAL(CONFIG_PLUGIN_IFCFG_SUSE, test "$enable_ifcfg_suse" = "yes") +AM_CONDITIONAL(CONFIG_PLUGIN_IFUPDOWN, test "$enable_ifupdown" = "yes") +AM_CONDITIONAL(CONFIG_PLUGIN_IFNET, test "$enable_ifnet" = "yes") +# Code coverage +GNOME_CODE_COVERAGE dnl dnl Distribution version string dnl -AC_ARG_WITH(dist-version, AS_HELP_STRING([--with-dist-version=<NM-distribution-version>], [Define the NM's distribution version string]), ac_distver=$withval, ac_distver="") +AC_ARG_WITH(dist-version, AS_HELP_STRING([--with-dist-version=<NM-distribution-version>], [Define the NM''s distribution version string]), ac_distver=$withval, ac_distver="") if ! test x"$ac_distver" = x""; then AC_DEFINE_UNQUOTED(NM_DIST_VERSION, "$ac_distver", [Define the distribution version string]) fi @@ -259,7 +164,7 @@ AC_COMPILE_IFELSE( #include <linux/types.h> #include <sys/socket.h> #include <linux/nl80211.h>]], - [[int a = NL80211_RATE_INFO_BITRATE;]])], + [[int a = NL80211_RATE_INFO_BITRATE; a++;]])], [ac_have_nl80211=yes], [ac_have_nl80211=no]) AC_MSG_RESULT($ac_have_nl80211) @@ -310,27 +215,22 @@ PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.94) AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) +GLIB_VERSION_DEFINES="-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,34)'" + # dbus-glib uses GValueArray, which is deprecated as of GLib 2.32. # Set GLIB_VERSION_MIN_REQUIRED to something less than that to avoid # getting warnings. (GLIB_VERSION_2_26 is the oldest defined version.) -DBUS_CFLAGS="$DBUS_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26" +DBUS_CFLAGS="$DBUS_CFLAGS $GLIB_VERSION_DEFINES" -PKG_CHECK_MODULES(GLIB, gthread-2.0 glib-2.0 >= 2.22 gobject-2.0) +PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.22 gmodule-2.0) +GLIB_CFLAGS="$GLIB_CFLAGS $GLIB_VERSION_DEFINES" AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) -PKG_CHECK_MODULES(GMODULE, gmodule-2.0) -AC_SUBST(GMODULE_CFLAGS) -AC_SUBST(GMODULE_LIBS) - -PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= 147) +PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= 165) AC_SUBST(GUDEV_CFLAGS) AC_SUBST(GUDEV_LIBS) -PKG_CHECK_MODULES(GIO, gio-2.0) -AC_SUBST(GIO_CFLAGS) -AC_SUBST(GIO_LIBS) - GOBJECT_INTROSPECTION_CHECK([0.9.6]) # Qt4 @@ -359,73 +259,104 @@ fi AC_SUBST(UDEV_BASE_DIR) # systemd unit support -AC_ARG_WITH([systemdsystemunitdir], - AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), - [], - [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) -if test "x$with_systemdsystemunitdir" != xno; then +AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], + [Directory for systemd service files])) +# default location +AS_IF([test -z "$with_systemdsystemunitdir" && $PKG_CONFIG systemd], + with_systemdsystemunitdir="\$(prefix)/lib/systemd/system") +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 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) fi -AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) -AC_ARG_WITH(session-tracking, AS_HELP_STRING([--with-session-tracking=systemd|ck|none], [Build NetworkManager with specific session tracking support])) -if test "z$with_session_tracking" = "z"; then - # Default to ConsoleKit session tracking like we used before - with_session_tracking=ck +# session tracking support +AC_MSG_CHECKING([Session tracking support]) +AC_ARG_WITH(session-tracking, AS_HELP_STRING([--with-session-tracking=systemd|consolekit|no], + [Select session tracking support (default: consolekit)])) +# default to consolekit +AS_IF([test -z "$with_session_tracking"], with_session_tracking=consolekit) +AS_IF([test "$with_session_tracking" = "ck"], with_session_tracking=consolekit) +AS_IF([test "$with_session_tracking" = "none"], with_session_tracking=no) +# check value +AS_IF([! (echo "$with_session_tracking" | grep -q -E "^(systemd|consolekit|no)$")], + AC_MSG_ERROR([--with-session-tracking must be systemd/consolekit/no, not $with_session_tracking])) +# add conditionals and subtitutions +AM_CONDITIONAL(SESSION_TRACKING_CK, test "$with_session_tracking" = "consolekit") +AM_CONDITIONAL(SESSION_TRACKING_SYSTEMD, test "xwith_session_tracking" = "systemd") +if test "$with_session_tracking" = "systemd"; then + PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login]) + AC_SUBST(SYSTEMD_LOGIN_CFLAGS) + AC_SUBST(SYSTEMD_LOGIN_LIBS) +fi +if test "$with_session_tracking" = "consolekit"; then + AC_SUBST(CKDB_PATH, /var/run/ConsoleKit/database) +fi +AC_MSG_RESULT($with_session_tracking) + +AC_ARG_WITH(suspend-resume, AS_HELP_STRING([--with-suspend-resume=upower|systemd], [Build NetworkManager with specific suspend/resume support])) +if test "z$with_suspend_resume" = "z"; then + PKG_CHECK_EXISTS([systemd >= 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 + # Fall back to upower + with_suspend_resume="upower" + fi fi -case $with_session_tracking in - ck|none|no) ;; +case $with_suspend_resume in + upower) ;; systemd) - PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login]) + PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [systemd >= 183]) ;; *) - AC_MSG_ERROR(--with-session-tracking must be one of [none, ck, systemd]) + AC_MSG_ERROR(--with-suspend-resume must be one of [upower, systemd]) ;; esac -AC_SUBST(SYSTEMD_CFLAGS) -AC_SUBST(SYSTEMD_LIBS) -AM_CONDITIONAL(SESSION_TRACKING_CK, test "x$with_session_tracking" = "xck") -AM_CONDITIONAL(SESSION_TRACKING_SYSTEMD, test "x$with_session_tracking" = "xsystemd") - - -have_libnl="no" -PKG_CHECK_MODULES(LIBNL3, libnl-3.0, [have_libnl3=yes], [have_libnl3=no]) -PKG_CHECK_MODULES(LIBNL_ROUTE3, libnl-route-3.0, [have_libnl_route3=yes], [have_libnl_route3=no]) -PKG_CHECK_MODULES(LIBNL_GENL3, libnl-genl-3.0, [have_libnl_genl3=yes], [have_libnl_genl3=no]) -if (test "${have_libnl3}" = "yes" -a "${have_libnl_route3}" = "yes" -a "${have_libnl_genl3}" = "yes"); then - AC_DEFINE(HAVE_LIBNL3, 1, [Define if you require specific libnl-3 support]) - LIBNL_CFLAGS="$LIBNL3_CFLAGS $LIBNL_ROUTE3_CFLAGS $LIBNL_GENL3_CFLAGS" - LIBNL_LIBS="$LIBNL3_LIBS $LIBNL_ROUTE3_LIBS $LIBNL_GENL3_LIBS" - libnl_version="3" - have_libnl="yes" -else - PKG_CHECK_MODULES(LIBNL2, libnl-2.0, [have_libnl2=yes], [have_libnl2=no]) - if (test "${have_libnl2}" = "yes"); then - AC_DEFINE(HAVE_LIBNL2, 1, [Define if you require specific libnl-2 support]) - LIBNL_CFLAGS="$LIBNL2_CFLAGS" - LIBNL_LIBS="$LIBNL2_LIBS" - libnl_version="2" - have_libnl="yes" - else - PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0-pre8, [have_libnl1=yes], [have_libnl1=no]) - if (test "${have_libnl1}" = "yes"); then - AC_DEFINE(HAVE_LIBNL1, 1, [Define if you require libnl-1 legacy support]) - LIBNL_CFLAGS="$LIBNL1_CFLAGS" - LIBNL_LIBS="$LIBNL1_LIBS" - libnl_version="1" - have_libnl="yes" - fi - fi -fi - -if (test "${have_libnl}" = "no"); then - AC_MSG_ERROR([libnl development header are required]) -fi -AC_SUBST(LIBNL_CFLAGS) -AC_SUBST(LIBNL_LIBS) - -if (test "${libnl_version}" = "1"); then +AM_CONDITIONAL(SUSPEND_RESUME_UPOWER, test "x$with_suspend_resume" = "xupower") +AM_CONDITIONAL(SUSPEND_RESUME_SYSTEMD, test "x$with_suspend_resume" = "xsystemd") + +# libnl support for the linux platform +AC_ARG_WITH(libnl, AS_HELP_STRING([--with-libnl=1|2|3], [Select libnl version (default: latest available)])) +# default to "yes" +AS_IF([test -z "$with_libnl"], with_libnl=yes) +# test for various libnl versions +if test "$with_libnl" = "yes" -o "$with_libnl" = "3"; then + PKG_CHECK_MODULES(LIBNL3, libnl-3.0 libnl-route-3.0 libnl-genl-3.0, + [with_libnl=3], [test "$with_libnl" = "3" && with_libnl=no]) + AS_IF([test "$with_libnl" = "no"], + AC_MSG_ERROR([libnl 3.x could not be found])) +fi +if test "$with_libnl" = "yes" -o "$with_libnl" = "2"; then + PKG_CHECK_MODULES(LIBNL2, libnl-2.0, + [with_libnl=2], [test "$with_libnl" = "2" && with_libnl=no]) + AS_IF([test "$with_libnl" = "no"], + AC_MSG_ERROR([libnl 2.x could not be found])) +fi +if test "$with_libnl" = "yes" -o "$with_libnl" = "1"; then + PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0-pre8, + [with_libnl=1], [test "$with_libnl" = "1" && with_libnl=no]) + AS_IF([test "$with_libnl" = "no"], + AC_MSG_ERROR([libnl 1.x could not be found])) +fi +if test "$with_libnl" = "yes"; then + AC_MSG_ERROR([libnl library could not be found]) + with_libnl=no +fi +if ! echo "$with_libnl" | grep -q "^[[1-3]]$"; then + AC_MSG_ERROR([unsupported libnl version: $with_libnl]) +fi +# add variables, conditionals and defines +if test "$with_libnl" != "no"; then + AC_DEFINE_UNQUOTED(HAVE_LIBNL, $with_libnl, [libnl version]) + AC_SUBST(LIBNL_CFLAGS, "$LIBNL3_CFLAGS$LIBNL2_CFLAGS$LIBNL1_CFLAGS") + AC_SUBST(LIBNL_LIBS, "$LIBNL3_LIBS$LIBNL2_LIBS$LIBNL1_LIBS") +fi +# additional tests +if test "with_libnl" = "1"; then NM_LIBNL_CHECK fi @@ -464,6 +395,18 @@ else fi AM_CONDITIONAL(WITH_POLKIT, test "${enable_polkit}" = "yes") +AC_ARG_ENABLE(modify-system, + AS_HELP_STRING([--enable-modify-system], [Allow users to modify system connections])) +if test "${enable_modify_system}" = "yes"; then + if ! test "${enable_polkit}" = "yes"; then + AC_MSG_ERROR([--enable-modify-system requires --enable-polkit]) + fi + NM_MODIFY_SYSTEM_POLICY="yes" +else + NM_MODIFY_SYSTEM_POLICY="auth_admin_keep" +fi +AC_SUBST(NM_MODIFY_SYSTEM_POLICY) + AC_ARG_WITH(crypto, AS_HELP_STRING([--with-crypto=nss|gnutls], [Cryptography library to use for certificate and key operations]),ac_crypto=$withval, ac_crypto=nss) with_nss=no @@ -531,7 +474,7 @@ AC_ARG_ENABLE(ppp, AS_HELP_STRING([--enable-ppp], [enable PPP/PPPoE support]), [enable_ppp=${enableval}], [enable_ppp=yes]) if (test "${enable_ppp}" = "yes"); then AC_CHECK_HEADERS(pppd/pppd.h,, - AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.)) + AC_MSG_ERROR("couldn't find pppd.h. pppd development headers are required.")) AC_DEFINE(WITH_PPP, 1, [Define if you have PPP support]) else @@ -548,115 +491,91 @@ else fi AC_SUBST(PPPD_PLUGIN_DIR) +# ModemManager1 with libmm-glib +AC_ARG_WITH(modem-manager-1, AS_HELP_STRING([--with-modem-manager-1], [Enable new ModemManager1 interface support]),,[with_modem_manager_1=auto]) +if (test "${with_modem_manager_1}" != "no"); then + PKG_CHECK_MODULES(MM_GLIB, + [mm-glib], + [have_libmm_glib=yes], + [have_libmm_glib=no]) + AC_SUBST(MM_GLIB_CFLAGS) + AC_SUBST(MM_GLIB_LIBS) + + if (test "${have_libmm_glib}" = "no"); then + if (test "${with_modem_manager_1}" = "yes"); then + AC_MSG_ERROR([Couldn't find libmm-glib]) + fi + else + with_modem_manager_1="yes" + fi +fi -# dhclient support -AC_ARG_WITH([dhclient], AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient 4.x support])) -# If a full path is given, use that and do not test if it works or not. -case "${with_dhclient}" in - # NM only works with ISC dhclient - other derivatives don't have - # the same userland. dhclient 4.x is required for IPv6 support; - # with older versions NM won't be able to use DHCPv6. - - /*) - DHCLIENT_PATH="${with_dhclient}" - DHCLIENT_VERSION=4 - if test -x "${with_dhclient}"; then - case `"${with_dhclient}" --version 2>&1` in - "isc-dhclient-4"*) DHCLIENT_VERSION=4; break;; - "isc-dhclient-V3"*) DHCLIENT_VERSION=3; break;; - esac - fi - AC_MSG_NOTICE(using dhclient at ${DHCLIENT_PATH}) - ;; - no) AC_MSG_NOTICE(dhclient support disabled) - ;; - *) - AC_MSG_CHECKING(for dhclient) - for path in /sbin /usr/sbin /usr/pkg/sbin /usr/local/sbin; do - test -x "${path}/dhclient" || continue - case `"$path/dhclient" --version 2>&1` in - "isc-dhclient-4"*) DHCLIENT_PATH="$path/dhclient"; DHCLIENT_VERSION=4; break;; - "isc-dhclient-V3"*) DHCLIENT_PATH="$path/dhclient"; DHCLIENT_VERSION=3; break;; - esac - done - if test -n "${DHCLIENT_PATH}"; then - AC_MSG_RESULT($DHCLIENT_PATH) - else - AC_MSG_RESULT(no) - fi - ;; -esac +if (test "${with_modem_manager_1}" = "yes"); then + AC_DEFINE(WITH_MODEM_MANAGER_1, 1, [Define if you have ModemManager1 support]) +else + AC_DEFINE(WITH_MODEM_MANAGER_1, 0, [Define if you have ModemManager1 support]) +fi +AM_CONDITIONAL(WITH_MODEM_MANAGER_1, test "${with_modem_manager_1}" = "yes") -# dhcpcd support +# DHCP client support +AC_ARG_WITH([dhclient], AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient 4.x support])) AC_ARG_WITH([dhcpcd], AS_HELP_STRING([--with-dhcpcd=yes|no|path], [Enable dhcpcd 4.x support])) -# If a full path is given, use that and do not test if it works or not. -case "${with_dhcpcd}" in - /*) - DHCPCD_PATH="${with_dhcpcd}" - AC_MSG_NOTICE(using dhcpcd at ${DHCPCD_PATH}) - ;; - no) AC_MSG_NOTICE(dhcpcd support disabled) - ;; - *) - AC_MSG_CHECKING(for dhcpcd) - # We fully work with upstream dhcpcd-4 - for path in /sbin /usr/sbin /usr/pkg/sbin /usr/local/sbin; do - test -x "${path}/dhcpcd" || continue - case `"$path/dhcpcd" --version 2>/dev/null` in - "dhcpcd "[123]*);; - "dhcpcd "*) DHCPCD_PATH="$path/dhcpcd"; break;; - esac - done - if test -n "${DHCPCD_PATH}"; then - AC_MSG_RESULT($DHCPCD_PATH) - else - AC_MSG_RESULT(no) +# Default to "yes" +AS_IF([test -z "$with_dhclient"], with_dhclient=yes) +AS_IF([test -z "$with_dhcpcd"], with_dhcpcd=yes) +# Search and check the executables +if test "$with_dhclient" = "yes"; then + AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin) + if test "$with_dhclient" != "no"; then + if ! $with_dhclient --version 2>&1 | grep -q "^isc-dhclient-4\."; then + AC_MSG_WARN([Cannot use dhclient, version 4.x is required]) + with_dhclient=no fi - ;; -esac - -if test -z "$DHCPCD_PATH" -a -z "$DHCLIENT_PATH"; then - # DHCP clients are not a build time dependency, only runtime. - # dhclient has been the longtime default for NM and it's in /sbin - # in most distros, so use it. - AC_MSG_WARN([Could not find a suitable DHCP client]) - DHCLIENT_PATH=/sbin/dhclient - AC_MSG_WARN([Falling back to ISC dhclient, ${DHCLIENT_PATH}]) -fi -AC_SUBST(DHCLIENT_PATH) -AC_SUBST(DHCLIENT_VERSION) -AC_SUBST(DHCPCD_PATH) - -# resolvconf support -AC_ARG_WITH([resolvconf], - AS_HELP_STRING([--with-resolvconf=yes|no|path], [Enable resolvconf support]), - with_resolvconf="$withval",with_resolvconf=no) -# If a full path is given, use that and do not test if it works or not. -case "${with_resolvconf}" in - /*) - RESOLVCONF_PATH="${with_resolvconf}" - AC_MSG_NOTICE(setting resolvconf path to ${RESOLVCONF_PATH}) - ;; - no) AC_MSG_NOTICE(resolvconf support disabled) - ;; - *) - AC_MSG_CHECKING(for resolvconf) - for path in /sbin /usr/sbin /usr/pkg/sbin /usr/local/sbin; do - if test -x "${path}/resolvconf"; then - RESOLVCONF_PATH="${path}/resolvconf" - break - fi - done - if test -n "${RESOLVCONF_PATH}"; then - AC_MSG_RESULT($RESOLVCONF_PATH) - else - AC_MSG_RESULT(no) + fi +fi +if test "$with_dhcpcd" = "yes"; then + AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin) + if test "$with_dhcpcd" != "no"; then + if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[45]]\."; then + AC_MSG_WARN([Cannot use dhcpcd, version 4.x or 5.x is required]) + with_dhcpcd=no fi - ;; -esac -AC_SUBST(RESOLVCONF_PATH) -if test -n "${RESOLVCONF_PATH}"; then - AC_DEFINE_UNQUOTED(RESOLVCONF_PATH, "$RESOLVCONF_PATH", [Define if you have a resolvconf implementation]) + fi +fi +# Fallback +if test "$with_dhclient" = "no" -a "$with_dhcpcd" = "no"; then + AC_MSG_WARN([Could not find a suitable DHCP client, falling back to dhclient]) + with_dhclient=/sbin/dhclient +fi +# Add substitutions +if test "$with_dhclient" != "no"; then + AC_SUBST(DHCLIENT_PATH, $with_dhclient) +fi +if test "$with_dhcpcd" != "no"; then + AC_SUBST(DHCPCD_PATH, $with_dhcpcd) +fi + +# resolvconf and netconfig support +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])) +# Use netconfig by default on SUSE +AS_IF([test -z "$with_netconfig"], AC_CHECK_FILE(/etc/SuSE-release, with_netconfig=yes)) +# Otherwise default to "no" +AS_IF([test -z "$with_resolvconf"], with_resolvconf=no) +AS_IF([test -z "$with_netconfig"], with_netconfig=no) +# Find resolvconf and netconfig +if test "$with_resolvconf" = "yes"; then + AC_PATH_PROGS(with_resolvconf, resolvconf, no, /sbin:/usr/sbin:/usr/local/sbin) +fi +if test "$with_netconfig" = "yes"; then + AC_PATH_PROGS(with_netconfig, netconfig, no, /sbin:/usr/sbin:/usr/local/sbin) +fi +# Define resolvconf and netconfig paths +if test "$with_resolvconf" != "no"; then + AC_DEFINE_UNQUOTED(RESOLVCONF_PATH, "$with_resolvconf", [Path to resolvconf (if enabled)]) +fi +if test "$with_netconfig" != "no"; then + AC_DEFINE_UNQUOTED(NETCONFIG_PATH, "$with_netconfig", [Path to netconfig (if enabled)]) fi # iptables path @@ -716,29 +635,33 @@ AM_CONDITIONAL(WITH_CONCHECK, test "${enable_concheck}" = "yes") NM_COMPILER_WARNINGS -GTK_DOC_CHECK(1.0) - - dnl ------------------------- dnl Vala bindings dnl ------------------------- VAPIGEN_CHECK(0.17.1.24) -dnl -dnl Tests -dnl -AC_ARG_WITH(tests, AS_HELP_STRING([--with-tests], [Build NetworkManager tests])) -AM_CONDITIONAL(WITH_TESTS, test "x$with_tests" = "xyes") -case $with_tests in - yes) - with_tests=yes - ;; - *) - with_tests=no - ;; -esac - +# Tests, utilities and documentation +AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests=root|yes|no], [Build NetworkManager tests (default: yes)])) +AC_ARG_ENABLE(doc, AS_HELP_STRING([--enable-doc], [Build NetworkManager documentation (default: no)])) +# Fallback to --with-tests and with-docs +AC_ARG_WITH(tests, AS_HELP_STRING([--with-tests], [Build NetworkManager tests (deprecated)])) +AC_ARG_WITH(docs, AS_HELP_STRING([--with-docs], [Build NetworkManager documentation (deprecated)])) +AS_IF([test -n "$with_tests"], enable_tests="$with_tests") +AS_IF([test -n "$with_docs"], enable_doc="$with_docs") +# Default to --enable-tests and --disable-docs +AS_IF([test -z "$enable_tests"], enable_tests="yes") +AS_IF([test -z "$enable_doc"], enable_doc="no") +# Normalize values +AS_IF([test "$enable_tests" != "yes" -a "$enable_tests" != "root"], enable_tests="no") +AS_IF([test "$enable_doc" != "yes"], enable_doc="no") +# Add conditionals +AM_CONDITIONAL(ENABLE_TESTS, test "$enable_tests" != "no") +AM_CONDITIONAL(RUN_ROOT_TESTS, test "$enable_tests" == "root") +AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" = "yes") +# Add gtk-doc conditionals +enable_gtk_doc="$enable_doc" +GTK_DOC_CHECK(1.0) AC_CONFIG_FILES([ Makefile @@ -778,7 +701,6 @@ src/settings/plugins/keyfile/tests/keyfiles/Makefile src/settings/plugins/example/Makefile src/settings/tests/Makefile src/wimax/Makefile -src/backends/Makefile libnm-util/libnm-util.pc libnm-util/Makefile libnm-util/tests/Makefile @@ -793,24 +715,13 @@ tools/Makefile cli/Makefile cli/src/Makefile test/Makefile -initscript/Makefile -initscript/RedHat/Makefile initscript/RedHat/NetworkManager -initscript/Gentoo/Makefile -initscript/Gentoo/NetworkManager -initscript/Debian/Makefile initscript/Debian/NetworkManager -initscript/Slackware/Makefile initscript/Slackware/rc.networkmanager -initscript/SUSE/Makefile initscript/SUSE/networkmanager -initscript/Arch/Makefile initscript/Arch/networkmanager -initscript/paldo/Makefile initscript/paldo/NetworkManager -initscript/Mandriva/Makefile initscript/Mandriva/networkmanager -initscript/linexa/Makefile initscript/linexa/networkmanager introspection/Makefile introspection/all.xml @@ -823,6 +734,7 @@ man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile +policy/org.freedesktop.NetworkManager.policy.in data/Makefile docs/Makefile docs/api/Makefile @@ -839,71 +751,67 @@ examples/ruby/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile +examples/dispatcher/Makefile vapi/Makefile ]) AC_OUTPUT +# Print build configuration +echo +echo "System paths:" +echo " prefix: $prefix" +echo " exec_prefix: $exec_prefix" +echo " systemdunitdir: $with_systemdsystemunitdir" +echo " nmbinary: $nmbinary" +echo " nmconfdir: $nmconfdir" +echo " nmdatadir: $nmdatadir" +echo " nmstatedir: $nmstatedir" +echo " nmrundir: $nmrundir" echo -echo Distribution target: ${with_distro} -echo 'if this is not correct, please specifiy your distro with --with-distro=DISTRO' - -echo - -if test -n "${DHCLIENT_PATH}"; then - echo ISC dhclient support: ${DHCLIENT_PATH} - echo ISC dhclient version: ${DHCLIENT_VERSION} -else - echo ISC dhclient support: no -fi - -if test -n "${DHCPCD_PATH}"; then - echo dhcpcd support: ${DHCPCD_PATH} -else - echo dhcpcd support: no -fi - -if test -n "${with_systemdsystemunitdir}"; then - echo systemd unit support: ${with_systemdsystemunitdir} -else - echo systemd unit support: no -fi +echo "Platform:" +echo " libnl: $with_libnl" +echo " session tracking: $with_session_tracking" +echo " suspend/resume: $with_suspend_resume" if test "${enable_polkit}" = "yes"; then - echo PolicyKit support: yes -else - echo PolicyKit support: no -fi - - echo Session tracking: ${with_session_tracking} - -if test "${enable_wimax}" = "yes"; then - echo WiMAX support: yes -else - echo WiMAX support: no -fi - -if test "${enable_ppp}" = "yes"; then - echo PPP support: yes + if test "${enable_modify_system}"; then + echo " policykit: yes (permissive modify.system)" + else + echo " policykit: yes (restrictive modify.system)" + fi else - echo PPP support: no + echo " policykit: no" fi +echo -if test "${enable_concheck}" = "yes"; then - echo Connectivity checking support: yes -else - echo Connectivity checking support: no -fi +echo "Features:" +echo " wext: $ac_with_wext" +echo " wimax: $enable_wimax" +echo " ppp: $enable_ppp" +echo " modemmanager-1: $with_modem_manager_1" +echo " concheck: $enable_concheck" +echo -echo libnl version: ${libnl_version} +echo "Configuration plugins" +echo " ifcfg-rh: ${enable_ifcfg_rh}" +echo " ifcfg-suse: ${enable_ifcfg_suse}" +echo " ifupdown: ${enable_ifupdown}" +echo " ifnet: ${enable_ifnet}" +echo -if test "${ac_with_wext}" = "yes"; then - echo WEXT support: yes -else - echo WEXT support: no -fi +echo "Handlers for /etc/resolv.conf:" +echo " resolvconf: ${with_resolvconf}" +echo " netconfig: ${with_netconfig}" +echo +echo "DHCP clients:" +echo " dhclient: $with_dhclient" +echo " dhcpcd: $with_dhcpcd" echo -echo Building documentation: ${with_docs} -echo Building tests: ${with_tests} + +echo "Miscellaneous:" +echo " documentation: $enable_doc" +echo " tests: $enable_tests" +echo " code coverage: $enable_code_coverage" echo |