-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Portfile
151 lines (122 loc) · 5.27 KB
/
Portfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup legacysupport 1.0
legacysupport.newest_darwin_requires_legacy 13
name go
epoch 2
version 1.13.4
categories lang
platforms darwin freebsd linux
license BSD
maintainers {ciserlohn @ci42} openmaintainer
description compiled, garbage-collected, concurrent programming \
language developed by Google Inc.
long_description \
The Go programming language is an open source project to make programmers \
more productive. Go is expressive, concise, clean, and efficient. Its \
concurrency mechanisms make it easy to write programs that get the most \
out of multicore and networked machines, while its novel type system \
enables flexible and modular program construction. Go compiles quickly \
to machine code yet has the convenience of garbage collection and the \
power of run-time reflection. It's a fast, statically typed, compiled \
language that feels like a dynamically typed, interpreted language. Go \
is developed by Google Inc.
homepage https://golang.org/
master_sites https://storage.googleapis.com/golang/
distfiles ${name}${version}.src.tar.gz
worksrcdir ${name}
checksums rmd160 e7d58a630d6179ead505e71a6a0aa88f4add4438 \
sha256 95dbeab442ee2746b9acf0934c8e2fc26414a0565c008631b04addb8c02e7624 \
size 21619153
depends_build port:go-1.4
set GOROOT ${worksrcpath}
set GOROOT_FINAL ${prefix}/lib/${name}
supported_archs i386 x86_64
switch ${build_arch} {
i386 {
set GOARCH 386
}
x86_64 {
set GOARCH amd64
}
default {
set GOARCH {}
}
}
use_configure no
build.dir ${worksrcpath}/src
build.cmd ./make.bash
build.target
build.env GOROOT_BOOTSTRAP=${prefix}/lib/go-1.4 \
GOROOT=${GOROOT} \
GOARCH=${GOARCH} \
GOOS=darwin \
GOROOT_FINAL=${GOROOT_FINAL} \
CC=${configure.cc}
if {${os.platform} eq "darwin" && ${os.major} <= ${legacysupport.newest_darwin_requires_legacy}} {
# The legacy support PG will not actually change anything in this port directly,
# since go doesn't use the standard CFLAGS/CXXFLAGS.
# We need to patch the build system and set up env variables manually.
patchfiles-append dist-support-BOOT_GO_LDFLAGS.patch
if {[vercmp [macports_version] 2.5.99] >= 0} {
build.env-append "GO_EXTLINK_ENABLED=1" \
"GO_LDFLAGS=\"-extldflags=${configure.ldflags}\"" \
"BOOT_GO_LDFLAGS=-extldflags=${configure.ldflags}"
} else {
patchfiles-append workaround-base-env-issue-GO_EXT_LDFLAGS.patch
build.env-append GO_EXTLINK_ENABLED="1" \
GO_EXT_LDFLAGS="${configure.ldflags}" \
BOOT_GO_EXT_LDFLAGS="${configure.ldflags}"
}
notes-append [subst {
go had to be specially patched and built to work on your platform.
It likely won't work out of the box when building other projects,\
so make sure change your environment to use the following variables:
* GO_EXTLINK_ENABLED="1"
to always force go to use the external gcc or clang linker and
* GO_LDFLAGS="\\\"-extldflags=${configure.ldflags}\\\""
to force-link any binary against the legacy support library.\
Use exactly the quoting provided here, even if it may look odd,\
or compilation will fail.
Failure to do so will leave you unable to create binaries that use\
features not natively available on your system, either directly\
or through a go core dependency.
}]
}
use_parallel_build no
post-build {
system "find ${worksrcpath} -type d -name .hg* -print0 | xargs -0 rm -rf"
delete ${worksrcpath}/pkg/bootstrap
}
destroot {
delete ${worksrcpath}/src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/malformed_macho
set grfdir ${destroot}${GOROOT_FINAL}
set docdir ${destroot}${prefix}/share/doc/${name}
xinstall -d ${grfdir}
xinstall -d ${docdir}
foreach f {api bin lib misc pkg src test} {
copy ${worksrcpath}/${f} ${grfdir}
}
foreach f {go gofmt} {
system -W ${destroot}${prefix}/bin/ "ln -s ../lib/${name}/bin/$f ./$f"
}
xinstall -m 644 -W ${worksrcpath} \
AUTHORS \
CONTRIBUTING.md \
CONTRIBUTORS \
LICENSE \
README.md \
PATENTS \
VERSION \
${docdir}
copy {*}[glob -directory ${worksrcpath}/doc *] ${docdir}
}
if {${os.platform} eq "darwin" && ${os.major} < 11} {
pre-fetch {
ui_error "${name} @${version} requires OS X 10.7 or greater."
return -code error "incompatible Mac OS X version"
}
}
livecheck.type regex
livecheck.url ${homepage}/dl/
livecheck.regex {go([0-9.]+).src.tar.gz}