mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-27 19:59:28 +01:00
343 lines
11 KiB
Plaintext
343 lines
11 KiB
Plaintext
AC_PREREQ([2.69])
|
|
AC_INIT([iwd],[3.0])
|
|
|
|
AC_CONFIG_HEADERS(config.h)
|
|
AC_CONFIG_AUX_DIR(build-aux)
|
|
AC_CONFIG_MACRO_DIR(build-aux)
|
|
|
|
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)
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
COMPILER_FLAGS
|
|
|
|
AC_LANG([C])
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CC_PIE
|
|
AC_PROG_CC_ASAN
|
|
AC_PROG_CC_LSAN
|
|
AC_PROG_CC_UBSAN
|
|
AC_PROG_CC_GCOV
|
|
AC_PROG_INSTALL
|
|
AC_PROG_MKDIR_P
|
|
AC_PROG_LN_S
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
LT_PREREQ(2.2)
|
|
LT_INIT([disable-static])
|
|
|
|
AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization],
|
|
[disable code optimization through compiler]), [
|
|
if (test "${enableval}" = "no"); then
|
|
CFLAGS="$CFLAGS -O0"
|
|
fi
|
|
])
|
|
|
|
if (test "${enable_optimization}" != "no"); then
|
|
CFLAGS="$CFLAGS -O2"
|
|
CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
|
|
fi
|
|
|
|
AC_ARG_ENABLE(debug, AS_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(gcov, AS_HELP_STRING([--enable-gcov],
|
|
[enable compiling with code coverage information]), [
|
|
if (test "${enableval}" = "yes" &&
|
|
test "${ac_cv_prog_cc_profile_arcs}" = "yes" &&
|
|
test "${ac_cv_prog_cc_test_coverage}" = "yes"); then
|
|
CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
|
|
fi
|
|
])
|
|
|
|
if (test "${enable_gcov}" = "yes"); then
|
|
AC_CHECK_PROGS(LCOV, [lcov], "no")
|
|
AC_CHECK_PROGS(GENHTML, [genhtml], "no")
|
|
if (test "${LCOV}" == "no"); then
|
|
AC_MSG_ERROR([lcov is required])
|
|
fi
|
|
if (test "${GENHTML}" == "no"); then
|
|
AC_MSG_ERROR([genhtml is required])
|
|
fi
|
|
fi
|
|
|
|
AM_CONDITIONAL(GCOV, test "${enable_gcov}" != "no")
|
|
|
|
AC_ARG_ENABLE(pie, AS_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
|
|
])
|
|
|
|
save_LIBS=$LIBS
|
|
AC_CHECK_LIB(asan, _init)
|
|
LIBS=$save_LIBS
|
|
|
|
AC_ARG_ENABLE(asan, AS_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, AS_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, AS_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
|
|
])
|
|
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
|
|
daemon_storagedir="${prefix}/var/lib/iwd"
|
|
wired_storagedir="${prefix}/var/lib/ead"
|
|
else
|
|
daemon_storagedir="${localstatedir}/lib/iwd"
|
|
wired_storagedir="${localstatedir}/lib/ead"
|
|
fi
|
|
|
|
AC_SUBST([daemon_storagedir], [${daemon_storagedir}])
|
|
AC_SUBST([wired_storagedir], [${wired_storagedir}])
|
|
|
|
AC_DEFINE_UNQUOTED(DAEMON_STORAGEDIR, "${daemon_storagedir}",
|
|
[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])
|
|
|
|
AC_CHECK_FUNCS(explicit_bzero)
|
|
AC_CHECK_FUNCS(rawmemchr)
|
|
AC_CHECK_FUNCS(reallocarray)
|
|
|
|
AC_CHECK_HEADERS(linux/types.h linux/if_alg.h)
|
|
|
|
# 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
|
|
|
|
AC_ARG_ENABLE([daemon], AS_HELP_STRING([--disable-daemon],
|
|
[don't install iwd system daemon]),
|
|
[enable_daemon=${enableval}])
|
|
AM_CONDITIONAL(DAEMON, test "${enable_daemon}" != "no")
|
|
|
|
AC_ARG_ENABLE([client], AS_HELP_STRING([--disable-client],
|
|
[don't install iwctl client utility]),
|
|
[enable_client=${enableval}])
|
|
if (test "${enable_client}" != "no"); then
|
|
if (test "${enable_libedit}" = "yes"); then
|
|
PKG_CHECK_MODULES(LIBEDIT, libedit >= 3.1, dummy=yes,
|
|
AC_MSG_ERROR(Editline library is required))
|
|
AC_SUBST(LIBEDIT_CFLAGS)
|
|
AC_SUBST(LIBEDIT_LIBS)
|
|
else
|
|
PKG_CHECK_MODULES(READLINE, readline, dummy=yes,
|
|
AC_MSG_ERROR(Readline library is required))
|
|
AC_SUBST(READLINE_CFLAGS)
|
|
AC_SUBST(READLINE_LIBS)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(CLIENT, test "${enable_client}" != "no")
|
|
|
|
AC_ARG_ENABLE([monitor], AS_HELP_STRING([--disable-monitor],
|
|
[don't install iwmon monitor utility]),
|
|
[enable_monitor=${enableval}])
|
|
AM_CONDITIONAL(MONITOR, test "${enable_monitor}" != "no")
|
|
|
|
AC_ARG_ENABLE([dbus-policy], AS_HELP_STRING([--disable-dbus-policy],
|
|
[don't install D-Bus system policy files]),
|
|
[enable_dbus_policy=${enableval}])
|
|
AM_CONDITIONAL(DBUS_POLICY, test "${enable_dbus_policy}" != "no")
|
|
|
|
AC_ARG_WITH([dbus-datadir], AS_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
|
|
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
|
|
fi
|
|
AC_MSG_RESULT([${path_dbus_datadir}])
|
|
fi
|
|
AC_SUBST(DBUS_DATADIR, [${path_dbus_datadir}])
|
|
|
|
AC_ARG_ENABLE([systemd-service], AS_HELP_STRING([--disable-systemd-service],
|
|
[don't install systemd service files]),
|
|
[enable_systemd_service=${enableval}])
|
|
AM_CONDITIONAL(SYSTEMD_SERVICE, test "${enable_systemd_service}" != "no")
|
|
|
|
AC_ARG_ENABLE([manual-pages], AS_HELP_STRING([--disable-manual-pages],
|
|
[don't install manual pages]),
|
|
[enable_manual_pages=${enableval}])
|
|
if (test "${enable_manual_pages}" != "no"); then
|
|
AC_CHECK_PROGS(RST2MAN, [rst2man rst2man.py], "no")
|
|
fi
|
|
AM_CONDITIONAL(MANUAL_PAGES, test "${enable_manual_pages}" != "no")
|
|
AM_CONDITIONAL(RUN_RST2MAN, test "${enable_manual_pages}" != "no" && test "${RST2MAN}" != "no")
|
|
|
|
AC_ARG_WITH([dbus-busdir], AS_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], AS_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}])
|
|
|
|
AC_ARG_WITH([systemd-networkdir], AS_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}])
|
|
|
|
AC_ARG_WITH([systemd-modloaddir], AS_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}])
|
|
|
|
AC_ARG_ENABLE([external_ell], AS_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" ||
|
|
test "${enable_client}" != "no" ||
|
|
test "${enable_monitor}" != "no" ||
|
|
test "${enable_wired}" = "yes" ||
|
|
test "${enable_hwsim}" = "yes"); then
|
|
ell_min_version="0.69"
|
|
else
|
|
ell_min_version="0.5"
|
|
fi
|
|
PKG_CHECK_MODULES(ELL, ell >= ${ell_min_version}, dummy=yes,
|
|
AC_MSG_ERROR(Embedded Linux library >= ${ell_min_version} is required))
|
|
AC_SUBST(ELL_CFLAGS)
|
|
AC_SUBST(ELL_LIBS)
|
|
fi
|
|
AM_CONDITIONAL(EXTERNAL_ELL, test "${enable_external_ell}" = "yes")
|
|
|
|
AC_ARG_ENABLE([libedit], AS_HELP_STRING([--enable-libedit],
|
|
[enable Editline library instead of Readline]),
|
|
[enable_libedit=${enableval}])
|
|
AM_CONDITIONAL(LIBEDIT, test "${enable_libedit}" = "yes")
|
|
|
|
AC_ARG_ENABLE([wired], AS_HELP_STRING([--enable-wired],
|
|
[enable Ethernet authentication support]),
|
|
[enable_wired=${enableval}])
|
|
AM_CONDITIONAL(WIRED, test "${enable_wired}" = "yes")
|
|
|
|
AC_ARG_ENABLE([hwsim], AS_HELP_STRING([--enable-hwsim],
|
|
[enable Wireless simulation utility]),
|
|
[enable_hwsim=${enableval}])
|
|
AM_CONDITIONAL(HWSIM, test "${enable_hwsim}" = "yes")
|
|
|
|
AC_ARG_ENABLE([tools], AS_HELP_STRING([--enable-tools],
|
|
[enable internal testing utilities]),
|
|
[enable_tools=${enableval}])
|
|
AM_CONDITIONAL(TOOLS, test "${enable_tools}" = "yes")
|
|
|
|
AC_ARG_ENABLE([ofono], AS_HELP_STRING([--enable-ofono],
|
|
[enable oFono SIM authentication support]),
|
|
[enable_ofono=${enableval}])
|
|
AM_CONDITIONAL(OFONO, test "${enable_ofono}" = "yes")
|
|
|
|
AC_CONFIG_FILES(Makefile)
|
|
|
|
AC_OUTPUT
|
|
|
|
AC_MSG_RESULT([
|
|
$PACKAGE_NAME $VERSION
|
|
])
|