| AC_PREREQ(2.60) |
| AC_INIT(iwd, 1.14) |
| |
| 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_INSTALL |
| AC_PROG_MKDIR_P |
| AC_PROG_LN_S |
| |
| AC_SYS_LARGEFILE |
| |
| LT_PREREQ(2.2) |
| LT_INIT([disable-static]) |
| |
| AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization], |
| [disable code optimization through compiler]), [ |
| if (test "${enableval}" = "no"); then |
| CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -O0" |
| 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 |
| ]) |
| |
| 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 |
| ]) |
| 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_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], AC_HELP_STRING([--disable-daemon], |
| [don't install iwd system daemon]), |
| [enable_daemon=${enableval}]) |
| AM_CONDITIONAL(DAEMON, test "${enable_daemon}" != "no") |
| |
| AC_ARG_ENABLE([client], AC_HELP_STRING([--disable-client], |
| [don't install iwctl client utility]), |
| [enable_client=${enableval}]) |
| if (test "${enable_client}" != "no"); then |
| AC_CHECK_HEADERS(readline/readline.h, enable_readline=yes, |
| AC_MSG_ERROR(readline header files are required)) |
| PKG_CHECK_MODULES(READLINE, readline, dummy=yes, READLINE_LIBS=-lreadline) |
| AC_SUBST(READLINE_CFLAGS) |
| AC_SUBST(READLINE_LIBS) |
| fi |
| 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") |
| |
| AC_ARG_ENABLE([dbus-policy], AC_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], 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 |
| 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], AC_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], AC_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], 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}]) |
| |
| 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}]) |
| |
| 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}]) |
| |
| 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" || |
| test "${enable_client}" != "no" || |
| test "${enable_monitor}" != "no" || |
| test "${enable_wired}" = "yes" || |
| test "${enable_hwsim}" = "yes"); then |
| ell_min_version="0.40" |
| 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([wired], AC_HELP_STRING([--enable-wired], |
| [enable Ethernet authentication support]), |
| [enable_wired=${enableval}]) |
| AM_CONDITIONAL(WIRED, test "${enable_wired}" = "yes") |
| |
| AC_ARG_ENABLE([hwsim], AC_HELP_STRING([--enable-hwsim], |
| [enable Wireless simulation utility]), |
| [enable_hwsim=${enableval}]) |
| AM_CONDITIONAL(HWSIM, test "${enable_hwsim}" = "yes") |
| |
| AC_ARG_ENABLE([tools], AC_HELP_STRING([--enable-tools], |
| [enable internal testing utilities]), |
| [enable_tools=${enableval}]) |
| AM_CONDITIONAL(TOOLS, test "${enable_tools}" = "yes") |
| |
| AC_ARG_ENABLE([ofono], AC_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 |
| ]) |