aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-11-27 06:00:59 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-11-27 06:00:59 +0800
commitffe58bf5abe5100b29ac1091c882f586cd3a2ef9 (patch)
treea33ccec04cceed17761131d10a1e31eb06cf5882
parentde75d542f37a4aa3574c788cec522994ac537f1d (diff)
parent83a22b457c492a7622b5f8f4b420d0dbaa47b173 (diff)
downloaddexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar.gz
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar.bz2
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar.lz
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar.xz
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.tar.zst
dexon-ffe58bf5abe5100b29ac1091c882f586cd3a2ef9.zip
Merge pull request #2002 from karalabe/ios-cross-builds
Makefile: add support for iOS cross compilation
-rw-r--r--Godeps/Godeps.json2
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/README.md2
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/api.go24
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/api_windows.go4
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin.go (renamed from Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin_386.go)2
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/termbox.go14
-rw-r--r--Godeps/_workspace/src/github.com/nsf/termbox-go/termbox_windows.go4
-rw-r--r--Makefile36
8 files changed, 63 insertions, 25 deletions
diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index cf23ad6a6..b467215d1 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -55,7 +55,7 @@
},
{
"ImportPath": "github.com/nsf/termbox-go",
- "Rev": "675ffd907b7401b8a709a5ef2249978af5616bb2"
+ "Rev": "ca2931516914070bb7f934c83e408689cea8dfb7"
},
{
"ImportPath": "github.com/pborman/uuid",
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/README.md b/Godeps/_workspace/src/github.com/nsf/termbox-go/README.md
index 334d75102..5fc1874b1 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/README.md
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/README.md
@@ -16,6 +16,8 @@ There are also some interesting projects using termbox-go:
- [httopd](https://github.com/verdverm/httopd) is top for httpd logs.
- [mop](https://github.com/michaeldv/mop) is stock market tracker for hackers.
- [termui](https://github.com/gizak/termui) is a terminal dashboard.
+ - [termloop](https://github.com/JoelOtter/termloop) is a terminal game engine.
+ - [xterm-color-chart](https://github.com/kutuluk/xterm-color-chart) is a XTerm 256 color chart.
### API reference
[godoc.org/github.com/nsf/termbox-go](http://godoc.org/github.com/nsf/termbox-go)
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/api.go b/Godeps/_workspace/src/github.com/nsf/termbox-go/api.go
index b08bca61a..1e284060e 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/api.go
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/api.go
@@ -351,7 +351,7 @@ func PollEvent() Event {
// terminal's window size in characters). But it doesn't always match the size
// of the terminal window, after the terminal size has changed, the internal
// back buffer will get in sync only after Clear or Flush function calls.
-func Size() (int, int) {
+func Size() (width int, height int) {
return termw, termh
}
@@ -380,6 +380,12 @@ func SetInputMode(mode InputMode) InputMode {
if mode == InputCurrent {
return input_mode
}
+ if mode&(InputEsc|InputAlt) == 0 {
+ mode |= InputEsc
+ }
+ if mode&(InputEsc|InputAlt) == InputEsc|InputAlt {
+ mode &^= InputAlt
+ }
if mode&InputMouse != 0 {
out.WriteString(funcs[t_enter_mouse])
} else {
@@ -391,6 +397,7 @@ func SetInputMode(mode InputMode) InputMode {
}
// Sets the termbox output mode. Termbox has four output options:
+//
// 1. OutputNormal => [1..8]
// This mode provides 8 different colors:
// black, red, green, yellow, blue, magenta, cyan, white
@@ -402,10 +409,10 @@ func SetInputMode(mode InputMode) InputMode {
//
// 2. Output256 => [1..256]
// In this mode you can leverage the 256 terminal mode:
-// 0x00 - 0x07: the 8 colors as in OutputNormal
-// 0x08 - 0x0f: Color* | AttrBold
-// 0x10 - 0xe7: 216 different colors
-// 0xe8 - 0xff: 24 different shades of grey
+// 0x01 - 0x08: the 8 colors as in OutputNormal
+// 0x09 - 0x10: Color* | AttrBold
+// 0x11 - 0xe8: 216 different colors
+// 0xe9 - 0x1ff: 24 different shades of grey
//
// Example usage:
// SetCell(x, y, '@', 184, 240);
@@ -415,11 +422,12 @@ func SetInputMode(mode InputMode) InputMode {
// This mode supports the 3rd range of the 256 mode only.
// But you dont need to provide an offset.
//
-// 4. OutputGrayscale => [1..24]
-// This mode supports the 4th range of the 256 mode only.
+// 4. OutputGrayscale => [1..26]
+// This mode supports the 4th range of the 256 mode
+// and black and white colors from 3th range of the 256 mode
// But you dont need to provide an offset.
//
-// In all modes, 0 represents the default color.
+// In all modes, 0x00 represents the default color.
//
// `go run _demos/output.go` to see its impact on your terminal.
//
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/api_windows.go b/Godeps/_workspace/src/github.com/nsf/termbox-go/api_windows.go
index 78d954b36..203544bbf 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/api_windows.go
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/api_windows.go
@@ -80,6 +80,10 @@ func Close() {
// stop event producer
cancel_comm <- true
set_event(interrupt)
+ select {
+ case <-input_comm:
+ default:
+ }
<-cancel_done_comm
set_console_cursor_info(out, &orig_cursor_info)
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin_386.go b/Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin.go
index e03624ebc..25b78f7ab 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin_386.go
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/syscalls_darwin.go
@@ -1,6 +1,8 @@
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs syscalls.go
+// +build !amd64
+
package termbox
type syscall_Termios struct {
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox.go b/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox.go
index 0aee8aca9..f754880d2 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox.go
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox.go
@@ -72,6 +72,12 @@ var (
input_comm = make(chan input_event)
interrupt_comm = make(chan struct{})
intbuf = make([]byte, 0, 16)
+
+ // grayscale indexes
+ grayscale = []Attribute{
+ 0, 17, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 232,
+ }
)
func write_cursor(x, y int) {
@@ -171,17 +177,17 @@ func send_attr(fg, bg Attribute) {
case OutputGrayscale:
fgcol = fg & 0x1F
bgcol = bg & 0x1F
- if fgcol > 24 {
+ if fgcol > 26 {
fgcol = ColorDefault
}
- if bgcol > 24 {
+ if bgcol > 26 {
bgcol = ColorDefault
}
if fgcol != ColorDefault {
- fgcol += 0xe8
+ fgcol = grayscale[fgcol]
}
if bgcol != ColorDefault {
- bgcol += 0xe8
+ bgcol = grayscale[bgcol]
}
default:
fgcol = fg & 0x0F
diff --git a/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox_windows.go b/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox_windows.go
index 17d1bdc84..f345d0eb0 100644
--- a/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox_windows.go
+++ b/Godeps/_workspace/src/github.com/nsf/termbox-go/termbox_windows.go
@@ -129,7 +129,7 @@ func create_console_screen_buffer() (h syscall.Handle, err error) {
err = syscall.EINVAL
}
}
- return syscall.Handle(r0), nil
+ return syscall.Handle(r0), err
}
func get_console_screen_buffer_info(h syscall.Handle, info *console_screen_buffer_info) (err error) {
@@ -305,7 +305,7 @@ func create_event() (out syscall.Handle, err error) {
err = syscall.EINVAL
}
}
- return syscall.Handle(r0), nil
+ return syscall.Handle(r0), err
}
func wait_for_multiple_objects(objects []syscall.Handle) (err error) {
diff --git a/Makefile b/Makefile
index 41cbc1ce6..5fc5e9a9d 100644
--- a/Makefile
+++ b/Makefile
@@ -7,10 +7,12 @@
.PHONY: geth-darwin geth-darwin-386 geth-darwin-amd64
.PHONY: geth-windows geth-windows-386 geth-windows-amd64
.PHONY: geth-android geth-android-16 geth-android-21
+.PHONY: geth-ios geth-ios-5.0 geth-ios-8.1
GOBIN = build/bin
-CROSSDEPS = https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2
+CROSSDEPS = https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2
+MODE ?= default
GO ?= latest
geth:
@@ -27,17 +29,17 @@ geth-linux: xgo geth-linux-arm geth-linux-386 geth-linux-amd64
@ls -l $(GOBIN)/geth-linux-*
geth-linux-arm: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/arm -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/arm -v $(shell build/flags.sh) ./cmd/geth
@echo "Linux ARM cross compilation done:"
@ls -l $(GOBIN)/geth-linux-* | grep arm
geth-linux-386: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/386 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/386 -v $(shell build/flags.sh) ./cmd/geth
@echo "Linux 386 cross compilation done:"
@ls -l $(GOBIN)/geth-linux-* | grep 386
geth-linux-amd64: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/amd64 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=linux/amd64 -v $(shell build/flags.sh) ./cmd/geth
@echo "Linux amd64 cross compilation done:"
@ls -l $(GOBIN)/geth-linux-* | grep amd64
@@ -46,12 +48,12 @@ geth-darwin: xgo geth-darwin-386 geth-darwin-amd64
@ls -l $(GOBIN)/geth-darwin-*
geth-darwin-386: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=darwin/386 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=darwin/386 -v $(shell build/flags.sh) ./cmd/geth
@echo "Darwin 386 cross compilation done:"
@ls -l $(GOBIN)/geth-darwin-* | grep 386
geth-darwin-amd64: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=darwin/amd64 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=darwin/amd64 -v $(shell build/flags.sh) ./cmd/geth
@echo "Darwin amd64 cross compilation done:"
@ls -l $(GOBIN)/geth-darwin-* | grep amd64
@@ -60,12 +62,12 @@ geth-windows: xgo geth-windows-386 geth-windows-amd64
@ls -l $(GOBIN)/geth-windows-*
geth-windows-386: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=windows/386 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=windows/386 -v $(shell build/flags.sh) ./cmd/geth
@echo "Windows 386 cross compilation done:"
@ls -l $(GOBIN)/geth-windows-* | grep 386
geth-windows-amd64: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=windows/amd64 -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=windows/amd64 -v $(shell build/flags.sh) ./cmd/geth
@echo "Windows amd64 cross compilation done:"
@ls -l $(GOBIN)/geth-windows-* | grep amd64
@@ -74,15 +76,29 @@ geth-android: xgo geth-android-16 geth-android-21
@ls -l $(GOBIN)/geth-android-*
geth-android-16: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=android-16/* -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=android-16/* -v $(shell build/flags.sh) ./cmd/geth
@echo "Android 16 cross compilation done:"
@ls -l $(GOBIN)/geth-android-16-*
geth-android-21: xgo
- build/env.sh $(GOBIN)/xgo --go=$(GO) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=android-21/* -v $(shell build/flags.sh) ./cmd/geth
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --targets=android-21/* -v $(shell build/flags.sh) ./cmd/geth
@echo "Android 21 cross compilation done:"
@ls -l $(GOBIN)/geth-android-21-*
+geth-ios: xgo geth-ios-5.0 geth-ios-8.1
+ @echo "iOS cross compilation done:"
+ @ls -l $(GOBIN)/geth-ios-*
+
+geth-ios-5.0:
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --depsargs=--disable-assembly --targets=ios-5.0/* -v $(shell build/flags.sh) ./cmd/geth
+ @echo "iOS 5.0 cross compilation done:"
+ @ls -l $(GOBIN)/geth-ios-5.0-*
+
+geth-ios-8.1:
+ build/env.sh $(GOBIN)/xgo --go=$(GO) --buildmode=$(MODE) --dest=$(GOBIN) --deps=$(CROSSDEPS) --depsargs=--disable-assembly --targets=ios-8.1/* -v $(shell build/flags.sh) ./cmd/geth
+ @echo "iOS 8.1 cross compilation done:"
+ @ls -l $(GOBIN)/geth-ios-8.1-*
+
evm:
build/env.sh $(GOROOT)/bin/go install -v $(shell build/flags.sh) ./cmd/evm
@echo "Done building."