GO-MODULE(5) - File Formats Manual #
GO-MODULE(5) - File Formats Manual
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 by do-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.
SEE ALSO #
port-modules(5)
OpenBSD 7.5 - July 25, 2021