@node Build-instructions @cindex building @section Build instructions Make sure that Go is installed. For example to install it from packages: @table @asis @item FreeBSD @verb{|pkg install go|} @item Debian, Ubuntu @verb{|apt install golang|} @end table @example $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz.@{asc,sig@} [verify signature] $ xz -d < nncp-@value{VERSION}.tar.xz | tar xf - $ cd nncp-@value{VERSION} [optionally edit config] $ bin/build @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{info doc/nncp.info -n nncp-bundle}. @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} script for binaries and info-documentation installation: @example # PREFIX=/usr/local ./install @end example @vindex nofsnotify @cindex kqueue @cindex epoll @vindex GO_CFLAGS NNCP depends on @code{github.com/fsnotify/fsnotify} library, that 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: @example $ GO_CFLAGS="-tags nofsnotify" bin/build @end example @vindex noyggdrasil You can also disable Yggdrasil support with @code{-tags noyggdrasil}.