]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
Support finding Kerberos via pkg-config
authorJohn Ericson <John.Ericson@Obsidian.Systems>
Sat, 26 Dec 2020 16:40:49 +0000 (11:40 -0500)
committerDarren Tucker <dtucker@dtucker.net>
Fri, 9 Jul 2021 05:27:09 +0000 (15:27 +1000)
This makes cross compilation easier.

configure.ac

index 3a14c2a73a21bcb4275555cf7398b67c9946b0da..a79be8157c615830b6fe896260372f8d07ed5f7e 100644 (file)
@@ -4580,6 +4580,44 @@ AC_ARG_WITH([kerberos5],
                AC_DEFINE([KRB5], [1], [Define if you want Kerberos 5 support])
                KRB5_MSG="yes"
 
+               AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no])
+               use_pkgconfig_for_krb5=
+               if test "x$PKGCONFIG" != "xno"; then
+                       AC_MSG_CHECKING([if $PKGCONFIG knows about kerberos5])
+                       if "$PKGCONFIG" krb5; then
+                               AC_MSG_RESULT([yes])
+                               use_pkgconfig_for_krb5=yes
+                       else
+                               AC_MSG_RESULT([no])
+                       fi
+               fi
+               if test "x$use_pkgconfig_for_krb5" = "xyes"; then
+                       K5CFLAGS=`$PKGCONFIG --cflags krb5`
+                       K5LIBS=`$PKGCONFIG --libs krb5`
+                       CPPFLAGS="$CPPFLAGS $K5CFLAGS"
+
+                       AC_MSG_CHECKING([for gssapi support])
+                       if "$PKGCONFIG" krb5-gssapi; then
+                               AC_MSG_RESULT([yes])
+                               AC_DEFINE([GSSAPI], [1],
+                                       [Define this if you want GSSAPI
+                                       support in the version 2 protocol])
+                               GSSCFLAGS="`$PKGCONFIG --cflags krb5-gssapi`"
+                               GSSLIBS="`$PKGCONFIG --libs krb5-gssapi`"
+                               CPPFLAGS="$CPPFLAGS $GSSCFLAGS"
+                       else
+                               AC_MSG_RESULT([no])
+                       fi
+                       AC_MSG_CHECKING([whether we are using Heimdal])
+                       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <krb5.h>
+                               ]], [[ char *tmp = heimdal_version; ]])],
+                               [ AC_MSG_RESULT([yes])
+                               AC_DEFINE([HEIMDAL], [1],
+                               [Define this if you are using the Heimdal
+                               version of Kerberos V5]) ],
+                               [AC_MSG_RESULT([no])
+                       ])
+               else
                AC_PATH_TOOL([KRB5CONF], [krb5-config],
                             [$KRB5ROOT/bin/krb5-config],
                             [$KRB5ROOT/bin:$PATH])
@@ -4655,6 +4693,7 @@ AC_ARG_WITH([kerberos5],
                        AC_CHECK_HEADER([gssapi_krb5.h], ,
                                        [ CPPFLAGS="$oldCPP" ])
 
+               fi
                fi
                if test -n "${rpath_opt}" ; then
                        LDFLAGS="$LDFLAGS ${rpath_opt}${KRB5ROOT}/lib"