1348980Sdesdnl $OpenPAM: configure.ac 947 2019-02-24 20:18:17Z des $
2141098Sdes
3228692SdesAC_PREREQ([2.62])
4348980SdesAC_REVISION([$OpenPAM: configure.ac 947 2019-02-24 20:18:17Z des $])
5348980SdesAC_INIT([OpenPAM], [20190224], [des@des.no], [openpam], [http://www.openpam.org/])
6255369SdesAC_CONFIG_SRCDIR([lib/libpam/pam_start.c])
7228692SdesAC_CONFIG_MACRO_DIR([m4])
8228692SdesAM_INIT_AUTOMAKE([foreign])
9228692SdesAM_CONFIG_HEADER([config.h])
10141098Sdes
11228692Sdes# C compiler and features
12174832SdesAC_LANG(C)
13228692SdesAC_PROG_CC
14228692SdesAC_PROG_CC_STDC
15228692SdesAC_PROG_CPP
16228692SdesAC_GNU_SOURCE
17228692SdesAC_C_CONST
18228692SdesAC_C_RESTRICT
19141098SdesAC_C_VOLATILE
20141098Sdes
21228692Sdes# libtool
22228692SdesLT_PREREQ([2.2.6])
23228692SdesLT_INIT([disable-static dlopen])
24228692Sdes
25348980Sdes# pkg-config
26348980SdesAX_PROG_PKG_CONFIG
27348980Sdes
28228692Sdes# other programs
29228692SdesAC_PROG_INSTALL
30228692Sdes
31141098SdesLIB_MAJ=2
32141098SdesAC_SUBST(LIB_MAJ)
33141098SdesAC_DEFINE_UNQUOTED(LIB_MAJ, $LIB_MAJ, [OpenPAM library major number])
34141098Sdes
35228692SdesAC_ARG_ENABLE([debug],
36228692Sdes    AC_HELP_STRING([--enable-debug],
37255376Sdes	[turn debugging macros on]),
38255376Sdes    AC_DEFINE(OPENPAM_DEBUG, 1, [Turn debugging macros on]))
39174832Sdes
40228692SdesAC_ARG_ENABLE([unversioned-modules],
41228692Sdes    AC_HELP_STRING([--disable-unversioned-modules],
42228692Sdes	[support loading of unversioned modules]),
43228692Sdes    [AS_IF([test x"$enableval" = x"no"], [
44228692Sdes	AC_DEFINE(DISABLE_UNVERSIONED_MODULES,
45228692Sdes	    1,
46228692Sdes	    [Whether loading unversioned modules support is disabled])
47228692Sdes    ])])
48141098Sdes
49228692SdesAC_ARG_WITH([modules-dir],
50228692Sdes    AC_HELP_STRING([--with-modules-dir=DIR],
51228692Sdes	[OpenPAM modules directory]),
52228692Sdes    [AS_IF([test x"$withval" != x"no"], [
53228692Sdes	OPENPAM_MODULES_DIR="$withval"
54255376Sdes	AC_DEFINE_UNQUOTED(OPENPAM_MODULES_DIR, 
55255376Sdes	    "${OPENPAM_MODULES_DIR%/}",
56255376Sdes	    [OpenPAM modules directory])
57255376Sdes    ])])
58141098SdesAC_SUBST(OPENPAM_MODULES_DIR)
59255376SdesAM_CONDITIONAL([CUSTOM_MODULES_DIR], [test x"$OPENPAM_MODULES_DIR" != x""])
60141098Sdes
61228692SdesAC_ARG_WITH([doc],
62228692Sdes    AC_HELP_STRING([--without-doc], [do not build documentation]),
63228692Sdes    [],
64228692Sdes    [with_doc=yes])
65228692SdesAM_CONDITIONAL([WITH_DOC], [test x"$with_doc" = x"yes"])
66141098Sdes
67228692SdesAC_ARG_WITH([pam-unix],
68348980Sdes    AC_HELP_STRING([--with-pam-unix], [build sample pam_unix(8) module]),
69228692Sdes    [],
70228692Sdes    [with_pam_unix=no])
71228692SdesAM_CONDITIONAL([WITH_PAM_UNIX], [test x"$with_pam_unix" = x"yes"])
72141098Sdes
73228692SdesAC_ARG_WITH(pamtest,
74348980Sdes    AC_HELP_STRING([--with-pamtest], [build test application]),
75228692Sdes    [],
76228692Sdes    [with_pamtest=no])
77228692SdesAM_CONDITIONAL([WITH_PAMTEST], [test x"$with_pamtest" = x"yes"])
78228692Sdes
79174832SdesAC_ARG_WITH(su,
80348980Sdes    AC_HELP_STRING([--with-su], [build sample su(1) implementation]),
81228692Sdes    [],
82228692Sdes    [with_su=no])
83228692SdesAM_CONDITIONAL([WITH_SU], [test x"$with_su" = x"yes"])
84174832Sdes
85348980SdesAC_ARG_WITH(system-libpam,
86348980Sdes    AC_HELP_STRING([--with-system-libpam], [use system libpam]),
87348980Sdes    [],
88348980Sdes    [with_system_libpam=no])
89348980SdesAM_CONDITIONAL([WITH_SYSTEM_LIBPAM], [test x"$with_system_libpam" = x"yes"])
90348980Sdes
91228692SdesAC_CHECK_HEADERS([crypt.h])
92141098Sdes
93255376SdesAC_CHECK_FUNCS([asprintf vasprintf])
94255376SdesAC_CHECK_FUNCS([dlfunc fdlopen])
95255376SdesAC_CHECK_FUNCS([fpurge])
96255376SdesAC_CHECK_FUNCS([setlogmask])
97271624SdesAC_CHECK_FUNCS([strlcat strlcmp strlcpy strlset])
98141098Sdes
99228692Sdessaved_LIBS="${LIBS}"
100228692SdesLIBS=""
101228692SdesAC_CHECK_LIB([dl], [dlopen])
102228692SdesDL_LIBS="${LIBS}"
103228692SdesLIBS="${saved_LIBS}"
104141098SdesAC_SUBST(DL_LIBS)
105141098Sdes
106228692Sdessaved_LIBS="${LIBS}"
107228692SdesLIBS=""
108348980SdesAC_CHECK_LIB([pam], [pam_start])
109348980SdesSYSTEM_LIBPAM="${LIBS}"
110228692SdesLIBS="${saved_LIBS}"
111348980SdesAC_SUBST(SYSTEM_LIBPAM)
112141098Sdes
113348980SdesAX_PKG_CONFIG_CHECK([cryb-test],
114348980Sdes  [AC_MSG_NOTICE([Cryb test framework found, unit tests enabled.])],
115348980Sdes  [AC_MSG_WARN([Cryb test framework not found, unit tests disabled.])])
116348980SdesAM_CONDITIONAL([WITH_TEST], [test x"$CRYB_TEST_LIBS" != x""])
117255376Sdes
118228692SdesAC_ARG_ENABLE([developer-warnings],
119228692Sdes    AS_HELP_STRING([--enable-developer-warnings], [enable strict warnings (default is NO)]),
120280031Sdim    [CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual"])
121228692SdesAC_ARG_ENABLE([debugging-symbols],
122228692Sdes    AS_HELP_STRING([--enable-debugging-symbols], [enable debugging symbols (default is NO)]),
123228692Sdes    [CFLAGS="${CFLAGS} -O0 -g -fno-inline"])
124228692SdesAC_ARG_ENABLE([werror],
125228692Sdes    AS_HELP_STRING([--enable-werror], [use -Werror (default is NO)]),
126228692Sdes    [CFLAGS="${CFLAGS} -Werror"])
127141098Sdes
128174832SdesAC_CONFIG_FILES([
129236109Sdes    Makefile
130228692Sdes    bin/Makefile
131236109Sdes    bin/openpam_dump_policy/Makefile
132228692Sdes    bin/pamtest/Makefile
133228692Sdes    bin/su/Makefile
134236109Sdes    doc/Makefile
135236109Sdes    doc/man/Makefile
136228692Sdes    include/Makefile
137228692Sdes    include/security/Makefile
138255376Sdes    lib/Makefile
139255369Sdes    lib/libpam/Makefile
140348980Sdes    misc/Makefile
141228692Sdes    modules/Makefile
142228692Sdes    modules/pam_deny/Makefile
143228692Sdes    modules/pam_permit/Makefile
144348980Sdes    modules/pam_return/Makefile
145236109Sdes    modules/pam_unix/Makefile
146236109Sdes    t/Makefile
147174832Sdes])
148255376SdesAC_CONFIG_FILES([mkpkgng],[chmod +x mkpkgng])
149348980SdesAC_CONFIG_FILES([misc/coverage.sh],[chmod +x misc/coverage.sh])
150348980SdesAC_CONFIG_FILES([misc/coverity.sh],[chmod +x misc/coverity.sh])
151141098SdesAC_OUTPUT
152