xref: /freebsd-src/contrib/openpam/configure.ac (revision 3ba4c8c81a28de3e00ccf6d7f92c6f8e58bef456)
1*3ba4c8c8SDag-Erling SmørgravAC_PREREQ([2.69])
2*3ba4c8c8SDag-Erling SmørgravAC_INIT([OpenPAM], [20230627], [des@des.no], [openpam], [https://openpam.org/])
3f7e6344dSDag-Erling SmørgravAC_CONFIG_SRCDIR([lib/libpam/pam_start.c])
47f106882SDag-Erling SmørgravAC_CONFIG_MACRO_DIR([m4])
57f106882SDag-Erling SmørgravAM_INIT_AUTOMAKE([foreign])
67f106882SDag-Erling SmørgravAM_CONFIG_HEADER([config.h])
7b33ab329SDag-Erling Smørgrav
87f106882SDag-Erling Smørgrav# C compiler and features
9fe980754SDag-Erling SmørgravAC_LANG(C)
10*3ba4c8c8SDag-Erling SmørgravAC_PROG_CC([clang gcc cc])
117f106882SDag-Erling SmørgravAC_PROG_CC_STDC
127f106882SDag-Erling SmørgravAC_PROG_CPP
13*3ba4c8c8SDag-Erling SmørgravAC_PROG_CXX([clang++ g++ c++])
147f106882SDag-Erling SmørgravAC_GNU_SOURCE
157f106882SDag-Erling SmørgravAC_C_CONST
167f106882SDag-Erling SmørgravAC_C_RESTRICT
17b33ab329SDag-Erling SmørgravAC_C_VOLATILE
18*3ba4c8c8SDag-Erling SmørgravAX_COMPILER_VENDOR
197f106882SDag-Erling Smørgrav
207f106882SDag-Erling Smørgrav# libtool
217f106882SDag-Erling SmørgravLT_PREREQ([2.2.6])
227f106882SDag-Erling SmørgravLT_INIT([disable-static dlopen])
237f106882SDag-Erling Smørgrav
2423d17223SDag-Erling Smørgrav# pkg-config
2523d17223SDag-Erling SmørgravAX_PROG_PKG_CONFIG
2623d17223SDag-Erling Smørgrav
277f106882SDag-Erling Smørgrav# other programs
287f106882SDag-Erling SmørgravAC_PROG_INSTALL
29b33ab329SDag-Erling Smørgrav
30b33ab329SDag-Erling SmørgravLIB_MAJ=2
31b33ab329SDag-Erling SmørgravAC_SUBST(LIB_MAJ)
32b33ab329SDag-Erling SmørgravAC_DEFINE_UNQUOTED(LIB_MAJ, $LIB_MAJ, [OpenPAM library major number])
33b33ab329SDag-Erling Smørgrav
347f106882SDag-Erling SmørgravAC_ARG_ENABLE([debug],
35fe980754SDag-Erling Smørgrav    AC_HELP_STRING([--enable-debug],
36ce77a8d6SDag-Erling Smørgrav        [turn debugging macros on]),
37ce77a8d6SDag-Erling Smørgrav    AC_DEFINE(OPENPAM_DEBUG, 1, [Turn debugging macros on]))
38fe980754SDag-Erling Smørgrav
397f106882SDag-Erling SmørgravAC_ARG_ENABLE([unversioned-modules],
40b33ab329SDag-Erling Smørgrav    AC_HELP_STRING([--disable-unversioned-modules],
41b33ab329SDag-Erling Smørgrav        [support loading of unversioned modules]),
427f106882SDag-Erling Smørgrav    [AS_IF([test x"$enableval" = x"no"], [
43b33ab329SDag-Erling Smørgrav        AC_DEFINE(DISABLE_UNVERSIONED_MODULES,
44b33ab329SDag-Erling Smørgrav            1,
45b33ab329SDag-Erling Smørgrav            [Whether loading unversioned modules support is disabled])
467f106882SDag-Erling Smørgrav    ])])
47b33ab329SDag-Erling Smørgrav
487f106882SDag-Erling SmørgravAC_ARG_WITH([modules-dir],
49b33ab329SDag-Erling Smørgrav    AC_HELP_STRING([--with-modules-dir=DIR],
50b33ab329SDag-Erling Smørgrav        [OpenPAM modules directory]),
517f106882SDag-Erling Smørgrav    [AS_IF([test x"$withval" != x"no"], [
52b33ab329SDag-Erling Smørgrav        OPENPAM_MODULES_DIR="$withval"
537f106882SDag-Erling Smørgrav        AC_DEFINE_UNQUOTED(OPENPAM_MODULES_DIR,
54ce77a8d6SDag-Erling Smørgrav            "${OPENPAM_MODULES_DIR%/}",
557f106882SDag-Erling Smørgrav            [OpenPAM modules directory])
56ce77a8d6SDag-Erling Smørgrav    ])])
57b33ab329SDag-Erling SmørgravAC_SUBST(OPENPAM_MODULES_DIR)
58ce77a8d6SDag-Erling SmørgravAM_CONDITIONAL([CUSTOM_MODULES_DIR], [test x"$OPENPAM_MODULES_DIR" != x""])
59b33ab329SDag-Erling Smørgrav
607f106882SDag-Erling SmørgravAC_ARG_WITH([doc],
617f106882SDag-Erling Smørgrav    AC_HELP_STRING([--without-doc], [do not build documentation]),
627f106882SDag-Erling Smørgrav    [],
63fe980754SDag-Erling Smørgrav    [with_doc=yes])
647f106882SDag-Erling SmørgravAM_CONDITIONAL([WITH_DOC], [test x"$with_doc" = x"yes"])
65b33ab329SDag-Erling Smørgrav
667f106882SDag-Erling SmørgravAC_ARG_WITH([pam-unix],
67f3b0ac34SDag-Erling Smørgrav    AC_HELP_STRING([--with-pam-unix], [build sample pam_unix(8) module]),
687f106882SDag-Erling Smørgrav    [],
69b33ab329SDag-Erling Smørgrav    [with_pam_unix=no])
707f106882SDag-Erling SmørgravAM_CONDITIONAL([WITH_PAM_UNIX], [test x"$with_pam_unix" = x"yes"])
71b33ab329SDag-Erling Smørgrav
727f106882SDag-Erling SmørgravAC_ARG_WITH(pamtest,
73f3b0ac34SDag-Erling Smørgrav    AC_HELP_STRING([--with-pamtest], [build test application]),
747f106882SDag-Erling Smørgrav    [],
757f106882SDag-Erling Smørgrav    [with_pamtest=no])
767f106882SDag-Erling SmørgravAM_CONDITIONAL([WITH_PAMTEST], [test x"$with_pamtest" = x"yes"])
777f106882SDag-Erling Smørgrav
78fe980754SDag-Erling SmørgravAC_ARG_WITH(su,
79f3b0ac34SDag-Erling Smørgrav    AC_HELP_STRING([--with-su], [build sample su(1) implementation]),
807f106882SDag-Erling Smørgrav    [],
81fe980754SDag-Erling Smørgrav    [with_su=no])
827f106882SDag-Erling SmørgravAM_CONDITIONAL([WITH_SU], [test x"$with_su" = x"yes"])
83fe980754SDag-Erling Smørgrav
84f3b0ac34SDag-Erling SmørgravAC_ARG_WITH(system-libpam,
85f3b0ac34SDag-Erling Smørgrav    AC_HELP_STRING([--with-system-libpam], [use system libpam]),
86f3b0ac34SDag-Erling Smørgrav    [],
87f3b0ac34SDag-Erling Smørgrav    [with_system_libpam=no])
88f3b0ac34SDag-Erling SmørgravAM_CONDITIONAL([WITH_SYSTEM_LIBPAM], [test x"$with_system_libpam" = x"yes"])
89f3b0ac34SDag-Erling Smørgrav
907f106882SDag-Erling SmørgravAC_CHECK_HEADERS([crypt.h])
91b33ab329SDag-Erling Smørgrav
92ce77a8d6SDag-Erling SmørgravAC_CHECK_FUNCS([asprintf vasprintf])
93ce77a8d6SDag-Erling SmørgravAC_CHECK_FUNCS([dlfunc fdlopen])
94ce77a8d6SDag-Erling SmørgravAC_CHECK_FUNCS([fpurge])
95ce77a8d6SDag-Erling SmørgravAC_CHECK_FUNCS([setlogmask])
96d64f4044SDag-Erling SmørgravAC_CHECK_FUNCS([strlcat strlcmp strlcpy strlset])
97b33ab329SDag-Erling Smørgrav
987f106882SDag-Erling Smørgravsaved_LIBS="${LIBS}"
997f106882SDag-Erling SmørgravLIBS=""
1007f106882SDag-Erling SmørgravAC_CHECK_LIB([dl], [dlopen])
1017f106882SDag-Erling SmørgravDL_LIBS="${LIBS}"
1027f106882SDag-Erling SmørgravLIBS="${saved_LIBS}"
103b33ab329SDag-Erling SmørgravAC_SUBST(DL_LIBS)
104b33ab329SDag-Erling Smørgrav
1057f106882SDag-Erling Smørgravsaved_LIBS="${LIBS}"
1067f106882SDag-Erling SmørgravLIBS=""
107f3b0ac34SDag-Erling SmørgravAC_CHECK_LIB([pam], [pam_start])
108f3b0ac34SDag-Erling SmørgravSYSTEM_LIBPAM="${LIBS}"
109f3b0ac34SDag-Erling SmørgravLIBS="${saved_LIBS}"
110f3b0ac34SDag-Erling SmørgravAC_SUBST(SYSTEM_LIBPAM)
111f3b0ac34SDag-Erling Smørgrav
11223d17223SDag-Erling SmørgravAX_PKG_CONFIG_CHECK([cryb-test],
11323d17223SDag-Erling Smørgrav  [AC_MSG_NOTICE([Cryb test framework found, unit tests enabled.])],
11423d17223SDag-Erling Smørgrav  [AC_MSG_WARN([Cryb test framework not found, unit tests disabled.])])
115f3b0ac34SDag-Erling SmørgravAM_CONDITIONAL([WITH_TEST], [test x"$CRYB_TEST_LIBS" != x""])
116f3b0ac34SDag-Erling Smørgrav
1177f106882SDag-Erling SmørgravAC_ARG_ENABLE([developer-warnings],
118fe980754SDag-Erling Smørgrav    AS_HELP_STRING([--enable-developer-warnings], [enable strict warnings (default is NO)]),
119a45fd132SDimitry Andric    [CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual"])
1207f106882SDag-Erling SmørgravAC_ARG_ENABLE([debugging-symbols],
121fe980754SDag-Erling Smørgrav    AS_HELP_STRING([--enable-debugging-symbols], [enable debugging symbols (default is NO)]),
1227f106882SDag-Erling Smørgrav    [CFLAGS="${CFLAGS} -O0 -g -fno-inline"])
1237f106882SDag-Erling SmørgravAC_ARG_ENABLE([werror],
124fe980754SDag-Erling Smørgrav    AS_HELP_STRING([--enable-werror], [use -Werror (default is NO)]),
1257f106882SDag-Erling Smørgrav    [CFLAGS="${CFLAGS} -Werror"])
126fe980754SDag-Erling Smørgrav
127*3ba4c8c8SDag-Erling SmørgravAC_ARG_ENABLE([code-coverage],
128*3ba4c8c8SDag-Erling Smørgrav    AS_HELP_STRING([--enable-code-coverage],
129*3ba4c8c8SDag-Erling Smørgrav        [enable code coverage]))
130*3ba4c8c8SDag-Erling SmørgravAS_IF([test x"$enable_code_coverage" = x"yes"], [
131*3ba4c8c8SDag-Erling Smørgrav    AM_COND_IF([WITH_TEST], [
132*3ba4c8c8SDag-Erling Smørgrav        AS_IF([test x"$ax_cv_c_compiler_vendor" = x"clang"], [
133*3ba4c8c8SDag-Erling Smørgrav            CFLAGS="${CFLAGS} -fprofile-instr-generate -fcoverage-mapping"
134*3ba4c8c8SDag-Erling Smørgrav            clang_code_coverage="yes"
135*3ba4c8c8SDag-Erling Smørgrav	    AC_SUBST([clang_ver], [${CC#clang}])
136*3ba4c8c8SDag-Erling Smørgrav        ], [
137*3ba4c8c8SDag-Erling Smørgrav            AC_MSG_ERROR([code coverage is only supported with clang])
138*3ba4c8c8SDag-Erling Smørgrav        ])
139*3ba4c8c8SDag-Erling Smørgrav        AC_DEFINE([WITH_CODE_COVERAGE], [1], [Define to 1 if code coverage is enabled])
140*3ba4c8c8SDag-Erling Smørgrav        AC_MSG_NOTICE([code coverage enabled])
141*3ba4c8c8SDag-Erling Smørgrav    ], [
142*3ba4c8c8SDag-Erling Smørgrav        AC_MSG_ERROR([code coverage requires unit tests])
143*3ba4c8c8SDag-Erling Smørgrav    ])
144*3ba4c8c8SDag-Erling Smørgrav])
145*3ba4c8c8SDag-Erling SmørgravAM_CONDITIONAL([WITH_CODE_COVERAGE], [test x"$enable_code_coverage" = x"yes"])
146*3ba4c8c8SDag-Erling SmørgravAM_CONDITIONAL([CLANG_CODE_COVERAGE], [test x"$clang_code_coverage" = x"yes"])
147*3ba4c8c8SDag-Erling Smørgrav
148fe980754SDag-Erling SmørgravAC_CONFIG_FILES([
1492f3ed619SDag-Erling Smørgrav    Makefile
150fe980754SDag-Erling Smørgrav    bin/Makefile
1512f3ed619SDag-Erling Smørgrav    bin/openpam_dump_policy/Makefile
1527f106882SDag-Erling Smørgrav    bin/pamtest/Makefile
153b33ab329SDag-Erling Smørgrav    bin/su/Makefile
1542f3ed619SDag-Erling Smørgrav    doc/Makefile
1552f3ed619SDag-Erling Smørgrav    doc/man/Makefile
156*3ba4c8c8SDag-Erling Smørgrav    freebsd/Makefile
157b33ab329SDag-Erling Smørgrav    include/Makefile
158b33ab329SDag-Erling Smørgrav    include/security/Makefile
159ce77a8d6SDag-Erling Smørgrav    lib/Makefile
160f7e6344dSDag-Erling Smørgrav    lib/libpam/Makefile
161f3b0ac34SDag-Erling Smørgrav    misc/Makefile
162b33ab329SDag-Erling Smørgrav    modules/Makefile
163b33ab329SDag-Erling Smørgrav    modules/pam_deny/Makefile
164b33ab329SDag-Erling Smørgrav    modules/pam_permit/Makefile
165f3b0ac34SDag-Erling Smørgrav    modules/pam_return/Makefile
1662f3ed619SDag-Erling Smørgrav    modules/pam_unix/Makefile
1672f3ed619SDag-Erling Smørgrav    t/Makefile
168fe980754SDag-Erling Smørgrav])
169f3b0ac34SDag-Erling SmørgravAC_CONFIG_FILES([misc/coverity.sh],[chmod +x misc/coverity.sh])
170b33ab329SDag-Erling SmørgravAC_OUTPUT
171