17.35. go


Ports should not be created for Go libs, see Section 6.29, “Go Libraries” for more information.

Possible arguments: (none), modules, no_targets, run

Sets default values and targets used to build Go software. A build dependency on the Go compiler port selected via GO_PORT is added. By default the build is performed in GOPATH mode. If Go software uses modules, the modules-aware mode can be switched on with modules argument. no_targets will setup build environment like GO_ENV, GO_BUILDFLAGS but skip creating post-extract and do-{build,install,test} targets. run will also add a run dependency on what is in GO_PORT.

The build process is controlled by several variables:


The name of the Go package when building in GOPATH mode. This is the directory that will be created in ${GOPATH}/src. If not set explicitly and GH_SUBDIR or GL_SUBDIR is present, GO_PKGNAME will be inferred from it. It is not needed when building in modules-aware mode.


The packages to build. The default value is ${GO_PKGNAME}. GO_TARGET can also be a tuple in the form package:path where path can be either a simple filename or a full path starting with ${PREFIX}.


The packages to test. The default value is ./... (the current package and all subpackages).


Additional CFLAGS values to be passed to the C compiler by go.


Additional LDFLAGS values to be passed to the C compiler by go.


Additional build arguments to be passed to go build.


Additional build arguments to be passed to go test.


The Go compiler port to use. By default this is lang/go but can be set to lang/go-devel in make.conf for testing with future Go versions.


This variable must not be set by individual ports!

See Section 6.5.8, “Building Go Applications” for usage examples.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.