[Midnightbsd-cvs] mports [24429] trunk/Mk/extensions/go.mk: add go extension
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Mon Oct 8 12:36:22 EDT 2018
Revision: 24429
http://svnweb.midnightbsd.org/mports/?rev=24429
Author: laffer1
Date: 2018-10-08 12:36:21 -0400 (Mon, 08 Oct 2018)
Log Message:
-----------
add go extension
Added Paths:
-----------
trunk/Mk/extensions/go.mk
Added: trunk/Mk/extensions/go.mk
===================================================================
--- trunk/Mk/extensions/go.mk (rev 0)
+++ trunk/Mk/extensions/go.mk 2018-10-08 16:36:21 UTC (rev 24429)
@@ -0,0 +1,98 @@
+# $MidnightBSD$
+#
+# This file contains logic to ease porting of Go packages or binaries using
+# the `go` command.
+#
+# Feature: go
+# Usage: USES=go
+# Valid ARGS: none
+#
+# You can set the following variables to control the process.
+#
+# GO_PKGNAME
+# The name of the package. This is the directory that will be
+# created in GOPATH/src and seen by the `go` command
+#
+# GO_TARGET
+# The names of the package(s) to build
+#
+# CGO_CFLAGS
+# Addional CFLAGS variables to be passed to the C compiler by the `go`
+# command
+#
+# CGO_LDFLAGS
+# Addional LDFLAGS variables to be passed to the C compiler by the `go`
+# command
+#
+
+.if !defined(_INCLUDE_USES_GO_MK)
+_INCLUDE_USES_GO_MK= yes
+
+.if ${ARCH} == "i386"
+GOARCH= 386
+GOOBJ= 8
+.else
+GOARCH= amd64
+GOOBJ= 6
+.endif
+
+# Settable variables
+GO_PKGNAME?= ${PORTNAME}
+GO_TARGET?= ${GO_PKGNAME}
+CGO_CFLAGS+= -I${LOCALBASE}/include
+CGO_LDFLAGS+= -L${LOCALBASE}/lib
+
+# Read-only variables
+GO_CMD= ${LOCALBASE}/bin/go
+LOCAL_GOPATH= ${LOCALBASE}/share/go
+GO_LIBDIR= share/go/pkg/freebsd_${GOARCH}
+GO_SRCDIR= share/go/src
+GO_WRKSRC= ${GO_WRKDIR_SRC}/${GO_PKGNAME}
+GO_WRKDIR_BIN= ${WRKDIR}/bin
+GO_WRKDIR_SRC= ${WRKDIR}/src
+GO_WRKDIR_PKG= ${WRKDIR}/pkg/freebsd_${GOARCH}
+
+BUILD_DEPENDS+= ${GO_CMD}:lang/go
+GO_ENV+= GOPATH="${WRKDIR}:${LOCAL_GOPATH}" \
+ CGO_CFLAGS="${CGO_CFLAGS}" \
+ CGO_LDFLAGS="${CGO_LDFLAGS}" \
+ GOBIN=""
+PLIST_SUB+= GO_LIBDIR=${GO_LIBDIR} \
+ GO_SRCDIR=${GO_SRCDIR} \
+ GO_PKGNAME=${GO_PKGNAME}
+
+_USES_POST+= go
+.endif # !defined(_INCLUDE_USES_GO_MK)
+
+.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_GO_POST_MK)
+_INCLUDE_USES_GO_POST_MK= yes
+
+.if !target(post-extract)
+post-extract:
+ @${MKDIR} ${GO_WRKSRC:H}
+ @${LN} -sf ${WRKSRC} ${GO_WRKSRC}
+.endif
+
+.if !target(do-build)
+do-build:
+ @(cd ${GO_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GO_ENV} ${GO_CMD} install -v ${GO_TARGET})
+.endif
+
+.if !target(do-install)
+do-install:
+.for _TARGET in ${GO_TARGET}
+ @if [ -e "${GO_WRKDIR_PKG}/${_TARGET}.a" ]; then \
+ _TARGET_LIBDIR="${STAGEDIR}/${PREFIX}/${GO_LIBDIR}/${_TARGET:H}"; \
+ ${MKDIR} $${_TARGET_LIBDIR}; \
+ ${INSTALL_DATA} ${GO_WRKDIR_PKG}/${_TARGET}.a $${_TARGET_LIBDIR}; \
+ _TARGET_SRCDIR="${STAGEDIR}/${PREFIX}/${GO_SRCDIR}/${_TARGET}"; \
+ ${MKDIR} $${_TARGET_SRCDIR}; \
+ (cd ${GO_WRKDIR_SRC}/${_TARGET}/ && ${COPYTREE_SHARE} \* $${_TARGET_SRCDIR}); \
+ fi; \
+ if [ -e "${GO_WRKDIR_BIN}/${_TARGET:T}" ]; then \
+ ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/${_TARGET:T} ${STAGEDIR}/${LOCALBASE}/bin; \
+ fi;
+.endfor
+.endif
+
+.endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_GO_POST_MK)
Property changes on: trunk/Mk/extensions/go.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