pkgsrc/lang/go/Makefile
bsiegert 3a8354a239 Update Go to 1.10. Via wip.
Full release notes at https://golang.org/doc/go1.10.

The latest Go release, version 1.10, arrives six months after Go 1.9. Most of
its changes are in the implementation of the toolchain, runtime, and libraries.
As always, the release maintains the Go 1 promise of compatibility. We expect
almost all Go programs to continue to compile and run as before.

This release improves caching of built packages, adds caching of successful
test results, runs vet automatically during tests, and permits passing string
values directly between Go and C using cgo. A new compiler option whitelist may
cause unexpected invalid flag errors in code that built successfully with older
releases.


As announced in the Go 1.9 release notes, Go 1.10 now requires FreeBSD 10.3 or
later; support for FreeBSD 9.3 has been removed.

Go now runs on NetBSD again but requires the unreleased NetBSD 8. Only GOARCH
amd64 and 386 have been fixed. The arm port is still broken.

On 32-bit MIPS systems, the new environment variable settings GOMIPS=hardfloat
(the default) and GOMIPS=softfloat select whether to use hardware instructions
or software emulation for floating-point computations.

Go 1.10 is the last release that will run on OpenBSD 6.0. Go 1.11 will require
OpenBSD 6.2.

Go 1.10 is the last release that will run on OS X 10.8 Mountain Lion or OS X
10.9 Mavericks. Go 1.11 will require OS X 10.10 Yosemite or later.

Go 1.10 is the last release that will run on Windows XP or Windows Vista. Go
1.11 will require Windows 7 or later.
2018-03-04 12:54:06 +00:00

112 lines
3.4 KiB
Makefile

# $NetBSD: Makefile,v 1.62 2018/03/04 12:54:06 bsiegert Exp $
.include "version.mk"
DISTNAME= go${GO_VERSION}.src
PKGNAME= go-${GO_VERSION}
CATEGORIES= lang
MASTER_SITES= https://storage.googleapis.com/golang/
EXTRACT_USING= bsdtar
MAINTAINER= bsiegert@NetBSD.org
HOMEPAGE= http://golang.org/
COMMENT= The Go programming language
LICENSE= modified-bsd
WRKSRC= ${WRKDIR}/go
USE_TOOLS+= bash:run perl:run pax
# uses ulimit -T
# BUILD_DEPENDS+= bash>=4.2nb3:../../shells/bash
# cgo compiles under TMPDIR
TMPDIR?= /tmp
BUILDLINK_PASSTHRU_DIRS+= ${TMPDIR}
GOROOT_FINAL= ${PREFIX}/go
INSTALLATION_DIRS= bin
REPLACE_BASH+= doc/articles/wiki/test.bash
REPLACE_BASH+= doc/codewalk/run
REPLACE_BASH+= lib/time/update.bash
REPLACE_BASH+= misc/arm/a
REPLACE_BASH+= misc/benchcmp
REPLACE_BASH+= misc/cgo/fortran/test.bash
REPLACE_BASH+= misc/cgo/testgodefs/test.bash
REPLACE_BASH+= misc/cgo/testplugin/test.bash
REPLACE_BASH+= misc/nacl/go_nacl_386_exec
REPLACE_BASH+= misc/nacl/go_nacl_amd64p32_exec
REPLACE_BASH+= misc/nacl/go_nacl_arm_exec
REPLACE_BASH+= src/all.bash
REPLACE_BASH+= src/androidtest.bash
REPLACE_BASH+= src/bootstrap.bash
REPLACE_BASH+= src/buildall.bash
REPLACE_BASH+= src/clean.bash
REPLACE_BASH+= src/cmd/go/mkalldocs.sh
REPLACE_BASH+= src/cmd/vendor/github.com/google/pprof/test.sh
REPLACE_BASH+= src/internal/trace/mkcanned.bash
REPLACE_BASH+= src/iostest.bash
REPLACE_BASH+= src/make.bash
REPLACE_BASH+= src/naclmake.bash
REPLACE_BASH+= src/nacltest.bash
REPLACE_BASH+= src/race.bash
REPLACE_BASH+= src/run.bash
REPLACE_BASH+= src/runtime/mknacl.sh
REPLACE_BASH+= src/syscall/mkall.sh
REPLACE_BASH+= src/syscall/mkerrors.sh
REPLACE_BASH+= src/syscall/mksysnum_plan9.sh
REPLACE_PERL+= src/net/http/cgi/testdata/test.cgi
REPLACE_PERL+= src/regexp/syntax/make_perl_groups.pl
REPLACE_PERL+= src/syscall/*.pl
REPLACE_PERL+= test/errchk
# uses own linker, which does not support relro on NetBSD
CHECK_RELRO_SKIP+= go/bin/go
CHECK_RELRO_SKIP+= go/bin/gofmt
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/asm
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/compile
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/link
# also does not support SSP at this time
CHECK_SSP_SKIP= ${CHECK_RELRO_SKIP}
CHECK_SSP_SKIP+= go/pkg/bootstrap/bin/cgo
# uses /bin/rc (for Plan 9)
CHECK_INTERPRETER_SKIP+= go/include/plan9/mklibc.rc
CHECK_INTERPRETER_SKIP+= go/src/all.rc
CHECK_INTERPRETER_SKIP+= go/src/clean.rc
CHECK_INTERPRETER_SKIP+= go/src/make.rc
CHECK_INTERPRETER_SKIP+= go/src/run.rc
BUILD_DEPENDS+= go14-1.4*:../../lang/go14
GOROOT_BOOTSTRAP= ${PREFIX}/go14
.include "../../mk/bsd.prefs.mk"
PLIST_VARS+= pty route
.if ${OPSYS} != "SunOS"
PLIST.pty= yes
.endif
.if ${OPSYS} != "Linux" && ${OPSYS} != "SunOS"
PLIST.route= yes
.endif
do-build:
cd ${WRKSRC}/src && env GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:Q} GOROOT_FINAL=${GOROOT_FINAL:Q} ${GOOPT} ${BASH} ./make.bash
# for RELRO build:
# cd ${WRKSRC}/src && env GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:Q} GOROOT_FINAL=${GOROOT_FINAL:Q} GO_LDFLAGS="-buildmode=pie" ${GOOPT} ${BASH} ./make.bash
do-install:
cd ${WRKSRC} && rm -rf .hgignore .hgtags pkg/obj
cd ${WRKDIR} && pax -rw go ${DESTDIR}${PREFIX}
find ${DESTDIR}${PREFIX}/go -name \*.orig -exec rm {} \;
.for cmd in go gofmt
cd ${DESTDIR}${PREFIX}/bin && ln -sf ../go/bin/${cmd} ${cmd}
.endfor
do-test:
cd ${WRKSRC}/src && GOROOT=${WRKSRC} PATH=${WRKSRC}/bin:${PATH} ${GOOPT} ${BASH} run.bash --no-rebuild --banner ""
.include "../../mk/bsd.pkg.mk"