mirror of
https://github.com/beard7n/bsdports.git
synced 2026-04-10 02:21:15 +02:00
create bsd12 branch
This commit is contained in:
188
Mk/Uses/gssapi.mk
Normal file
188
Mk/Uses/gssapi.mk
Normal file
@@ -0,0 +1,188 @@
|
||||
# $FreeBSD: head/Mk/Uses/gssapi.mk 483807 2018-11-02 13:32:34Z rene $
|
||||
#
|
||||
# handle dependency on Kerberos port
|
||||
#
|
||||
# Feature: gssapi
|
||||
# Usage: USES=gssapi or USES=gssapi:ARGS
|
||||
# Valid ARGS: base (default, implicit), heimdal, mit.
|
||||
# "bootstrap" is a special prefix only for krb5 or heimdal ports.
|
||||
# ("bootstrap,mit")
|
||||
# flags is a special suffix to define CFLAGS, LDFLAGS, and LDADD.
|
||||
# ("base,flags")
|
||||
#
|
||||
# MAINTAINER: hrs@FreeBSD.org
|
||||
#
|
||||
# User defined variables:
|
||||
# HEIMDAL_HOME (default: ${LOCALBASE})
|
||||
# KRB5_HOME (default: ${LOCALBASE})
|
||||
#
|
||||
# Exported variables:
|
||||
# GSSAPIBASEDIR
|
||||
# GSSAPICPPFLAGS
|
||||
# GSSAPIINCDIR
|
||||
# GSSAPILDFLAGS
|
||||
# GSSAPILIBDIR
|
||||
# GSSAPILIBS
|
||||
# GSSAPI_CONFIGURE_ARGS
|
||||
# KRB5CONFIG
|
||||
#
|
||||
# Affected variables:
|
||||
# PREFIX (bootstrap)
|
||||
# CPPFLAGS (flags)
|
||||
# LDADD (flags)
|
||||
# LDCFLAGS
|
||||
#
|
||||
# Notes:
|
||||
# - GSSAPILIBDIR is prepended to "-Wl,-rpath," in LDFLAGS.
|
||||
# - bootstrap sets PREFIX based on KRB5_HOME or HEIMDAL_HOME.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# A typical example:
|
||||
#
|
||||
# OPTIONS_SINGLE= GSSAPI
|
||||
# OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
|
||||
#
|
||||
# GSSAPI_BASE_USES= gssapi
|
||||
# GSSAPI_BASE_CONFIGURE_ON= \
|
||||
# --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
|
||||
#
|
||||
# GSSAPI_HEIMDAL_USES=gssapi:heimdal
|
||||
# GSSAPI_HEIMDAL_CONFIGURE_ON= \
|
||||
# --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
|
||||
#
|
||||
# GSSAPI_MIT_USES= gssapi:mit
|
||||
# GSSAPI_MIT_CONFIGURE_ON= \
|
||||
# --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
|
||||
#
|
||||
# GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
|
||||
#
|
||||
# If pathname is required for Kerberos implementation, use ${GSSAPIBASEDIR}.
|
||||
#
|
||||
# CPPFLAGS, LDFLAGS, and LDADD can automatically be set by using "flags"
|
||||
# modifier. It is useful if the port does not use a configure script.
|
||||
#
|
||||
# How To Debug:
|
||||
#
|
||||
# A port maintainer can try "make debug-krb" to confirm if building
|
||||
# a GSSAPI library works fine. It will perform a library link test and
|
||||
# show which library and what parameters will be used.
|
||||
# If it works but your port does not build, some parameters are missing in
|
||||
# the building phase of the port. If it does not work, the problem is in
|
||||
# the GSSAPI library, not your port. Please contact MAINTAINER of this file
|
||||
# in that case.
|
||||
#
|
||||
.if !defined(_INCLUDE_USES_GSSAPI_MK)
|
||||
_INCLUDE_USES_GSSAPI_MK= yes
|
||||
|
||||
_HEIMDAL_DEPENDS=${GSSAPILIBDIR}/libgssapi.so:security/heimdal
|
||||
_MITKRB5_DEPENDS=${GSSAPILIBDIR}/libkrb5support.so:security/krb5
|
||||
_HEADERS= sys/types.h sys/stat.h stdint.h
|
||||
|
||||
.if empty(gssapi_ARGS)
|
||||
gssapi_ARGS= base
|
||||
.endif
|
||||
.for _A in ${gssapi_ARGS}
|
||||
_local:= ${_A}
|
||||
.if ${_local} == "base"
|
||||
. if ${SSL_DEFAULT} != base
|
||||
IGNORE= You are using OpenSSL from ports and have selected GSSAPI from base, please select another GSSAPI value
|
||||
. endif
|
||||
HEIMDAL_HOME= /usr
|
||||
GSSAPIBASEDIR= ${HEIMDAL_HOME}
|
||||
GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib
|
||||
GSSAPIINCDIR= ${GSSAPIBASEDIR}/include
|
||||
_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h
|
||||
GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}"
|
||||
GSSAPILIBS= -lkrb5 -lgssapi -lgssapi_krb5
|
||||
GSSAPILDFLAGS= -L"${GSSAPILIBDIR}"
|
||||
.elif ${_local} == "heimdal"
|
||||
HEIMDAL_HOME?= ${LOCALBASE}
|
||||
GSSAPIBASEDIR= ${HEIMDAL_HOME}
|
||||
GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib/heimdal
|
||||
GSSAPIINCDIR= ${GSSAPIBASEDIR}/include/heimdal
|
||||
_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h
|
||||
.if !defined(_KRB_BOOTSTRAP)
|
||||
BUILD_DEPENDS+= ${_HEIMDAL_DEPENDS}
|
||||
RUN_DEPENDS+= ${_HEIMDAL_DEPENDS}
|
||||
.else
|
||||
PREFIX= ${HEIMDAL_HOME}
|
||||
.endif
|
||||
GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}"
|
||||
GSSAPILIBS= -lkrb5 -lgssapi
|
||||
GSSAPILDFLAGS= -L"${GSSAPILIBDIR}"
|
||||
_RPATH= ${GSSAPILIBDIR}
|
||||
.elif ${_local} == "mit"
|
||||
KRB5_HOME?= ${LOCALBASE}
|
||||
GSSAPIBASEDIR= ${KRB5_HOME}
|
||||
GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib
|
||||
GSSAPIINCDIR= ${GSSAPIBASEDIR}/include
|
||||
_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h
|
||||
.if !defined(_KRB_BOOTSTRAP)
|
||||
BUILD_DEPENDS+= ${_MITKRB5_DEPENDS}
|
||||
RUN_DEPENDS+= ${_MITKRB5_DEPENDS}
|
||||
.else
|
||||
PREFIX= ${KRB5_HOME}
|
||||
.endif
|
||||
GSSAPILIBS= -lkrb5 -lgssapi_krb5
|
||||
GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}"
|
||||
GSSAPILDFLAGS= -L"${GSSAPILIBDIR}"
|
||||
_RPATH= ${GSSAPILIBDIR}
|
||||
.elif ${_local} == "bootstrap"
|
||||
_KRB_BOOTSTRAP= 1
|
||||
.elif ${_local} == "flags"
|
||||
_KRB_USEFLAGS= 1
|
||||
.else
|
||||
IGNORE= USES=gssapi - invalid args: [${_local}] specified
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
KRB5CONFIG=${GSSAPIBASEDIR}/bin/krb5-config
|
||||
|
||||
# Fix up -Wl,-rpath in LDFLAGS
|
||||
.if defined(_RPATH) && !empty(_RPATH)
|
||||
.if !empty(LDFLAGS:M-Wl,-rpath,*)
|
||||
.for F in ${LDFLAGS:M-Wl,-rpath,*}
|
||||
LDFLAGS:= -Wl,-rpath,${_RPATH}:${F:S/-Wl,-rpath,//} \
|
||||
${LDFLAGS:N-Wl,-rpath,*}
|
||||
.endfor
|
||||
.else
|
||||
LDFLAGS+= -Wl,-rpath,${_RPATH}:/usr/lib
|
||||
.endif
|
||||
_DEBUG_KRB_RPATH= -Wl,-rpath,${_RPATH}
|
||||
.endif
|
||||
.if defined(_KRB_USEFLAGS) && !empty(_KRB_USEFLAGS)
|
||||
CPPFLAGS+= ${GSSAPICPPFLAGS}
|
||||
LDFLAGS+= ${GSSAPILDFLAGS}
|
||||
LDADD+= ${GSSAPILIBS}
|
||||
.endif
|
||||
GSSAPI_CONFIGURE_ARGS= \
|
||||
CFLAGS="${GSSAPICPPFLAGS} ${CFLAGS}" \
|
||||
LDFLAGS="${GSSAPILDFLAGS} ${LDFLAGS}" \
|
||||
LIBS="${GSSAPILIBS} ${LIBS}" \
|
||||
KRB5CONFIG="${KRB5CONFIG}"
|
||||
|
||||
debug-krb:
|
||||
@(for I in ${_HEADERS}; do echo "#include <$$I>"; done; \
|
||||
echo "int main() { gss_acquire_cred(0, 0, 0, 0, 0, 0, 0, 0);" \
|
||||
"krb5_init_context(0);" \
|
||||
"gsskrb5_register_acceptor_identity(0); return 0;}" \
|
||||
) > /tmp/${.TARGET}.c
|
||||
${CC} ${CFLAGS} -o /tmp/${.TARGET}.x ${GSSAPICPPFLAGS} \
|
||||
${GSSAPILIBS} ${GSSAPILDFLAGS} ${_DEBUG_KRB_RPATH} \
|
||||
/tmp/${.TARGET}.c && \
|
||||
ldd /tmp/${.TARGET}.x; \
|
||||
${RM} /tmp/${.TARGET}.x
|
||||
@echo "PREFIX: ${PREFIX}"
|
||||
@echo "GSSAPIBASEDIR: ${GSSAPIBASEDIR}"
|
||||
@echo "GSSAPIINCDIR: ${GSSAPIINCDIR}"
|
||||
@echo "GSSAPILIBDIR: ${GSSAPILIBDIR}"
|
||||
@echo "GSSAPILIBS: ${GSSAPILIBS}"
|
||||
@echo "GSSAPICPPFLAGS: ${GSSAPICPPFLAGS}"
|
||||
@echo "GSSAPILDFLAGS: ${GSSAPILDFLAGS}"
|
||||
@echo "GSSAPI_CONFIGURE_ARGS: ${GSSAPI_CONFIGURE_ARGS}"
|
||||
@echo "KRB5CONFIG: ${KRB5CONFIG}"
|
||||
@echo "CFLAGS: ${CFLAGS}"
|
||||
@echo "LDFLAGS: ${LDFLAGS}"
|
||||
@echo "LDADD: ${LDADD}"
|
||||
.endif
|
||||
Reference in New Issue
Block a user