Add option to turn off automatic enabling of topo-order
[tig.git] / INSTALL.adoc
blob4664362f773fdfa4fe0c2eca960b7aefdab5bb29
1 Installation instructions
2 =========================
3 :docext: adoc
5 Download a tarball from http://jonas.nitro.dk/tig/releases[] or clone the Tig
6 repository http://github.com/jonas/tig[git://github.com/jonas/tig.git].
8 The quick and simple way to install Tig is:
10         $ make
11         $ make install
13 By default, `tig` is installed in `$HOME/bin`. To install `tig` elsewhere set
14 `prefix` to the desired path:
16         $ make prefix=/usr/local
17         $ sudo make install prefix=/usr/local
19 Documentation files, such as manpages, are distributed in the release tarballs,
20 and can be installed using:
22         $ make install-doc
24 When installing directly from the Tig repository, `make install-doc` will assume
25 that the documentation tool chain is available and build the documentation
26 locally. In case you do not wish to install the required tools, documentation
27 can be installed from the 'release' branch using:
29         $ make install-release-doc
31 Before upgrading, you are advised to read link:NEWS.{docext}[the release notes].
33 Installation using `configure`
34 ------------------------------
36 Optionally, you can use the `configure` script to detect dependencies:
38         $ ./configure
39         $ make
40         $ make install
42 If your `iconv` library is not in the default library and include path, you need
43 to pass the `--with-libiconv` option to `configure` to tell it where to look.
45 Note, if you are building from the Tig repository, you need to generate
46 `configure` yourself. First, ensure that `autoconf` is installed on your system,
47 and then run the following command:
49         $ make configure
51 Installation using Homebrew
52 ---------------------------
53 You can use link:http://brew.sh[Homebrew] to install Tig on OS X:
55         $ brew install tig
57 Build configuration
58 -------------------
60 Build settings are read from the file `config.make` and for certain systems also
61 from `contrib/config.make-$kernel`. An example of the latter is Mac OS X, where
62 `contrib/config.make-Darwin` provides out-of-the-box configuration for using the
63 system ncurses library and linking with the iconv library. This makes it easy to
64 configure the build without having to use the `configure` script. As a side
65 note, `configure` itself generates a `config.make` file.
67 Apart from the different standard `make` build variables (`CC`, `CFLAGS`, etc.)
68 and standard `configure` variables (`prefix`, `bindir`, etc.), build settings
69 can be one of the following flags:
71  - `NO_SETENV`: Define this variable to enable work-around for missing
72    `setenv()`.
73  - `NO_MKSTEMPS`: Define this variable to enable work-around for missing
74    `mkstemps()`.
75  - `NO_BUILTIN_TIGRC`: Reduce the size of the binary by not including a
76    built-in tigrc. The built-in tigrc is used as a fallback when no
77    `tigrc` is found in the system configuration directory (e.g. `/etc`).
79 The following example `config.make` manually configures Tig to use the ncurses
80 library with wide character support and include the proper ncurses header file
81 (see tig.h for more information):
83         LDLIBS = -lncursesw
84         CPPFLAGS = -DHAVE_NCURSESW_CURSES_H
86 For more examples of build settings, see `contrib/config.make` and
87 `config.make.in`.
89 Tools and packages
90 ------------------
92 The following tools and packages are needed:
94 [cols="2<,8<",options="header"]
95 |=============================================================================
96 |Tool                           |Description
97 |git-core                       |Tig is just a frontend for Git.
98 |ncurses or ncursesw            |Be sure to have the development files
99                                  installed. Usually they are available in a
100                                  separate package ending with `-dev`.
102                                  Ncurses with wide character support (ncursesw)
103                                  is required to properly handle UTF-8 encoded
104                                  strings.
106                                  Note for packagers: For Tig's `configure`
107                                  script to work as expected you should avoid
108                                  configuring and building ncurses using
109                                  `--with-shared`.
110 |iconv                          |If iconv is not provided by the c library
111                                  you need to change the Makefile to link it
112                                  into the binary.
113 |=============================================================================
115 The following tools and packages are optional and mainly needed for creating the
116 configure script and building documentation:
118 [cols="2<,8<",options="header"]
119 |=============================================================================
120 |Tool                           |Description
121 |readline                       |Adds support for completion and history in
122                                  search and command prompts.
123 |autoconf                       |Contains autoreconf for generating configure
124                                  from configure.ac.
125 |asciidoc (>= 8.4)              |Generates HTML and (DocBook) XML from text.
126 |xmlto                          |Generates manpages and chunked HTML from XML.
127 |DocBook XSL (>= 1.72.0)        |Used by xmlto for building manpages.
128 |DocBook (DSSL/Jade) tools      |Generates PDF from XML.
129                                  Also known as docbook-utils.
130 |=============================================================================