summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-11-27 15:16:53 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-11-27 15:16:53 +0900
commit67026718c1d3d980f5cbe4a6caa137ce169768f9 (patch)
tree59d6fbc64820208a41b72ea527aba504fa55838e
parenta71c47140575b324afeb054a4fbc0e3fa505d4d0 (diff)
downloadfzf-67026718c1d3d980f5cbe4a6caa137ce169768f9.tar.gz
Add BUILD.md
-rw-r--r--BUILD.md106
-rw-r--r--CHANGELOG.md2
-rw-r--r--README.md5
-rw-r--r--src/README.md50
4 files changed, 113 insertions, 50 deletions
diff --git a/BUILD.md b/BUILD.md
new file mode 100644
index 00000000..ca97e09c
--- /dev/null
+++ b/BUILD.md
@@ -0,0 +1,106 @@
+Building fzf
+============
+
+Build instructions
+------------------
+
+### Prerequisites
+
+- `go` executable in $PATH
+
+### Using Makefile
+
+Makefile will set up and use its own `$GOPATH` under the project root.
+
+```sh
+# Source files are located in src directory
+cd src
+
+# Build fzf binary for your platform in src/fzf
+make
+
+# Build fzf binary and copy it to bin directory
+make install
+
+# Build 32-bit and 64-bit executables and tarballs
+make release
+
+# Build executables and tarballs for Linux using Docker
+make linux
+```
+
+### Using `go get`
+
+Alternatively, you can build fzf directly with `go get` command without
+cloning the repository.
+
+```sh
+go get -u github.com/junegunn/fzf/src/fzf
+```
+
+Build options
+-------------
+
+### With ncurses 6
+
+The official binaries of fzf are built with ncurses 5 because it's widely
+supported by different platforms. However ncurses 5 is old and has a number of
+limitations.
+
+1. Does not support more than 256 color pairs (See [357][357])
+2. Does not support italics
+3. Does not support 24-bit color
+
+[357]: https://github.com/junegunn/fzf/issues/357
+
+But you can manually build fzf with ncurses 6 to overcome some of these
+limitations. ncurses 6 supports up to 32767 color pairs (1), and supports
+italics (2). To build fzf with ncurses 6, you have to install it first. On
+macOS, you can use Homebrew to install it.
+
+```sh
+brew install homebrew/dupes/ncurses
+LDFLAGS="-L/usr/local/opt/ncurses/lib" make install
+```
+
+### With tcell
+
+[tcell][tcell] is a portable alternative to ncurses and we currently use it to
+build Windows binaries. tcell has many benefits but most importantly, it
+supports 24-bit colors. To build fzf with tcell:
+
+```sh
+TAGS=tcell make install
+```
+
+However, note that tcell has its own issues.
+
+- Poor rendering performance compared to ncurses
+- Does not support bracketed-paste mode
+- Does not support italics unlike ncurses 6
+- Some wide characters are not correctly displayed
+
+Third-party libraries used
+--------------------------
+
+- [ncurses][ncurses]
+- [mattn/go-runewidth](https://github.com/mattn/go-runewidth)
+ - Licensed under [MIT](http://mattn.mit-license.org)
+- [mattn/go-shellwords](https://github.com/mattn/go-shellwords)
+ - Licensed under [MIT](http://mattn.mit-license.org)
+- [mattn/go-isatty](https://github.com/mattn/go-isatty)
+ - Licensed under [MIT](http://mattn.mit-license.org)
+- [tcell](https://github.com/gdamore/tcell)
+ - Licensed under [Apache License 2.0](https://github.com/gdamore/tcell/blob/master/LICENSE)
+
+License
+-------
+
+[MIT](LICENSE)
+
+[install]: https://github.com/junegunn/fzf#installation
+[go]: https://golang.org/
+[gil]: http://en.wikipedia.org/wiki/Global_Interpreter_Lock
+[ncurses]: https://www.gnu.org/software/ncurses/
+[req]: http://golang.org/doc/install
+[tcell]: https://github.com/gdamore/tcell
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33a67a2f..a37b74c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,7 +14,7 @@ CHANGELOG
- Supports italics
- *tcell*
- 24-bit color support
- - See https://github.com/junegunn/fzf/blob/master/src/README.md#build
+ - See https://github.com/junegunn/fzf/blob/master/BUILD.md
0.15.8
------
diff --git a/README.md b/README.md
index 9051f67e..4535a48c 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,11 @@ flawlessly.
[wsl]: https://blogs.msdn.microsoft.com/wsl/
+Building fzf
+------------
+
+See [BUILD.md](BUILD.md).
+
Usage
-----
diff --git a/src/README.md b/src/README.md
index 9f7a5588..2d065a92 100644
--- a/src/README.md
+++ b/src/README.md
@@ -50,55 +50,7 @@ starts much faster though the difference may not be noticeable.
Build
-----
-```sh
-# Build fzf executables and tarballs
-make release
-
-# Install the executable to ../bin directory
-make install
-
-# Build executables and tarballs for Linux using Docker
-make linux
-```
-
-### With ncurses 6
-
-The official binaries of fzf are built with ncurses 5 because it's widely
-supported by different platforms. However ncurses 5 is old and has a number of
-limitations.
-
-1. Does not support more than 256 color pairs (See [357][357])
-2. Does not support italics
-3. Does not support 24-bit color
-
-[357]: https://github.com/junegunn/fzf/issues/357
-
-But you can manually build fzf with ncurses 6 to overcome some of these
-limitations. ncurses 6 supports up to 32767 color pairs (1), and supports
-italics (2). To build fzf with ncurses 6, you have to install it first. On
-macOS, you can use Homebrew to install it.
-
-```sh
-brew install homebrew/dupes/ncurses
-LDFLAGS="-L/usr/local/opt/ncurses/lib" make install
-```
-
-### With tcell
-
-[tcell][tcell] is a portable alternative to ncurses and we currently use it to
-build Windows binaries. tcell has many benefits but most importantly, it
-supports 24-bit colors. To build fzf with tcell:
-
-```sh
-TAGS=tcell make install
-```
-
-However, note that tcell has its own issues.
-
-- Poor rendering performance compared to ncurses
-- Does not support bracketed-paste mode
-- Does not support italics unlike ncurses 6
-- Some wide characters are not correctly displayed
+See [BUILD.md](../BUILD.md)
Test
----