]> eyrie.org Git - kerberos/krb5-strength.git/blobdiff - m4/cracklib.m4
Update default GCC warning flags
[kerberos/krb5-strength.git] / m4 / cracklib.m4
index 4f9ac0598ae6f702a67e6a8fb4401922a22871ff..f83b0664c31db1889b3ded46a30837c1bb3248ba 100644 (file)
@@ -15,87 +15,61 @@ dnl remctl libraries, saving the current values first, and
 dnl RRA_LIB_CRACKLIB_RESTORE to restore those settings to before the last
 dnl RRA_LIB_CRACKLIB_SWITCH.
 dnl
-dnl Depends on RRA_SET_LDFLAGS.
+dnl Depends on the lib-helper.m4 framework.
 dnl
-dnl Written by Russ Allbery <rra@stanford.edu>
+dnl Written by Russ Allbery <eagle@eyrie.org>
+dnl Copyright 2020 Russ Allbery <eagle@eyrie.org>
 dnl Copyright 2010
 dnl     The Board of Trustees of the Leland Stanford Junior University
 dnl
 dnl This file is free software; the authors give unlimited permission to copy
 dnl and/or distribute it, with or without modifications, as long as this
 dnl notice is preserved.
+dnl
+dnl SPDX-License-Identifier: FSFULLR
 
 dnl Save the current CPPFLAGS, LDFLAGS, and LIBS settings and switch to
-dnl versions that include the Kerberos v5 flags.  Used as a wrapper, with
+dnl versions that include the CrackLib flags.  Used as a wrapper, with
 dnl RRA_LIB_CRACKLIB_RESTORE, around tests.
-AC_DEFUN([RRA_LIB_CRACKLIB_SWITCH],
-[rra_cracklib_save_CPPFLAGS="$CPPFLAGS"
- rra_cracklib_save_LDFLAGS="$LDFLAGS"
- rra_cracklib_save_LIBS="$LIBS"
- CPPFLAGS="$CRACKLIB_CPPFLAGS $CPPFLAGS"
- LDFLAGS="$CRACKLIB_LDFLAGS $LDFLAGS"
- LIBS="$CRACKLIB_LIBS $LIBS"])
+AC_DEFUN([RRA_LIB_CRACKLIB_SWITCH], [RRA_LIB_HELPER_SWITCH([CRACKLIB])])
 
 dnl Restore CPPFLAGS, LDFLAGS, and LIBS to their previous values (before
 dnl RRA_LIB_CRACKLIB_SWITCH was called).
-AC_DEFUN([RRA_LIB_CRACKLIB_RESTORE],
-[CPPFLAGS="$rra_cracklib_save_CPPFLAGS"
- LDFLAGS="$rra_cracklib_save_LDFLAGS"
- LIBS="$rra_cracklib_save_LIBS"])
-
-dnl Set CRACKLIB_CPPFLAGS and CRACKLIB_LDFLAGS based on rra_cracklib_root,
-dnl rra_cracklib_libdir, and rra_cracklib_includedir.
-AC_DEFUN([_RRA_LIB_CRACKLIB_PATHS],
-[AS_IF([test x"$rra_cracklib_libdir" != x],
-    [CRACKLIB_LDFLAGS="-L$rra_cracklib_libdir"],
-    [AS_IF([test x"$rra_cracklib_root" != x],
-        [RRA_SET_LDFLAGS([CRACKLIB_LDFLAGS], [$rra_cracklib_root])])])
- AS_IF([test x"$rra_cracklib_includedir" != x],
-    [CRACKLIB_CPPFLAGS="-I$rra_cracklib_includedir"],
-    [AS_IF([test x"$rra_cracklib_root" != x],
-        [AS_IF([test x"$rra_cracklib_root" != x/usr],
-            [CRACKLIB_CPPFLAGS="-I${rra_cracklib_root}/include"])])])])
+AC_DEFUN([RRA_LIB_CRACKLIB_RESTORE], [RRA_LIB_HELPER_RESTORE([CRACKLIB])])
 
-dnl Sanity-check the results of the CrackLib library search to be sure we can
-dnl really link a CrackLib program.
-AC_DEFUN([_RRA_LIB_CRACKLIB_CHECK],
-[RRA_LIB_CRACKLIB_SWITCH
- AC_CHECK_FUNC([FascistCheck], ,
-    [AC_MSG_FAILURE([unable to link with CrackLib library])])
+dnl Checks if CrackLib is present and sets variables as appropriate.
+AC_DEFUN([_RRA_LIB_CRACKLIB_INTERNAL],
+[RRA_LIB_HELPER_PATHS([CRACKLIB])
+ RRA_LIB_CRACKLIB_SWITCH
+ AC_CHECK_LIB([crack], [FascistCheck], [CRACKLIB_LIBS=-lcrack],
+    [AC_MSG_ERROR([cannot find usable CrackLib library])])
+ AC_CHECK_HEADERS([crack.h])
+ AC_DEFINE([HAVE_SYSTEM_CRACKLIB], 1, [Define if using the system CrackLib.])
  RRA_LIB_CRACKLIB_RESTORE])
 
 dnl The main macro.
 AC_DEFUN([RRA_LIB_CRACKLIB],
-[rra_system_cracklib=
- rra_cracklib_root=
- rra_cracklib_libdir=
- rra_cracklib_includedir=
- CRACKLIB_CPPFLAGS=
- CRACKLIB_LDFLAGS=
- CRACKLIB_LIBS=
- AC_SUBST([CRACKLIB_CPPFLAGS])
- AC_SUBST([CRACKLIB_LDFLAGS])
- AC_SUBST([CRACKLIB_LIBS])
+[RRA_LIB_HELPER_VAR_INIT([CRACKLIB])
 
  AC_ARG_WITH([cracklib],
-    [AS_HELP_STRING([--with-cracklib@<:@=DIR@:>@],
+    [AS_HELP_STRING([--with-cracklib][@<:@=DIR@:>@],
         [Use system CrackLib instead of embedded copy])],
-    [AS_IF([test x"$withval" != xno], [rra_system_cracklib=yes])
-     AS_IF([test x"$withval" != xyes && test x"$withval" != xno],
-        [rra_cracklib_root="$withval"])])
- AC_ARG_WITH([cracklib-include],
+    [AS_IF([test x"$withval" = xno],
+        [rra_use_CRACKLIB=false],
+        [rra_use_CRACKLIB=true
+         AS_IF([test x"$withval" != xyes], [rra_CRACKLIB_root="$withval"])])])
+ AC_ARG_WITH([cracklib][-include],
     [AS_HELP_STRING([--with-cracklib-include=DIR],
         [Location of CrackLib headers])],
     [AS_IF([test x"$withval" != xyes && test x"$withval" != xno],
-        [rra_cracklib_includedir="$withval"])])
+        [rra_CRACKLIB_includedir="$withval"])])
  AC_ARG_WITH([cracklib-lib],
     [AS_HELP_STRING([--with-cracklib-lib=DIR],
-        [Location of cracklib libraries])],
+        [Location of CrackLib libraries])],
     [AS_IF([test x"$withval" != xyes && test x"$withval" != xno],
-        [rra_cracklib_libdir="$withval"])])
+        [rra_CRACKLIB_libdir="$withval"])])
 
- AM_CONDITIONAL([EMBEDDED_CRACKLIB], [test x"$rra_system_cracklib" != xyes])
- AS_IF([test x"$rra_system_cracklib" = xyes],
-     [_RRA_LIB_CRACKLIB_PATHS
-      CRACKLIB_LIBS="-lcrack"
-      _RRA_LIB_CRACKLIB_CHECK])])
+  AS_IF([test x"$rra_use_CRACKLIB" != xfalse],
+     [AS_IF([test x"$rra_use_CRACKLIB" != x], [_RRA_LIB_CRACKLIB_INTERNAL])
+      AC_DEFINE([HAVE_CRACKLIB], 1, [Define if CrackLib is available.])])
+ AM_CONDITIONAL([EMBEDDED_CRACKLIB], [test x"$rra_use_CRACKLIB" = x])])