good morning!!!!
Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
bor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Harbor Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
open
bor
Commits
8c23f20c
Commit
8c23f20c
authored
8 years ago
by
Péter Szilágyi
Browse files
Options
Downloads
Patches
Plain Diff
Makefile, build: move cross compilation into ci.go
parent
4f652279
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Makefile
+25
-28
25 additions, 28 deletions
Makefile
build/ci.go
+32
-0
32 additions, 0 deletions
build/ci.go
build/flags.sh
+0
-22
0 additions, 22 deletions
build/flags.sh
with
57 additions
and
50 deletions
Makefile
+
25
−
28
View file @
8c23f20c
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
# with Go source code. If you know what GOPATH is then you probably
# with Go source code. If you know what GOPATH is then you probably
# don't need to bother with make.
# don't need to bother with make.
.PHONY
:
geth geth-cross evm all test
xgo
clean
.PHONY
:
geth geth-cross evm all test clean
.PHONY
:
geth-linux geth-linux-386 geth-linux-amd64
.PHONY
:
geth-linux geth-linux-386 geth-linux-amd64
.PHONY
:
geth-linux-arm geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-arm64
.PHONY
:
geth-linux-arm geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-arm64
.PHONY
:
geth-darwin geth-darwin-386 geth-darwin-amd64
.PHONY
:
geth-darwin geth-darwin-386 geth-darwin-amd64
...
@@ -33,9 +33,6 @@ clean:
...
@@ -33,9 +33,6 @@ clean:
# Cross Compilation Targets (xgo)
# Cross Compilation Targets (xgo)
xgo
:
build/env.sh go get github.com/karalabe/xgo
geth-cross
:
geth-linux geth-darwin geth-windows geth-android geth-ios
geth-cross
:
geth-linux geth-darwin geth-windows geth-android geth-ios
@
echo
"Full cross compilation done:"
@
echo
"Full cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-
*
@
ls
-ld
$(
GOBIN
)
/geth-
*
...
@@ -44,13 +41,13 @@ geth-linux: geth-linux-386 geth-linux-amd64 geth-linux-arm
...
@@ -44,13 +41,13 @@ geth-linux: geth-linux-386 geth-linux-amd64 geth-linux-arm
@
echo
"Linux cross compilation done:"
@
echo
"Linux cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
geth-linux-386
:
xgo
geth-linux-386
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/386
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/386
-v
./cmd/geth
@
echo
"Linux 386 cross compilation done:"
@
echo
"Linux 386 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
386
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
386
geth-linux-amd64
:
xgo
geth-linux-amd64
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/amd64
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/amd64
-v
./cmd/geth
@
echo
"Linux amd64 cross compilation done:"
@
echo
"Linux amd64 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
amd64
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
amd64
...
@@ -58,23 +55,23 @@ geth-linux-arm: geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-ar
...
@@ -58,23 +55,23 @@ geth-linux-arm: geth-linux-arm-5 geth-linux-arm-6 geth-linux-arm-7 geth-linux-ar
@
echo
"Linux ARM cross compilation done:"
@
echo
"Linux ARM cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm
geth-linux-arm-5
:
xgo
geth-linux-arm-5
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-5
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-5
-v
./cmd/geth
@
echo
"Linux ARMv5 cross compilation done:"
@
echo
"Linux ARMv5 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-5
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-5
geth-linux-arm-6
:
xgo
geth-linux-arm-6
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-6
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-6
-v
./cmd/geth
@
echo
"Linux ARMv6 cross compilation done:"
@
echo
"Linux ARMv6 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-6
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-6
geth-linux-arm-7
:
xgo
geth-linux-arm-7
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-7
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm-7
-v
./cmd/geth
@
echo
"Linux ARMv7 cross compilation done:"
@
echo
"Linux ARMv7 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-7
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm-7
geth-linux-arm64
:
xgo
geth-linux-arm64
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm64
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
linux/arm64
-v
./cmd/geth
@
echo
"Linux ARM64 cross compilation done:"
@
echo
"Linux ARM64 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm64
@
ls
-ld
$(
GOBIN
)
/geth-linux-
*
|
grep
arm64
...
@@ -82,13 +79,13 @@ geth-darwin: geth-darwin-386 geth-darwin-amd64
...
@@ -82,13 +79,13 @@ geth-darwin: geth-darwin-386 geth-darwin-amd64
@
echo
"Darwin cross compilation done:"
@
echo
"Darwin cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
geth-darwin-386
:
xgo
geth-darwin-386
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
darwin/386
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
darwin/386
-v
./cmd/geth
@
echo
"Darwin 386 cross compilation done:"
@
echo
"Darwin 386 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
|
grep
386
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
|
grep
386
geth-darwin-amd64
:
xgo
geth-darwin-amd64
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
darwin/amd64
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
darwin/amd64
-v
./cmd/geth
@
echo
"Darwin amd64 cross compilation done:"
@
echo
"Darwin amd64 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
|
grep
amd64
@
ls
-ld
$(
GOBIN
)
/geth-darwin-
*
|
grep
amd64
...
@@ -96,22 +93,22 @@ geth-windows: geth-windows-386 geth-windows-amd64
...
@@ -96,22 +93,22 @@ geth-windows: geth-windows-386 geth-windows-amd64
@
echo
"Windows cross compilation done:"
@
echo
"Windows cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
geth-windows-386
:
xgo
geth-windows-386
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
windows/386
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
windows/386
-v
./cmd/geth
@
echo
"Windows 386 cross compilation done:"
@
echo
"Windows 386 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
|
grep
386
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
|
grep
386
geth-windows-amd64
:
xgo
geth-windows-amd64
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
windows/amd64
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
windows/amd64
-v
./cmd/geth
@
echo
"Windows amd64 cross compilation done:"
@
echo
"Windows amd64 cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
|
grep
amd64
@
ls
-ld
$(
GOBIN
)
/geth-windows-
*
|
grep
amd64
geth-android
:
xgo
geth-android
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
android-21/aar
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
android-21/aar
-v
./cmd/geth
@
echo
"Android cross compilation done:"
@
echo
"Android cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-android-
*
@
ls
-ld
$(
GOBIN
)
/geth-android-
*
geth-ios
:
xgo
geth-ios
:
build/env.sh
$(
GOBIN
)
/
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
ios-7.0/framework
-v
$(
shell build/flags.sh
)
./cmd/geth
build/env.sh
go run build/ci.go
xgo
--go
=
$(
GO
)
--dest
=
$(
GOBIN
)
--targets
=
ios-7.0/framework
-v
./cmd/geth
@
echo
"iOS framework cross compilation done:"
@
echo
"iOS framework cross compilation done:"
@
ls
-ld
$(
GOBIN
)
/geth-ios-
*
@
ls
-ld
$(
GOBIN
)
/geth-ios-
*
This diff is collapsed.
Click to expand it.
build/ci.go
+
32
−
0
View file @
8c23f20c
...
@@ -28,6 +28,7 @@ Available commands are:
...
@@ -28,6 +28,7 @@ Available commands are:
archive [ -type zip|tar ] -- archives build artefacts
archive [ -type zip|tar ] -- archives build artefacts
importkeys -- imports signing keys from env
importkeys -- imports signing keys from env
debsrc [ -sign key-id ] [ -upload dest ] -- creates a debian source package
debsrc [ -sign key-id ] [ -upload dest ] -- creates a debian source package
xgo [ options ] -- cross builds according to options
For all commands, -n prevents execution of external programs (dry run mode).
For all commands, -n prevents execution of external programs (dry run mode).
...
@@ -121,6 +122,8 @@ func main() {
...
@@ -121,6 +122,8 @@ func main() {
doDebianSource
(
os
.
Args
[
2
:
])
doDebianSource
(
os
.
Args
[
2
:
])
case
"travis-debsrc"
:
case
"travis-debsrc"
:
doTravisDebianSource
(
os
.
Args
[
2
:
])
doTravisDebianSource
(
os
.
Args
[
2
:
])
case
"xgo"
:
doXgo
(
os
.
Args
[
2
:
])
default
:
default
:
log
.
Fatal
(
"unknown command "
,
os
.
Args
[
1
])
log
.
Fatal
(
"unknown command "
,
os
.
Args
[
1
])
}
}
...
@@ -463,3 +466,32 @@ func stageDebianSource(tmpdir string, meta debMetadata) (pkgdir string) {
...
@@ -463,3 +466,32 @@ func stageDebianSource(tmpdir string, meta debMetadata) (pkgdir string) {
return
pkgdir
return
pkgdir
}
}
// Cross compilation
func
doXgo
(
cmdline
[]
string
)
{
// Make sure xgo is available for cross compilation
gogetxgo
:=
goTool
(
"get"
,
"github.com/karalabe/xgo"
)
build
.
MustRun
(
gogetxgo
)
// Execute the actual cross compilation
pkg
:=
cmdline
[
len
(
cmdline
)
-
1
]
args
:=
append
(
cmdline
[
:
len
(
cmdline
)
-
1
],
makeBuildFlags
(
""
)
...
)
build
.
MustRun
(
xgoTool
(
append
(
args
,
pkg
)
...
))
}
func
xgoTool
(
args
...
string
)
*
exec
.
Cmd
{
cmd
:=
exec
.
Command
(
filepath
.
Join
(
GOBIN
,
"xgo"
),
args
...
)
cmd
.
Env
=
[]
string
{
"GOPATH="
+
build
.
GOPATH
(),
"GOBIN="
+
GOBIN
,
}
for
_
,
e
:=
range
os
.
Environ
()
{
if
strings
.
HasPrefix
(
e
,
"GOPATH="
)
||
strings
.
HasPrefix
(
e
,
"GOBIN="
)
{
continue
}
cmd
.
Env
=
append
(
cmd
.
Env
,
e
)
}
return
cmd
}
This diff is collapsed.
Click to expand it.
build/flags.sh
deleted
100755 → 0
+
0
−
22
View file @
4f652279
#!/bin/sh
set
-e
if
[
!
-f
"build/env.sh"
]
;
then
echo
"
$0
must be run from the root of the repository."
exit
2
fi
# Since Go 1.5, the separator char for link time assignments
# is '=' and using ' ' prints a warning. However, Go < 1.5 does
# not support using '='.
sep
=
$(
go version |
awk
'{ if ($3 >= "go1.5" || index($3, "devel")) print "="; else print " "; }'
-
)
# set gitCommit when running from a Git checkout.
if
[
-f
".git/HEAD"
]
;
then
echo
"-ldflags '-X main.gitCommit
$sep
$(
git rev-parse HEAD
)
'"
fi
if
[
!
-z
"
$GO_OPENCL
"
]
;
then
echo
"-tags opencl"
fi
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment