diff --git a/Makefile.am b/Makefile.am
index 70aa1ba96..b7bb72819 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,3 @@
-SUBDIRS = externals src scripts corepkgs
+SUBDIRS = externals src scripts corepkgs doc
EXTRA_DIST = boost/*.hpp boost/format/*.hpp substitute.mk
\ No newline at end of file
diff --git a/configure.ac b/configure.ac
index 4dea89c95..3dd3df9c6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,5 +18,6 @@ AC_CHECK_LIB(pthread, pthread_mutex_init)
AM_CONFIG_HEADER([config.h])
AC_CONFIG_FILES([Makefile externals/Makefile src/Makefile scripts/Makefile
corepkgs/Makefile corepkgs/fetchurl/Makefile
- corepkgs/nar/Makefile])
+ corepkgs/nar/Makefile
+ doc/Makefile doc/manual/Makefile])
AC_OUTPUT
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 000000000..e76efafdb
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = manual
diff --git a/doc/manual/Makefile b/doc/manual/Makefile
deleted file mode 100644
index 52f17c65a..000000000
--- a/doc/manual/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-DOCBOOK_DTD = /nix/current/xml/dtd/docbook
-DOCBOOK_XSL = /nix/current/xml/xsl/docbook
-
-all: check html
-
-check:
- SP_CHARSET_FIXED=YES SP_ENCODING=XML \
- nsgmls -wxml -c /usr/share/doc/packages/sp/html-xml/xml.soc -c $(DOCBOOK_DTD)/docbook.cat -ges book.xml
-
-html:
- xsltproc --output book.html $(DOCBOOK_XSL)/html/docbook.xsl book.xml
diff --git a/doc/manual/Makefile.am b/doc/manual/Makefile.am
new file mode 100644
index 000000000..a4e3f24ce
--- /dev/null
+++ b/doc/manual/Makefile.am
@@ -0,0 +1,22 @@
+DOCBOOK_DTD = /nix/current/xml/dtd/docbook
+DOCBOOK_XSL = /nix/current/xml/xsl/docbook
+XML = /usr/share/doc/packages/sp/html-xml/xml.soc
+
+%.is-valid: %.xml
+ SP_CHARSET_FIXED=YES SP_ENCODING=XML \
+ nsgmls -wxml -c $(XML) -c $(DOCBOOK_DTD)/docbook.cat -ges $<
+ touch $@
+
+man1_MANS = nix.1
+
+man nix.1: book.is-valid
+ xsltproc $(DOCBOOK_XSL)/manpages/docbook.xsl book.xml
+
+%.html: %.xml %.is-valid
+ xsltproc --output book.html $(DOCBOOK_XSL)/html/docbook.xsl book.xml
+
+all-local: book.html
+
+install-data-local: book.html
+ $(INSTALL) -d $(datadir)/nix/manual
+ $(INSTALL_DATA) book.html $(datadir)/nix/manual
diff --git a/doc/manual/book.xml b/doc/manual/book.xml
index 3f6c4f549..f08ffc3b0 100644
--- a/doc/manual/book.xml
+++ b/doc/manual/book.xml
@@ -216,6 +216,71 @@ $ make install
+
+
+
+ Command Reference
+
+
+
+ nix
+ manipulate or query the Nix store
+
+
+
+
+ nix
+ --verbose
+
+
+
+
+ Description
+
+
+ The command nix provides access to the Nix store.
+ This is the (set of) path(s) where Nix expressions and the file
+ system objects built by them are stored.
+
+
+
+
+ Common Options
+
+
+ nix has many subcommands. These are listed below.
+ In this section the common options are listed. These options are
+ allowed for every subcommand (although they may not always have an
+ effect).
+
+
+
+
+ Subcommand --install
+
+
+ Synopsis
+
+ nix --install
+ id
+
+
+
+
+ Description
+
+
+ nix --install realises the given Nix expressions
+ in the file system.
+
+
+
+
+
+
+
+
+
@@ -267,7 +332,7 @@ $ rm `db_archive -a -h prefix/var/nix/db`
- Known problems
+ Bugs