NAME
go-module —
lang/go port module
DESCRIPTION
This manual page documents the behavior of settingMODULES=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-configuretarget. MODGO_BUILDDEP- Controls whether contents of
MODGO_BUILD_DEPENDSare 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_MODFILESandMODGO_VERSIONneed to be defined as well. Setting this will also setALL_TARGET. WhenMODGO_MODFILESis set, and a "cmd" directory is found inWRKSRC, "./cmd/..." is also built bydo-buildautomatically. 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_MODULESand theMODGO_MODFILESlists. IfMODGO_VERSIONis set to "latest", the latest known-to-Go version of a package will be used to build the list of modules. Similarly, ifMODGO_VERSIONis empty, the latest version will be fetched.