NAME
go-module
—
lang/go port module
DESCRIPTION
This manual page documents the behavior of setting
MODULES=lang/go
in the
ports(7) tree.
Adds Go toolchain support. Requires
ALL_TARGET
to be set to canonical Go import path of
port. (Module sets it automatically for ports that use
GH_ACCOUNT
and GH_PROJECT
macros.)
During execution of pre-configure
target
module moves source code from ${MODGO_SUBDIR} to
${WRKSRC}, subdirectory of
${MODGO_WORKSPACE} - specially-crafted Go workspace
located at ${WRKDIR}/go. During
do-build
module calls “go install”
with GOPATH
set to
${MODGO_WORKSPACE}, runs its output through sed to
prevent writes outside WRKDIR
sandbox and sends
output to sh(1). During do-install
it copies
executables from ${MODGO_WORKSPACE}/bin to
${PREFIX}/bin, and/or directories
${MODGO_WORKSPACE}/pkg and
${MODGO_WORKSPACE}/src to
${PREFIX}/go, depending on
MODGO_TYPE
contents.
Sets BUILD_DEPENDS
,
RUN_DEPENDS
, ALL_TARGET
,
TEST_TARGET
, ONLY_FOR_ARCHS
,
SEPARATE_BUILD
, and
WRKSRC
.
Appends to CATEGORIES
.
Defines:
MODGO_TYPE
- Type of port. May be any combination of:
- bin
- ordinary binary, which should be installed to ${PREFIX}/bin,
- lib
- library, which should come with source code.
Defaults to bin.
MODGO_WORKSPACE
- Path to Go workspace set up for port build process. Defaults to ${WRKDIR}/go. See Go documentation for details.
MODGO_SUBDIR
- Path to Go source code within port's sources tarball. Defaults to ${WRKDIST}.
MODGO_SETUP_WORKSPACE
- Commands setting up Go workspace for building ports. By default, happens
during execution of
pre-configure
target. MODGO_BUILDDEP
- Controls whether contents of
MODGO_BUILD_DEPENDS
are appended to port'sBUILD_DEPENDS
. Defaults to Yes. MODGO_MODNAME
- Name of Go module as defined in the go.mod file
contained in a project. If this is set,
MODGO_MODULES
,MODGO_MODFILES
andMODGO_VERSION
need to be defined as well. Setting this will also setALL_TARGET
. WhenMODGO_MODFILES
is set, and a "cmd" directory is found inWRKSRC
, "./cmd/..." is also built bydo-build
automatically. MODGO_VERSION
- Sets the specific version of a Go module to use. For example: v0.1.3.
MODGO_MODULES
- List of modules and their specific versions that an application depends on.
MODGO_MODFILES
- List of go.mod files and their versions that are required for dependency resolution. These are required by Go to determine the full dependency graph.
Additionally defines MODGO_PACKAGES
,
MODGO_SOURCES
and
MODGO_TOOLS
(paths for installed Go packages,
sources and tools respectively), MODGO_CMD
and
MODGO_FLAGS
(source code build command and flags
passed as its arguments), MODGO_LDFLAGS
,
MODGO_BUILD_CMD
and
MODGO_TEST_CMD
(commands for building and testing go
packages; normally called with canonical Go package names as arguments),
MODGO_{BUILD,INSTALL,TEST}_TARGET
and
MODGO_{BUILD,RUN}_DEPENDS
.
This module adds one make(1) target:
modgo-gen-modules
- Generate the
MODGO_MODULES
and theMODGO_MODFILES
lists. IfMODGO_VERSION
is set to "latest", the latest known-to-Go version of a package will be used to build the list of modules. Similarly, ifMODGO_VERSION
is empty, the latest version will be fetched.