[Midnightbsd-cvs] mports [19596] trunk/Mk/extensions/gssapi.mk: add gssapi based on freebsd extension

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Jul 15 18:09:51 EDT 2015


Revision: 19596
          http://svnweb.midnightbsd.org/mports/?rev=19596
Author:   laffer1
Date:     2015-07-15 18:09:50 -0400 (Wed, 15 Jul 2015)
Log Message:
-----------
add gssapi based on freebsd extension

Added Paths:
-----------
    trunk/Mk/extensions/gssapi.mk

Added: trunk/Mk/extensions/gssapi.mk
===================================================================
--- trunk/Mk/extensions/gssapi.mk	                        (rev 0)
+++ trunk/Mk/extensions/gssapi.mk	2015-07-15 22:09:50 UTC (rev 19596)
@@ -0,0 +1,179 @@
+# $MidnightBSD$
+# $FreeBSD: head/Mk/Uses/gssapi.mk 373797 2014-12-02 23:45:15Z hrs $
+#
+# 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")
+#
+# User defined variables:
+#  HEIMDAL_HOME (default: ${LOCALBASE})
+#  KRB5_HOME (default: ${LOCALBASE})
+#
+# Exported variables:
+#  GSSAPIBASEDIR
+#  GSSAPICPPFLAGS
+#  GSSAPIINCDIR
+#  GSSAPILDFLAGS
+#  GSSAPILIBDIR
+#  GSSAPILIBS
+#  GSSAPI_CONFIGURE_ARGS
+#
+# 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:${PORTSDIR}/security/heimdal
+_MITKRB5_DEPENDS=${GSSAPILIBDIR}/libkrb5support.so:${PORTSDIR}/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"
+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
+
+# 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}"
+
+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 -f /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 "CFLAGS: ${CFLAGS}"
+	@echo "LDFLAGS: ${LDFLAGS}"
+	@echo "LDADD: ${LDADD}"
+.endif


Property changes on: trunk/Mk/extensions/gssapi.mk
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list