diff options
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 544 |
1 files changed, 544 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..1c54f608 --- /dev/null +++ b/configure.ac @@ -0,0 +1,544 @@ +AC_PREREQ(2.52) + +AC_INIT(NetworkManager, 0.8.1, dcbw@redhat.com, NetworkManager) +AM_INIT_AUTOMAKE([1.9 subdir-objects tar-ustar no-dist-gzip dist-bzip2]) +AM_MAINTAINER_MODE + +AC_CONFIG_MACRO_DIR([m4]) + +AC_CONFIG_HEADERS([config.h]) + +dnl Define _GNU_SOURCE for various things like strcasestr() +AC_GNU_SOURCE + +dnl +dnl Require programs +dnl +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +dnl ensure that when the Automake generated makefile calls aclocal, +dnl it honours the $ACLOCAL_FLAGS environment variable +ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}" +if test -n "$ac_macro_dir"; then + ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS" +fi +AC_SUBST([ACLOCAL_AMFLAGS]) + +dnl maintainer mode stuff +if test $USE_MAINTAINER_MODE = yes; then + DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED" +else + DISABLE_DEPRECATED="" +fi +AC_SUBST(DISABLE_DEPRECATED) + +dnl +dnl Required headers +dnl +AC_HEADER_STDC +AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h) + +dnl +dnl Checks for typedefs, structures, and compiler characteristics. +dnl +AC_TYPE_MODE_T +AC_TYPE_PID_T +AC_HEADER_TIME + +dnl +dnl Checks for library functions. +dnl +AC_PROG_GCC_TRADITIONAL +AC_FUNC_MEMCMP +AC_CHECK_FUNCS(select socket uname) + +dnl +dnl translation support +dnl +GETTEXT_PACKAGE=NetworkManager +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) +IT_PROG_INTLTOOL([0.35.0]) +AM_GLIB_GNU_GETTEXT + +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 or pardus])) +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") + 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) ;; + *) + echo "Your distribution (${with_distro}) is not yet supported! (patches welcome)" + exit 1 + ;; + esac +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 + +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="") +if ! test x"$ac_distver" = x""; then + AC_DEFINE_UNQUOTED(NM_DIST_VERSION, "$ac_distver", [Define the distribution version string]) +fi + +AC_MSG_CHECKING([Linux Wireless Extensions >= 18]) +AC_TRY_COMPILE([#ifndef __user + #define __user + #endif + #include <sys/types.h> + #include <linux/types.h> + #include <sys/socket.h> + #include <net/if.h> + #include <wireless.h>], + [#ifndef IWEVGENIE + #error "not found" + #endif], + [ac_have_iwevgenie=yes], + [ac_have_iwevgenie=no]) +AC_MSG_RESULT($ac_have_iwevgenie) +if test "$ac_have_iwevgenie" = no; then + AC_MSG_ERROR(wireless-tools library and development headers >= 28pre9 not installed or not functional) +fi + +dnl +dnl Checks for libm - needed for pow() +dnl +LT_LIB_M + +dnl +dnl Checks for libdl - on certain platforms its part of libc +dnl +AC_CHECK_LIB([dl], [dladdr], LIBDL="-ldl", LIBDL="") +AC_SUBST(LIBDL) + +PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.75) +AC_SUBST(DBUS_CFLAGS) +AC_SUBST(DBUS_LIBS) + +PKG_CHECK_MODULES(GLIB, gthread-2.0 glib-2.0 >= 2.18 gobject-2.0) +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) +AC_SUBST(GUDEV_CFLAGS) +AC_SUBST(GUDEV_LIBS) + +PKG_CHECK_MODULES(GIO, gio-2.0) +AC_SUBST(GIO_CFLAGS) +AC_SUBST(GIO_LIBS) + +AC_ARG_WITH(udev-dir, AS_HELP_STRING([--with-udev-dir=DIR], [where the udev base directory is])) +if test -n "$with_udev_dir" ; then + UDEV_BASE_DIR="$with_udev_dir" +else + UDEV_BASE_DIR="/lib/udev" +fi +AC_SUBST(UDEV_BASE_DIR) + +PKG_CHECK_MODULES(LIBNL, libnl-1 >= 1.0-pre8) +AC_SUBST(LIBNL_CFLAGS) +AC_SUBST(LIBNL_LIBS) +NM_LIBNL_CHECK + +PKG_CHECK_MODULES(UUID, uuid) +AC_SUBST(UUID_CFLAGS) +AC_SUBST(UUID_LIBS) + +PKG_CHECK_MODULES(POLKIT, polkit-gobject-1) + +AC_SUBST(POLKIT_CFLAGS) + +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 +with_gnutls=no +if test x"$ac_crypto" = xnss; then + PKG_CHECK_MODULES(NSS, [nss >= 3.11]) + AC_DEFINE(HAVE_NSS, 1, [Define if you have NSS]) + with_nss=yes +elif test x"$ac_crypto" = xgnutls; then + PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2]) + AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) + if test x"$LIBGCRYPT_CONFIG" = xno; then + AC_MSG_ERROR([gnutls explicitly requested but gcrypt not found on system]) + else + AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls]) + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + AC_SUBST(LIBGCRYPT_CFLAGS) + AC_SUBST(LIBGCRYPT_LIBS) + with_gnutls=yes + fi +else + AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and key operations]) +fi +AM_CONDITIONAL(WITH_NSS, test x"$with_nss" != xno) +AM_CONDITIONAL(WITH_GNUTLS, test x"$with_gnutls" != xno) + +# Shouldn't ever trigger this, but just in case... +if test x"$ac_nss" = xno -a x"$ac_gnutls" = xno; then + AC_MSG_ERROR([Could not find required development headers and libraries for '$ac_crypto']) +fi + +GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` +AC_SUBST(GLIB_GENMARSHAL) + +AC_ARG_WITH(dbus-sys-dir, AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is])) + +if test -n "$with_dbus_sys_dir" ; then + DBUS_SYS_DIR="$with_dbus_sys_dir" +else + DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d" +fi +AC_SUBST(DBUS_SYS_DIR) + +# PPPD +AC_CHECK_HEADERS(pppd/pppd.h,, + AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.)) + +AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory])) + +if test -n "$with_pppd_plugin_dir" ; then + PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" +else + PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5" +fi +AC_SUBST(PPPD_PLUGIN_DIR) + +# 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 + /*) + DHCLIENT_PATH="${with_dhclient}" + AC_MSG_NOTICE(using dhclient at ${DHCLIENT_PATH}) + ;; + no) AC_MSG_NOTICE(dhclient support disabled) + ;; + *) + AC_MSG_CHECKING(for dhclient) + # NM only works with ISC dhclient - other derivatives don't have + # the same userland. NM also requires dhclient 4.x since older + # versions do not have IPv6 support. + 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"; break;; + esac + done + if test -n "${DHCLIENT_PATH}"; then + AC_MSG_RESULT($DHCLIENT_PATH) + else + AC_MSG_RESULT(no) + fi + ;; +esac + +# dhcpcd 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}/dhclient" || continue + case `"$path/dhcpcd" --version 2>/dev/null` in + "dhcpcd "[123]*);; + "dhcpcd "*) DHCP_CLIENT_PATH="$path/dhcpcd"; break;; + esac + done + if test -n "${DHCPCD_PATH}"; then + AC_MSG_RESULT($DHCPCD_PATH) + else + AC_MSG_RESULT(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, ${DHCP_CLIENT_PATH}]) +fi +AC_SUBST(DHCLIENT_PATH) +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 + ;; +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 + +# iptables path +AC_ARG_WITH(iptables, AC_HELP_STRING([--with-iptables=/path/to/iptables], [path to iptables])) +if test "x${with_iptables}" = x; then + AC_PATH_PROG(IPTABLES_PATH, iptables, [], $PATH:/sbin:/usr/sbin) + if ! test -x "$IPTABLES_PATH"; then + AC_MSG_ERROR(iptables was not installed.) + fi +else + IPTABLES_PATH="$with_iptables" +fi +AC_DEFINE_UNQUOTED(IPTABLES_PATH, "$IPTABLES_PATH", [Define to path of iptables binary]) +AC_SUBST(IPTABLES_PATH) + +# system CA certificates path +AC_ARG_WITH(system-ca-path, AS_HELP_STRING([--with-system-ca-path=/path/to/ssl/certs], [path to system CA certificates])) +if test "x${with_system_ca_path}" = x; then + SYSTEM_CA_PATH=/etc/ssl/certs +else + SYSTEM_CA_PATH="$with_system_ca_path" +fi +AC_DEFINE_UNQUOTED(SYSTEM_CA_PATH, "$SYSTEM_CA_PATH", [Define to path to system CA certificates]) +AC_SUBST(SYSTEM_CA_PATH) + +NM_COMPILER_WARNINGS + +GTK_DOC_CHECK(1.0) + +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 + + +AC_CONFIG_FILES([ +Makefile +include/Makefile +src/Makefile +src/tests/Makefile +marshallers/Makefile +src/logging/Makefile +src/named-manager/Makefile +src/vpn-manager/Makefile +src/dhcp-manager/Makefile +src/ip6-manager/Makefile +src/supplicant-manager/Makefile +src/supplicant-manager/tests/Makefile +src/ppp-manager/Makefile +src/dnsmasq-manager/Makefile +src/modem-manager/Makefile +src/bluez-manager/Makefile +src/system-settings/Makefile +src/backends/Makefile +libnm-util/libnm-util.pc +libnm-util/Makefile +libnm-util/tests/Makefile +libnm-util/tests/certs/Makefile +libnm-glib/libnm-glib.pc +libnm-glib/libnm-glib-vpn.pc +libnm-glib/Makefile +callouts/Makefile +tools/Makefile +system-settings/Makefile +system-settings/plugins/Makefile +system-settings/plugins/ifupdown/Makefile +system-settings/plugins/ifcfg-rh/Makefile +system-settings/plugins/ifcfg-rh/tests/Makefile +system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile +system-settings/plugins/ifcfg-suse/Makefile +system-settings/plugins/keyfile/Makefile +system-settings/plugins/keyfile/io/Makefile +system-settings/plugins/keyfile/tests/Makefile +system-settings/plugins/keyfile/tests/keyfiles/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 +introspection/Makefile +man/Makefile +man/NetworkManager.8 +man/NetworkManager.conf.5 +man/nm-system-settings.conf.5 +man/nm-tool.1 +man/nmcli.1 +po/Makefile.in +policy/Makefile +docs/Makefile +docs/libnm-glib/Makefile +docs/libnm-util/Makefile +NetworkManager.pc +examples/Makefile +examples/python/Makefile +]) +AC_OUTPUT + +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} +else + echo ISC dhclient support: no +fi + +if test -n "${DHCPCD_PATH}"; then + echo dhcpcd support: ${DHCPCD_PATH} +else + echo dhcpcd support: no +fi + +echo +echo Building documentation: ${with_docs} +echo Building tests: ${with_tests} +echo + |