171 lines
5.0 KiB
Plaintext
171 lines
5.0 KiB
Plaintext
AC_PREREQ([2.69])
|
|
AC_INIT([OpenPAM], [20230627], [des@des.no], [openpam], [https://openpam.org/])
|
|
AC_CONFIG_SRCDIR([lib/libpam/pam_start.c])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AM_INIT_AUTOMAKE([foreign])
|
|
AM_CONFIG_HEADER([config.h])
|
|
|
|
# C compiler and features
|
|
AC_LANG(C)
|
|
AC_PROG_CC([clang gcc cc])
|
|
AC_PROG_CC_STDC
|
|
AC_PROG_CPP
|
|
AC_PROG_CXX([clang++ g++ c++])
|
|
AC_GNU_SOURCE
|
|
AC_C_CONST
|
|
AC_C_RESTRICT
|
|
AC_C_VOLATILE
|
|
AX_COMPILER_VENDOR
|
|
|
|
# libtool
|
|
LT_PREREQ([2.2.6])
|
|
LT_INIT([disable-static dlopen])
|
|
|
|
# pkg-config
|
|
AX_PROG_PKG_CONFIG
|
|
|
|
# other programs
|
|
AC_PROG_INSTALL
|
|
|
|
LIB_MAJ=2
|
|
AC_SUBST(LIB_MAJ)
|
|
AC_DEFINE_UNQUOTED(LIB_MAJ, $LIB_MAJ, [OpenPAM library major number])
|
|
|
|
AC_ARG_ENABLE([debug],
|
|
AC_HELP_STRING([--enable-debug],
|
|
[turn debugging macros on]),
|
|
AC_DEFINE(OPENPAM_DEBUG, 1, [Turn debugging macros on]))
|
|
|
|
AC_ARG_ENABLE([unversioned-modules],
|
|
AC_HELP_STRING([--disable-unversioned-modules],
|
|
[support loading of unversioned modules]),
|
|
[AS_IF([test x"$enableval" = x"no"], [
|
|
AC_DEFINE(DISABLE_UNVERSIONED_MODULES,
|
|
1,
|
|
[Whether loading unversioned modules support is disabled])
|
|
])])
|
|
|
|
AC_ARG_WITH([modules-dir],
|
|
AC_HELP_STRING([--with-modules-dir=DIR],
|
|
[OpenPAM modules directory]),
|
|
[AS_IF([test x"$withval" != x"no"], [
|
|
OPENPAM_MODULES_DIR="$withval"
|
|
AC_DEFINE_UNQUOTED(OPENPAM_MODULES_DIR,
|
|
"${OPENPAM_MODULES_DIR%/}",
|
|
[OpenPAM modules directory])
|
|
])])
|
|
AC_SUBST(OPENPAM_MODULES_DIR)
|
|
AM_CONDITIONAL([CUSTOM_MODULES_DIR], [test x"$OPENPAM_MODULES_DIR" != x""])
|
|
|
|
AC_ARG_WITH([doc],
|
|
AC_HELP_STRING([--without-doc], [do not build documentation]),
|
|
[],
|
|
[with_doc=yes])
|
|
AM_CONDITIONAL([WITH_DOC], [test x"$with_doc" = x"yes"])
|
|
|
|
AC_ARG_WITH([pam-unix],
|
|
AC_HELP_STRING([--with-pam-unix], [build sample pam_unix(8) module]),
|
|
[],
|
|
[with_pam_unix=no])
|
|
AM_CONDITIONAL([WITH_PAM_UNIX], [test x"$with_pam_unix" = x"yes"])
|
|
|
|
AC_ARG_WITH(pamtest,
|
|
AC_HELP_STRING([--with-pamtest], [build test application]),
|
|
[],
|
|
[with_pamtest=no])
|
|
AM_CONDITIONAL([WITH_PAMTEST], [test x"$with_pamtest" = x"yes"])
|
|
|
|
AC_ARG_WITH(su,
|
|
AC_HELP_STRING([--with-su], [build sample su(1) implementation]),
|
|
[],
|
|
[with_su=no])
|
|
AM_CONDITIONAL([WITH_SU], [test x"$with_su" = x"yes"])
|
|
|
|
AC_ARG_WITH(system-libpam,
|
|
AC_HELP_STRING([--with-system-libpam], [use system libpam]),
|
|
[],
|
|
[with_system_libpam=no])
|
|
AM_CONDITIONAL([WITH_SYSTEM_LIBPAM], [test x"$with_system_libpam" = x"yes"])
|
|
|
|
AC_CHECK_HEADERS([crypt.h])
|
|
|
|
AC_CHECK_FUNCS([asprintf vasprintf])
|
|
AC_CHECK_FUNCS([dlfunc fdlopen])
|
|
AC_CHECK_FUNCS([fpurge])
|
|
AC_CHECK_FUNCS([setlogmask])
|
|
AC_CHECK_FUNCS([strlcat strlcmp strlcpy strlset])
|
|
|
|
saved_LIBS="${LIBS}"
|
|
LIBS=""
|
|
AC_CHECK_LIB([dl], [dlopen])
|
|
DL_LIBS="${LIBS}"
|
|
LIBS="${saved_LIBS}"
|
|
AC_SUBST(DL_LIBS)
|
|
|
|
saved_LIBS="${LIBS}"
|
|
LIBS=""
|
|
AC_CHECK_LIB([pam], [pam_start])
|
|
SYSTEM_LIBPAM="${LIBS}"
|
|
LIBS="${saved_LIBS}"
|
|
AC_SUBST(SYSTEM_LIBPAM)
|
|
|
|
AX_PKG_CONFIG_CHECK([cryb-test],
|
|
[AC_MSG_NOTICE([Cryb test framework found, unit tests enabled.])],
|
|
[AC_MSG_WARN([Cryb test framework not found, unit tests disabled.])])
|
|
AM_CONDITIONAL([WITH_TEST], [test x"$CRYB_TEST_LIBS" != x""])
|
|
|
|
AC_ARG_ENABLE([developer-warnings],
|
|
AS_HELP_STRING([--enable-developer-warnings], [enable strict warnings (default is NO)]),
|
|
[CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual"])
|
|
AC_ARG_ENABLE([debugging-symbols],
|
|
AS_HELP_STRING([--enable-debugging-symbols], [enable debugging symbols (default is NO)]),
|
|
[CFLAGS="${CFLAGS} -O0 -g -fno-inline"])
|
|
AC_ARG_ENABLE([werror],
|
|
AS_HELP_STRING([--enable-werror], [use -Werror (default is NO)]),
|
|
[CFLAGS="${CFLAGS} -Werror"])
|
|
|
|
AC_ARG_ENABLE([code-coverage],
|
|
AS_HELP_STRING([--enable-code-coverage],
|
|
[enable code coverage]))
|
|
AS_IF([test x"$enable_code_coverage" = x"yes"], [
|
|
AM_COND_IF([WITH_TEST], [
|
|
AS_IF([test x"$ax_cv_c_compiler_vendor" = x"clang"], [
|
|
CFLAGS="${CFLAGS} -fprofile-instr-generate -fcoverage-mapping"
|
|
clang_code_coverage="yes"
|
|
AC_SUBST([clang_ver], [${CC#clang}])
|
|
], [
|
|
AC_MSG_ERROR([code coverage is only supported with clang])
|
|
])
|
|
AC_DEFINE([WITH_CODE_COVERAGE], [1], [Define to 1 if code coverage is enabled])
|
|
AC_MSG_NOTICE([code coverage enabled])
|
|
], [
|
|
AC_MSG_ERROR([code coverage requires unit tests])
|
|
])
|
|
])
|
|
AM_CONDITIONAL([WITH_CODE_COVERAGE], [test x"$enable_code_coverage" = x"yes"])
|
|
AM_CONDITIONAL([CLANG_CODE_COVERAGE], [test x"$clang_code_coverage" = x"yes"])
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
bin/Makefile
|
|
bin/openpam_dump_policy/Makefile
|
|
bin/pamtest/Makefile
|
|
bin/su/Makefile
|
|
doc/Makefile
|
|
doc/man/Makefile
|
|
freebsd/Makefile
|
|
include/Makefile
|
|
include/security/Makefile
|
|
lib/Makefile
|
|
lib/libpam/Makefile
|
|
misc/Makefile
|
|
modules/Makefile
|
|
modules/pam_deny/Makefile
|
|
modules/pam_permit/Makefile
|
|
modules/pam_return/Makefile
|
|
modules/pam_unix/Makefile
|
|
t/Makefile
|
|
])
|
|
AC_CONFIG_FILES([misc/coverity.sh],[chmod +x misc/coverity.sh])
|
|
AC_OUTPUT
|