| AC_PREREQ(2.60) |
| AC_INIT(neard, 0.17, [linux-nfc@lists.01.org]) |
| AC_CONFIG_MACRO_DIR([m4]) |
| |
| AM_INIT_AUTOMAKE([foreign subdir-objects color-tests]) |
| AC_CONFIG_HEADERS(config.h) |
| |
| m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) |
| |
| AM_MAINTAINER_MODE |
| |
| # Do not expand the default variables so that they can be changed at build |
| # time, in the make command-line. |
| if (test "${libdir}" = '${exec_prefix}/lib'); then |
| libdir='${prefix}/lib' |
| fi |
| |
| # pkglibdir is defined by automake but autoconf parses the neard.pc.in |
| # which uses pkglibdir, therefore define it manually in autoconf. |
| AC_SUBST([pkglibdir], ["\${libdir}/${PACKAGE_NAME}"]) |
| |
| plugindir='${pkglibdir}/plugins' |
| se_plugindir='${pkglibdir}/plugins-se' |
| AC_SUBST(plugindir) |
| AC_SUBST(se_plugindir) |
| |
| PKG_PROG_PKG_CONFIG |
| |
| AC_LANG([C]) |
| |
| AC_PROG_CC |
| NEARD_PROG_CC_PIE |
| NEARD_PROG_CC_ASAN |
| NEARD_PROG_CC_LSAN |
| NEARD_PROG_CC_UBSAN |
| AC_PROG_INSTALL |
| AC_PROG_MKDIR_P |
| |
| m4_define([_LT_AC_TAGCONFIG], []) |
| m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])]) |
| |
| m4_include([accflags.m4]) |
| NEARD_COMPILER_FLAGS |
| |
| LT_INIT([disable-static]) |
| |
| AM_CONDITIONAL(READLINE, test "${enable_readline}" = "yes") |
| |
| AC_ARG_ENABLE(systemd, AS_HELP_STRING([--disable-systemd], |
| [disable systemd integration]), [enable_systemd=${enableval}]) |
| AM_CONDITIONAL(SYSTEMD, test "${enable_systemd}" != "no") |
| |
| AC_ARG_WITH([systemdsystemunitdir], |
| AS_HELP_STRING([--with-systemdsystemunitdir=DIR], |
| [path to systemd system unit directory]), |
| [path_systemunitdir=${withval}]) |
| if (test "${enable_systemd}" != "no" && test -z "${path_systemunitdir}"); then |
| AC_MSG_CHECKING([systemd system unit dir]) |
| path_systemunitdir="`$PKG_CONFIG --variable=systemdsystemunitdir systemd`" |
| if (test -z "${path_systemunitdir}"); then |
| AC_MSG_ERROR([systemd system unit directory is required]) |
| fi |
| AC_MSG_RESULT([${path_systemunitdir}]) |
| fi |
| AC_SUBST(SYSTEMD_SYSTEMUNITDIR, [${path_systemunitdir}]) |
| |
| AC_ARG_WITH([systemduserunitdir], |
| AS_HELP_STRING([--with-systemduserunitdir=DIR], |
| [path to systemd user unit directory]), |
| [path_userunitdir=${withval}]) |
| if (test "${enable_systemd}" != "no" && test -z "${path_userunitdir}"); then |
| AC_MSG_CHECKING([systemd user unit dir]) |
| path_userunitdir="`$PKG_CONFIG --variable=systemduserunitdir systemd`" |
| if (test -z "${path_userunitdir}"); then |
| AC_MSG_ERROR([systemd user unit directory is required]) |
| fi |
| AC_MSG_RESULT([${path_userunitdir}]) |
| fi |
| AC_SUBST(SYSTEMD_USERUNITDIR, [${path_userunitdir}]) |
| |
| AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization], |
| [disable code optimization through compiler]), [ |
| if (test "${enableval}" = "no"); then |
| CFLAGS="$CFLAGS -O0" |
| 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(pie, AS_HELP_STRING([--enable-pie], |
| [enable position independent executables flag]), [ |
| if (test "${enableval}" = "yes" && |
| test "${neard_cv_prog_cc_pie}" = "yes"); then |
| CFLAGS="$CFLAGS -fPIE" |
| LDFLAGS="$LDFLAGS -pie" |
| fi |
| ]) |
| |
| AC_CHECK_LIB(dl, dlopen, dummy=yes, |
| AC_MSG_ERROR(dynamic linking loader is required)) |
| |
| 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 "${neard_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 "${neard_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 "${neard_cv_prog_cc_ubsan}" = "yes"); then |
| CFLAGS="$CFLAGS -fsanitize=undefined"; |
| LDFLAGS="$LDFLAGS -fsanitize=undefined" |
| fi |
| ]) |
| |
| GLIB_DEPS="glib-2.0 >= 2.28" |
| PKG_CHECK_MODULES(GLIB, [${GLIB_DEPS}], dummy=yes, |
| AC_MSG_ERROR(GLib >= 2.28 is required)) |
| AC_SUBST(GLIB_CFLAGS) |
| AC_SUBST(GLIB_LIBS) |
| AC_SUBST(GLIB_DEPS) |
| |
| DBUS_DEPS="dbus-1 >= 1.2" |
| PKG_CHECK_MODULES(DBUS, [${DBUS_DEPS}], dummy=yes, |
| AC_MSG_ERROR(D-Bus >= 1.2 is required)) |
| AC_SUBST(DBUS_CFLAGS) |
| AC_SUBST(DBUS_LIBS) |
| AC_SUBST(DBUS_DEPS) |
| |
| LIBNL3_DEPS="libnl-3.0 libnl-genl-3.0" |
| PKG_CHECK_MODULES(LIBNL3, [${LIBNL3_DEPS}], [ |
| NETLINK_CFLAGS=${LIBNL3_CFLAGS} |
| NETLINK_LIBS=${LIBNL3_LIBS} |
| NETLINK_DEPS=${LIBNL3_DEPS} |
| ], [ |
| LIBNL2_DEPS="libnl-2.0" |
| PKG_CHECK_MODULES(LIBNL2, [${LIBNL2_DEPS}], [ |
| NETLINK_CFLAGS=${LIBNL2_CFLAGS} |
| NETLINK_LIBS=${LIBNL2_LIBS} |
| NETLINK_DEPS=${LIBNL2_DEPS} |
| ], [ |
| LIBNL1_DEPS="libnl-1" |
| PKG_CHECK_MODULES(LIBNL1, [${LIBNL1_DEPS}], dummy=yes, |
| AC_MSG_ERROR(Netlink library is required)) |
| AC_DEFINE(NEED_LIBNL_COMPAT, 1, |
| [Define to 1 if you need libnl-1 compat functions.]) |
| NETLINK_CFLAGS=${LIBNL1_CFLAGS} |
| NETLINK_LIBS=${LIBNL1_LIBS} |
| NETLINK_DEPS=${LIBNL1_DEPS} |
| ]) |
| ]) |
| AC_SUBST(NETLINK_CFLAGS) |
| AC_SUBST(NETLINK_LIBS) |
| AC_SUBST(NETLINK_DEPS) |
| |
| AC_ARG_ENABLE(test, AS_HELP_STRING([--enable-test], |
| [enable test/example scripts]), |
| [enable_test=${enableval}]) |
| AM_CONDITIONAL(TEST, test "${enable_test}" = "yes") |
| |
| AC_ARG_ENABLE(tools, AS_HELP_STRING([--enable-tools], |
| [enable testing tools]), |
| [enable_tools=${enableval}]) |
| AM_CONDITIONAL(TOOLS, test "${enable_tools}" = "yes") |
| |
| AC_ARG_ENABLE(nfctype1, AS_HELP_STRING([--disable-nfctype1], |
| [disable NFC forum type 1 tags support]), |
| [enable_nfctype1=${enableval}]) |
| AM_CONDITIONAL(NFCTYPE1, test "${enable_nfctype1}" != "no") |
| |
| AC_ARG_ENABLE(nfctype2, AS_HELP_STRING([--disable-nfctype2], |
| [disable NFC forum type 2 tags support]), |
| [enable_nfctype2=${enableval}]) |
| AM_CONDITIONAL(NFCTYPE2, test "${enable_nfctype2}" != "no") |
| |
| AC_ARG_ENABLE(nfctype3, AS_HELP_STRING([--disable-nfctype3], |
| [disable NFC forum type 3 tags support]), |
| [enable_nfctype3=${enableval}]) |
| AM_CONDITIONAL(NFCTYPE3, test "${enable_nfctype3}" != "no") |
| |
| AC_ARG_ENABLE(nfctype4, AS_HELP_STRING([--disable-nfctype4], |
| [disable NFC forum type 4 tags support]), |
| [enable_nfctype4=${enableval}]) |
| AM_CONDITIONAL(NFCTYPE4, test "${enable_nfctype4}" != "no") |
| |
| AC_ARG_ENABLE(nfctype5, AS_HELP_STRING([--disable-nfctype5], |
| [disable NFC forum type 5 tags support]), |
| [enable_nfctype5=${enableval}]) |
| AM_CONDITIONAL(NFCTYPE5, test "${enable_nfctype5}" != "no") |
| |
| AC_ARG_ENABLE(p2p, AS_HELP_STRING([--disable-p2p], |
| [disable NFC peer to peer support]), |
| [enable_p2p=${enableval}]) |
| AM_CONDITIONAL(P2P, test "${enable_p2p}" != "no") |
| |
| AC_ARG_ENABLE(ese, AS_HELP_STRING([--enable-ese], |
| [enable embedded SE support]), |
| [enable_ese=${enableval}]) |
| AM_CONDITIONAL(ESE, test "${enable_ese}" = "yes") |
| |
| AM_CONDITIONAL(SE, test "${enable_ese}" = "yes") |
| |
| AC_CONFIG_FILES([Makefile include/version.h neard.pc]) |
| AC_OUTPUT |