Allow tigrc commands to span multiple lines
[tig.git] / INSTALL.adoc
blobd97a5e37034272d7276a18e5bf3ebea5852207d7
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 Build configuration
52 -------------------
54 Build settings are read from the file `config.make` and for certain systems also
55 from `contrib/config.make-$kernel`. An example of the latter is Mac OS X, where
56 `contrib/config.make-Darwin` provides out-of-the-box configuration for using the
57 system ncurses library and linking with the iconv library. This makes it easy to
58 configure the build without having to use the `configure` script. As a side
59 note, `configure` itself generates a `config.make` file.
61 Apart from the different standard `make` build variables (`CC`, `CFLAGS`, etc.)
62 and standard `configure` variables (`prefix`, `bindir`, etc.), build settings
63 can be one of the following flags:
65  - `NO_SETENV`: Define this variable to enable work-around for missing
66    `setenv()`.
67  - `NO_MKSTEMPS`: Define this variable to enable work-around for missing
68    `mkstemps()`.
69  - `NO_BUILTIN_TIGRC`: Reduce the size of the binary by not including a
70    built-in tigrc. The built-in tigrc is used as a fallback when no
71    `tigrc` is found in the system configuration directory (e.g. `/etc`).
73 The following example `config.make` manually configures Tig to use the ncurses
74 library with wide character support and include the proper ncurses header file
75 (see tig.h for more information):
77         LDLIBS = -lncursesw
78         CPPFLAGS = -DHAVE_NCURSESW_CURSES_H
80 For more examples of build settings, see `contrib/config.make` and
81 `config.make.in`.
83 Tools and packages
84 ------------------
86 The following tools and packages are needed:
88 [cols="2<,8<",options="header"]
89 |=============================================================================
90 |Tool                           |Description
91 |git-core                       |Tig is just a frontend for Git.
92 |ncurses or ncursesw            |Be sure to have the development files
93                                  installed. Usually they are available in a
94                                  separate package ending with `-dev`.
96                                  Ncurses with wide character support (ncursesw)
97                                  is required to properly handle UTF-8 encoded
98                                  strings.
100                                  Note for packagers: For Tig's `configure`
101                                  script to work as expected you should avoid
102                                  configuring and building ncurses using
103                                  `--with-shared`.
104 |iconv                          |If iconv is not provided by the c library
105                                  you need to change the Makefile to link it
106                                  into the binary.
107 |=============================================================================
109 The following tools and packages are optional and mainly needed for creating the
110 configure script and building documentation:
112 [cols="2<,8<",options="header"]
113 |=============================================================================
114 |Tool                           |Description
115 |readline                       |Adds support for completion and history in
116                                  search and command prompts.
117 |autoconf                       |Contains autoreconf for generating configure
118                                  from configure.ac.
119 |asciidoc (>= 8.4)              |Generates HTML and (DocBook) XML from text.
120 |xmlto                          |Generates manpages and chunked HTML from XML.
121 |DocBook XSL (>= 1.72.0)        |Used by xmlto for building manpages.
122 |DocBook (DSSL/Jade) tools      |Generates PDF from XML.
123                                  Also known as docbook-utils.
124 |=============================================================================