2014-04-26 02:57:48 +02:00
|
|
|
AC_PREREQ(2.60)
|
2021-08-22 06:19:21 +02:00
|
|
|
AC_INIT(iwd, 1.17)
|
2014-04-26 02:57:48 +02:00
|
|
|
|
2014-04-28 01:12:54 +02:00
|
|
|
AC_CONFIG_HEADERS(config.h)
|
|
|
|
AC_CONFIG_AUX_DIR(build-aux)
|
|
|
|
AC_CONFIG_MACRO_DIR(build-aux)
|
|
|
|
|
2014-04-26 02:57:48 +02:00
|
|
|
AM_INIT_AUTOMAKE([foreign subdir-objects color-tests silent-rules
|
|
|
|
tar-pax no-dist-gzip dist-xz])
|
|
|
|
|
|
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
|
|
|
|
AC_PREFIX_DEFAULT(/usr/local)
|
|
|
|
|
2017-08-30 23:09:42 +02:00
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
|
2014-07-15 22:18:59 +02:00
|
|
|
COMPILER_FLAGS
|
|
|
|
|
|
|
|
AC_LANG_C
|
|
|
|
|
2014-04-26 02:57:48 +02:00
|
|
|
AC_PROG_CC
|
2014-07-15 22:18:59 +02:00
|
|
|
AC_PROG_CC_PIE
|
2019-01-11 18:32:54 +01:00
|
|
|
AC_PROG_CC_ASAN
|
|
|
|
AC_PROG_CC_LSAN
|
|
|
|
AC_PROG_CC_UBSAN
|
2014-04-26 02:57:48 +02:00
|
|
|
AC_PROG_INSTALL
|
2014-04-28 01:12:54 +02:00
|
|
|
AC_PROG_MKDIR_P
|
|
|
|
AC_PROG_LN_S
|
|
|
|
|
2018-12-07 16:40:18 +01:00
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
2014-04-28 01:12:54 +02:00
|
|
|
LT_PREREQ(2.2)
|
|
|
|
LT_INIT([disable-static])
|
|
|
|
|
2014-07-16 02:10:15 +02:00
|
|
|
AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization],
|
|
|
|
[disable code optimization through compiler]), [
|
|
|
|
if (test "${enableval}" = "no"); then
|
2016-08-10 00:32:56 +02:00
|
|
|
CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -O0"
|
2014-07-16 02:10:15 +02:00
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],
|
|
|
|
[enable compiling with debugging information]), [
|
|
|
|
if (test "${enableval}" = "yes" &&
|
|
|
|
test "${ac_cv_prog_cc_g}" = "yes"); then
|
|
|
|
CFLAGS="$CFLAGS -g"
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(pie, AC_HELP_STRING([--enable-pie],
|
|
|
|
[enable position independent executables flag]), [
|
|
|
|
if (test "${enableval}" = "yes" &&
|
|
|
|
test "${ac_cv_prog_cc_pie}" = "yes"); then
|
|
|
|
CFLAGS="$CFLAGS -fPIE"
|
|
|
|
LDFLAGS="$LDFLAGS -pie"
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
2019-01-11 18:32:54 +01:00
|
|
|
save_LIBS=$LIBS
|
|
|
|
AC_CHECK_LIB(asan, _init)
|
|
|
|
LIBS=$save_LIBS
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(asan, AC_HELP_STRING([--enable-asan],
|
|
|
|
[enable linking with address sanitizer]), [
|
|
|
|
if (test "${enableval}" = "yes" &&
|
|
|
|
test "${ac_cv_lib_asan__init}" = "yes" &&
|
|
|
|
test "${ac_cv_prog_cc_asan}" = "yes"); then
|
|
|
|
CFLAGS="$CFLAGS -fsanitize=address";
|
|
|
|
LDFLAGS="$LDFLAGS -fsanitize=address"
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
save_LIBS=$LIBS
|
|
|
|
AC_CHECK_LIB(lsan, _init)
|
|
|
|
LIBS=$save_LIBS
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(lsan, AC_HELP_STRING([--enable-lsan],
|
|
|
|
[enable linking with leak sanitizer]), [
|
|
|
|
if (test "${enableval}" = "yes" &&
|
|
|
|
test "${ac_cv_lib_lsan__init}" = "yes" &&
|
|
|
|
test "${ac_cv_prog_cc_lsan}" = "yes"); then
|
|
|
|
CFLAGS="$CFLAGS -fsanitize=leak";
|
|
|
|
LDFLAGS="$LDFLAGS -fsanitize=leak"
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
save_LIBS=$LIBS
|
|
|
|
AC_CHECK_LIB(ubsan, _init)
|
|
|
|
LIBS=$save_LIBS
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(ubsan, AC_HELP_STRING([--enable-ubsan],
|
|
|
|
[enable linking with undefined behavior sanitizer]), [
|
|
|
|
if (test "${enableval}" = "yes" &&
|
|
|
|
test "${ac_cv_lib_ubsan__init}" = "yes" &&
|
|
|
|
test "${ac_cv_prog_cc_ubsan}" = "yes"); then
|
|
|
|
CFLAGS="$CFLAGS -fsanitize=undefined";
|
|
|
|
LDFLAGS="$LDFLAGS -fsanitize=undefined"
|
|
|
|
fi
|
|
|
|
])
|
2015-04-26 18:14:08 +02:00
|
|
|
if (test "${prefix}" = "NONE"); then
|
|
|
|
dnl no prefix and no localstatedir, so default to /var
|
|
|
|
if (test "$localstatedir" = '${prefix}/var'); then
|
|
|
|
AC_SUBST([localstatedir], ['/var'])
|
|
|
|
fi
|
|
|
|
|
|
|
|
prefix="${ac_default_prefix}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if (test "$localstatedir" = '${prefix}/var'); then
|
2018-09-14 17:58:44 +02:00
|
|
|
daemon_storagedir="${prefix}/var/lib/iwd"
|
2018-09-14 18:02:13 +02:00
|
|
|
wired_storagedir="${prefix}/var/lib/ead"
|
2015-04-26 18:14:08 +02:00
|
|
|
else
|
2018-09-14 17:58:44 +02:00
|
|
|
daemon_storagedir="${localstatedir}/lib/iwd"
|
2018-09-14 18:02:13 +02:00
|
|
|
wired_storagedir="${localstatedir}/lib/ead"
|
2015-04-26 18:14:08 +02:00
|
|
|
fi
|
|
|
|
|
2019-08-03 09:52:28 +02:00
|
|
|
AC_SUBST([daemon_storagedir], [${daemon_storagedir}])
|
|
|
|
AC_SUBST([wired_storagedir], [${wired_storagedir}])
|
|
|
|
|
2018-09-14 17:58:44 +02:00
|
|
|
AC_DEFINE_UNQUOTED(DAEMON_STORAGEDIR, "${daemon_storagedir}",
|
2018-09-14 18:02:13 +02:00
|
|
|
[Directory for Wireless daemon storage files])
|
|
|
|
AC_DEFINE_UNQUOTED(DAEMON_CONFIGDIR, "/etc/iwd",
|
|
|
|
[Directory for Wireless daemon configuration])
|
|
|
|
|
|
|
|
AC_DEFINE_UNQUOTED(WIRED_STORAGEDIR, "${wired_storagedir}",
|
|
|
|
[Directory for Ethernet daemon storage files])
|
2016-11-02 21:25:09 +01:00
|
|
|
|
2019-03-28 09:14:40 +01:00
|
|
|
AC_CHECK_FUNCS(explicit_bzero)
|
2020-02-03 18:54:28 +01:00
|
|
|
AC_CHECK_FUNCS(rawmemchr)
|
2019-03-28 09:14:40 +01:00
|
|
|
|
2015-02-27 21:04:34 +01:00
|
|
|
AC_CHECK_HEADERS(linux/types.h linux/if_alg.h)
|
|
|
|
|
2018-11-24 03:27:04 +01:00
|
|
|
# In maintainer mode: try to build with application backtrace and disable PIE.
|
|
|
|
if (test "${USE_MAINTAINER_MODE}" = yes); then
|
|
|
|
AC_SEARCH_LIBS([backtrace], [execinfo],
|
|
|
|
[
|
|
|
|
AC_DEFINE([HAVE_BACKTRACE], [1],
|
|
|
|
[Define to 1 if you have backtrace(3).])
|
|
|
|
CFLAGS="$CFLAGS -fno-PIE"
|
|
|
|
LDFLAGS="$LDFLAGS -no-pie"
|
|
|
|
])
|
|
|
|
fi
|
2018-05-18 00:41:11 +02:00
|
|
|
|
2018-09-14 14:36:07 +02:00
|
|
|
AC_ARG_ENABLE([daemon], AC_HELP_STRING([--disable-daemon],
|
|
|
|
[don't install iwd system daemon]),
|
|
|
|
[enable_daemon=${enableval}])
|
|
|
|
AM_CONDITIONAL(DAEMON, test "${enable_daemon}" != "no")
|
|
|
|
|
2018-09-14 14:27:26 +02:00
|
|
|
AC_ARG_ENABLE([client], AC_HELP_STRING([--disable-client],
|
|
|
|
[don't install iwctl client utility]),
|
|
|
|
[enable_client=${enableval}])
|
2018-02-10 11:10:26 +01:00
|
|
|
if (test "${enable_client}" != "no"); then
|
|
|
|
AC_CHECK_HEADERS(readline/readline.h, enable_readline=yes,
|
2017-03-23 17:48:58 +01:00
|
|
|
AC_MSG_ERROR(readline header files are required))
|
2020-12-16 08:02:55 +01:00
|
|
|
PKG_CHECK_MODULES(READLINE, readline, dummy=yes, READLINE_LIBS=-lreadline)
|
|
|
|
AC_SUBST(READLINE_CFLAGS)
|
|
|
|
AC_SUBST(READLINE_LIBS)
|
2018-02-10 11:10:26 +01:00
|
|
|
fi
|
2018-02-09 17:14:31 +01:00
|
|
|
AM_CONDITIONAL(CLIENT, test "${enable_client}" != "no")
|
|
|
|
|
|
|
|
AC_ARG_ENABLE([monitor], AC_HELP_STRING([--disable-monitor],
|
|
|
|
[don't install iwmon monitor utility]),
|
|
|
|
[enable_monitor=${enableval}])
|
|
|
|
AM_CONDITIONAL(MONITOR, test "${enable_monitor}" != "no")
|
|
|
|
|
2018-02-09 16:36:12 +01:00
|
|
|
AC_ARG_ENABLE([dbus-policy], AC_HELP_STRING([--disable-dbus-policy],
|
2018-10-20 07:12:43 +02:00
|
|
|
[don't install D-Bus system policy files]),
|
2018-02-09 16:36:12 +01:00
|
|
|
[enable_dbus_policy=${enableval}])
|
|
|
|
AM_CONDITIONAL(DBUS_POLICY, test "${enable_dbus_policy}" != "no")
|
|
|
|
|
|
|
|
AC_ARG_WITH([dbus-datadir], AC_HELP_STRING([--with-dbus-datadir=DIR],
|
|
|
|
[path to D-Bus data directory]),
|
|
|
|
[path_dbus_datadir=${withval}])
|
|
|
|
if (test "${enable_dbus_policy}" != "no" && test -z "${path_dbus_datadir}"); then
|
|
|
|
AC_MSG_CHECKING([D-Bus data directory])
|
|
|
|
path_dbus_datadir="`$PKG_CONFIG --variable=datadir dbus-1`"
|
|
|
|
if (test -z "${path_dbus_datadir}"); then
|
2018-02-10 11:05:58 +01:00
|
|
|
path_dbus_datadir="`$PKG_CONFIG --variable=sysconfdir dbus-1`"
|
|
|
|
if (test -z "${path_dbus_datadir}"); then
|
|
|
|
AC_MSG_ERROR([D-Bus data directory is required])
|
|
|
|
fi
|
2017-05-05 00:47:40 +02:00
|
|
|
fi
|
2018-02-09 16:36:12 +01:00
|
|
|
AC_MSG_RESULT([${path_dbus_datadir}])
|
2017-05-05 00:47:40 +02:00
|
|
|
fi
|
2018-02-09 16:36:12 +01:00
|
|
|
AC_SUBST(DBUS_DATADIR, [${path_dbus_datadir}])
|
2017-05-05 00:47:40 +02:00
|
|
|
|
2018-09-14 15:54:20 +02:00
|
|
|
AC_ARG_ENABLE([systemd-service], AC_HELP_STRING([--disable-systemd-service],
|
2018-10-20 07:12:43 +02:00
|
|
|
[don't install systemd service files]),
|
2018-09-14 15:54:20 +02:00
|
|
|
[enable_systemd_service=${enableval}])
|
|
|
|
AM_CONDITIONAL(SYSTEMD_SERVICE, test "${enable_systemd_service}" != "no")
|
|
|
|
|
2019-09-22 21:52:47 +02:00
|
|
|
AC_ARG_ENABLE([manual-pages], AC_HELP_STRING([--disable-manual-pages],
|
|
|
|
[don't install manual pages]),
|
|
|
|
[enable_manual_pages=${enableval}])
|
2019-10-01 16:15:28 +02:00
|
|
|
if (test "${enable_manual_pages}" != "no"); then
|
2019-10-03 10:05:19 +02:00
|
|
|
AC_CHECK_PROGS(RST2MAN, [rst2man rst2man.py], "no")
|
2019-09-22 21:52:47 +02:00
|
|
|
fi
|
2019-10-01 16:15:28 +02:00
|
|
|
AM_CONDITIONAL(MANUAL_PAGES, test "${enable_manual_pages}" != "no")
|
2019-10-03 10:27:06 +02:00
|
|
|
AM_CONDITIONAL(RUN_RST2MAN, test "${enable_manual_pages}" != "no" && test "${RST2MAN}" != "no")
|
2019-09-22 21:52:47 +02:00
|
|
|
|
2018-09-14 15:54:20 +02:00
|
|
|
AC_ARG_WITH([dbus-busdir], AC_HELP_STRING([--with-dbus-busdir=DIR],
|
|
|
|
[path to D-Bus bus services directory]),
|
|
|
|
[path_dbus_busdir=${withval}])
|
|
|
|
if (test "${enable_systemd_service}" != "no" && test -z "${path_dbus_busdir}"); then
|
|
|
|
AC_MSG_CHECKING([D-Bus bus services directory])
|
|
|
|
path_dbus_busdir="`$PKG_CONFIG --variable=system_bus_services_dir dbus-1`"
|
|
|
|
if (test -z "${path_dbus_busdir}"); then
|
|
|
|
AC_MSG_ERROR([D-Bus bus services directory is required])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([${path_dbus_busdir}])
|
|
|
|
fi
|
|
|
|
AC_SUBST(DBUS_BUSDIR, [${path_dbus_busdir}])
|
|
|
|
|
|
|
|
AC_ARG_WITH([systemd-unitdir], AC_HELP_STRING([--with-systemd-unitdir=DIR],
|
|
|
|
[path to systemd unit directory]),
|
|
|
|
[path_systemd_unitdir=${withval}])
|
|
|
|
if (test "${enable_systemd_service}" != "no" && test -z "${path_systemd_unitdir}"); then
|
|
|
|
AC_MSG_CHECKING([systemd unit directory])
|
|
|
|
path_systemd_unitdir="`$PKG_CONFIG --variable=systemdsystemunitdir systemd`"
|
|
|
|
if (test -z "${path_systemd_unitdir}"); then
|
|
|
|
AC_MSG_ERROR([systemd unit directory is required])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([${path_systemd_unitdir}])
|
|
|
|
fi
|
|
|
|
AC_SUBST(SYSTEMD_UNITDIR, [${path_systemd_unitdir}])
|
|
|
|
|
2019-10-25 00:15:05 +02:00
|
|
|
AC_ARG_WITH([systemd-networkdir], AC_HELP_STRING([--with-systemd-networkdir=DIR],
|
|
|
|
[path to systemd network directory]),
|
|
|
|
[path_systemd_networkdir=${withval}])
|
|
|
|
if (test "${enable_systemd_service}" != "no" && test -z "${path_systemd_networkdir}"); then
|
|
|
|
AC_MSG_CHECKING([systemd network directory])
|
|
|
|
path_systemd_networkdir="`$PKG_CONFIG --variable=systemdutildir systemd`"
|
|
|
|
if (test -z "${path_systemd_networkdir}"); then
|
|
|
|
AC_MSG_ERROR([systemd network directory is required])
|
|
|
|
fi
|
|
|
|
path_systemd_networkdir="${path_systemd_networkdir}/network"
|
|
|
|
AC_MSG_RESULT([${path_systemd_networkdir}])
|
|
|
|
fi
|
|
|
|
AC_SUBST(SYSTEMD_NETWORKDIR, [${path_systemd_networkdir}])
|
|
|
|
|
2019-01-23 18:20:58 +01:00
|
|
|
AC_ARG_WITH([systemd-modloaddir], AC_HELP_STRING([--with-systemd-modloaddir=DIR],
|
|
|
|
[path to systemd modules load directory]),
|
|
|
|
[path_systemd_modloaddir=${withval}])
|
|
|
|
if (test "${enable_systemd_service}" != "no" && test -z "${path_systemd_modloaddir}"); then
|
|
|
|
AC_MSG_CHECKING([systemd modules load directory])
|
|
|
|
path_systemd_modloaddir="`$PKG_CONFIG --variable=modulesloaddir systemd`"
|
|
|
|
if (test -z "${path_systemd_modloaddir}"); then
|
|
|
|
AC_MSG_ERROR([systemd modules load directory is required])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([${path_systemd_modloaddir}])
|
|
|
|
fi
|
|
|
|
AC_SUBST(SYSTEMD_MODLOADDIR, [${path_systemd_modloaddir}])
|
|
|
|
|
2018-10-18 20:31:29 +02:00
|
|
|
AC_ARG_ENABLE([external_ell], AC_HELP_STRING([--enable-external-ell],
|
|
|
|
[enable external Embedded Linux library]),
|
|
|
|
[enable_external_ell=${enableval}])
|
|
|
|
if (test "${enable_external_ell}" = "yes"); then
|
|
|
|
if (test "${enable_daemon}" != "no" ||
|
2018-10-20 20:05:11 +02:00
|
|
|
test "${enable_client}" != "no" ||
|
2018-10-18 20:31:29 +02:00
|
|
|
test "${enable_monitor}" != "no" ||
|
|
|
|
test "${enable_wired}" = "yes" ||
|
|
|
|
test "${enable_hwsim}" = "yes"); then
|
2021-08-22 06:17:52 +02:00
|
|
|
ell_min_version="0.43"
|
2018-10-18 20:31:29 +02:00
|
|
|
else
|
|
|
|
ell_min_version="0.5"
|
|
|
|
fi
|
|
|
|
PKG_CHECK_MODULES(ELL, ell >= ${ell_min_version}, dummy=yes,
|
2018-11-09 20:49:19 +01:00
|
|
|
AC_MSG_ERROR(Embedded Linux library >= ${ell_min_version} is required))
|
2018-10-18 20:31:29 +02:00
|
|
|
AC_SUBST(ELL_CFLAGS)
|
|
|
|
AC_SUBST(ELL_LIBS)
|
|
|
|
fi
|
|
|
|
AM_CONDITIONAL(EXTERNAL_ELL, test "${enable_external_ell}" = "yes")
|
|
|
|
|
2018-09-14 13:29:58 +02:00
|
|
|
|
2018-10-18 19:26:29 +02:00
|
|
|
AC_ARG_ENABLE([wired], AC_HELP_STRING([--enable-wired],
|
2018-09-14 13:47:51 +02:00
|
|
|
[enable Ethernet authentication support]),
|
|
|
|
[enable_wired=${enableval}])
|
|
|
|
AM_CONDITIONAL(WIRED, test "${enable_wired}" = "yes")
|
|
|
|
|
2018-10-18 19:26:29 +02:00
|
|
|
AC_ARG_ENABLE([hwsim], AC_HELP_STRING([--enable-hwsim],
|
2018-09-14 15:24:15 +02:00
|
|
|
[enable Wireless simulation utility]),
|
|
|
|
[enable_hwsim=${enableval}])
|
|
|
|
AM_CONDITIONAL(HWSIM, test "${enable_hwsim}" = "yes")
|
|
|
|
|
2018-10-18 19:26:29 +02:00
|
|
|
AC_ARG_ENABLE([tools], AC_HELP_STRING([--enable-tools],
|
2018-09-14 13:46:55 +02:00
|
|
|
[enable internal testing utilities]),
|
|
|
|
[enable_tools=${enableval}])
|
|
|
|
AM_CONDITIONAL(TOOLS, test "${enable_tools}" = "yes")
|
|
|
|
|
2019-08-03 09:47:53 +02:00
|
|
|
AC_ARG_ENABLE([ofono], AC_HELP_STRING([--enable-ofono],
|
|
|
|
[enable oFono SIM authentication support]),
|
|
|
|
[enable_ofono=${enableval}])
|
|
|
|
AM_CONDITIONAL(OFONO, test "${enable_ofono}" = "yes")
|
|
|
|
|
2014-04-28 01:12:54 +02:00
|
|
|
AC_CONFIG_FILES(Makefile)
|
|
|
|
|
|
|
|
AC_OUTPUT
|
2014-04-26 02:57:48 +02:00
|
|
|
|
2014-04-28 01:12:54 +02:00
|
|
|
AC_MSG_RESULT([
|
|
|
|
$PACKAGE_NAME $VERSION
|
|
|
|
])
|