]> Cypherpunks.ru repositories - nncp.git/blob - doc/building.texi
No redo during installation
[nncp.git] / doc / building.texi
1 @node Build-instructions
2 @cindex building
3 @section Build instructions
4
5 Make sure that Go is installed. For example to install it from packages:
6
7 @table @asis
8 @item FreeBSD
9     @verb{|pkg install go|}
10 @item Debian, Ubuntu
11     @verb{|apt install golang|}
12 @end table
13
14 @example
15 $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz
16 $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz.asc
17 $ gpg --verify nncp-@value{VERSION}.tar.xz.asc nncp-@value{VERSION}.tar.xz
18 $ xz --decompress --stdout nncp-@value{VERSION}.tar.xz | tar xf -
19 $ cd nncp-@value{VERSION}
20 $ bin/build
21 @end example
22
23 @pindex info
24 After that you should get various @command{bin/nncp-*} binaries and
25 @command{bin/hjson-cli} command (only for your convenience, not
26 necessary installation). For example, documentation for
27 @command{nncp-bundle} command can be get with
28 @command{info doc/nncp.info -n nncp-bundle}.
29
30 @vindex PREFIX
31 @vindex DESTDIR
32 @vindex GO
33 @vindex MAKEINFO
34 @vindex PLANTUML
35 @vindex PREFIX
36 @vindex SENDMAIL
37 @vindex CFGPATH
38 @vindex SPOOLPATH
39 @vindex LOGPATH
40 @vindex BINDIR
41 @vindex INFODIR
42 @vindex DOCDIR
43 @file{config} file contains some environment variables that are
44 respected during installation:
45 @env{$PREFIX},
46 @env{$DESTDIR},
47 @env{$GO},
48 @env{$MAKEINFO},
49 @env{$PLANTUML},
50 @env{$PREFIX},
51 @env{$SENDMAIL},
52 @env{$CFGPATH},
53 @env{$SPOOLPATH},
54 @env{$LOGPATH},
55 @env{$BINDIR},
56 @env{$INFODIR},
57 @env{$DOCDIR}.
58
59 There is @command{install} script for binaries and info-documentation
60 installation:
61
62 @example
63 # PREFIX=/usr/local ./install
64 @end example
65
66 @vindex nofsnotify
67 @cindex kqueue
68 @cindex epoll
69 @vindex GO_CFLAGS
70 NNCP depends on @code{github.com/fsnotify/fsnotify} library, that solely
71 relies on OS-specific mechanisms. There is possibility that you have
72 either broken or unsupported ones. You can still build NNCP with
73 @code{-tags nofsnotify} build option, to skip @code{fsnotify} library
74 usage at all:
75
76 @example
77 $ GO_CFLAGS="-tags nofsnotify" bin/build
78 @end example
79
80 @vindex noyggdrasil
81 You can also disable Yggdrasil support with @code{-tags noyggdrasil}.