@node Build-instructions
+@cindex building
@section Build instructions
Make sure that Go is installed. For example to install it from packages:
$ redo all
@end example
+@pindex info
After that you should get various @command{bin/nncp-*} binaries and
@command{bin/hjson-cli} command (only for your convenience, not
necessary installation). For example, documentation for
-@command{nncp-bundle} command can be get with
+@command{@ref{nncp-bundle}} command can be get with
@command{info doc/nncp.info -n nncp-bundle}.
+@pindex redo
+@pindex apenwarr/redo
+@pindex apenwarr/do
+@pindex redo-c
+@pindex baredo
+@pindex goredo
It uses @url{http://cr.yp.to/redo.html, redo} build system for that
examples. You can use one of its various implementations, or at least
minimalistic POSIX shell @command{contrib/do} (just replace
in tarball. Following ones are tested to work with:
@url{http://www.goredo.cypherpunks.ru/, goredo} (NNCP's author creation),
@url{https://redo.readthedocs.io/, apenwarr/redo} (@code{contrib/do} is
-from that project), @url{https://github.com/leahneukirchen/redo-c, redo-c}.
+from that project), @url{https://github.com/leahneukirchen/redo-c, redo-c},
+@url{https://github.com/gotroyb127/baredo, baredo}.
-There is @command{install} target respecting @env{$DESTDIR}. It will
-install binaries and info-documentation:
+@vindex PREFIX
+@vindex DESTDIR
+@vindex GO
+@vindex MAKEINFO
+@vindex PLANTUML
+@vindex PREFIX
+@vindex SENDMAIL
+@vindex CFGPATH
+@vindex SPOOLPATH
+@vindex LOGPATH
+@vindex BINDIR
+@vindex INFODIR
+@vindex DOCDIR
+@file{config} file contains some environment variables that are
+respected during installation:
+@env{$PREFIX},
+@env{$DESTDIR},
+@env{$GO},
+@env{$MAKEINFO},
+@env{$PLANTUML},
+@env{$PREFIX},
+@env{$SENDMAIL},
+@env{$CFGPATH},
+@env{$SPOOLPATH},
+@env{$LOGPATH},
+@env{$BINDIR},
+@env{$INFODIR},
+@env{$DOCDIR}.
+
+There is @command{install} target for binaries and info-documentation
+installation:
@example
# PREFIX=/usr/local redo install
@end example
+@vindex nofsnotify
+@cindex kqueue
+@cindex epoll
+@vindex GO_CFLAGS
NNCP depends on @code{github.com/fsnotify/fsnotify} library, that is
solely relies on OS-specific mechanisms. There is possibility that you
have either broken or unsupported ones. You can still build NNCP with
@code{-tags nofsnotify} build option, to skip @code{fsnotify} library
-usage at all.
+usage at all:
+
+@example
+$ GO_CFLAGS="-tags nofsnotify" redo ...
+@end example
+
+@vindex noyggdrasil
+You can also disable Yggdrasil support with @code{-tags noyggdrasil}.