Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
8c23f20c
Commit
8c23f20c
authored
Aug 08, 2016
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Makefile, build: move cross compilation into ci.go
parent
4f652279
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
50 deletions
+57
-50
Makefile
Makefile
+25
-28
ci.go
build/ci.go
+32
-0
flags.sh
build/flags.sh
+0
-22
No files found.
Makefile
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-
*
build/ci.go
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
}
build/flags.sh
deleted
100755 → 0
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment