summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJeongho Hwang <jbera.hwang@samsung.com>2012-09-19 13:40:18 +0900
committerJeongho Hwang <jbera.hwang@samsung.com>2012-09-19 13:40:18 +0900
commitd208c9cb79b228fd48d9f7adef432486389e1abe (patch)
tree1f8533ae700c789c992dcebb88c558a963e59efc /doc
parent8701a5293e4e52a995b1ee0b683f234848d8d745 (diff)
downloadicecream-d208c9cb79b228fd48d9f7adef432486389e1abe.tar.gz
icecream-d208c9cb79b228fd48d9f7adef432486389e1abe.tar.bz2
icecream-d208c9cb79b228fd48d9f7adef432486389e1abe.zip
Signed-off-by: Jeongho Hwang <jbera.hwang@samsung.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am9
-rw-r--r--doc/Makefile.in363
-rw-r--r--doc/man-icecc.1.docbook59
-rw-r--r--doc/man-iceccd.1.docbook216
-rw-r--r--doc/man-icecream.7.docbook312
-rw-r--r--doc/man-scheduler.1.docbook161
6 files changed, 1120 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..bc429d3
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,9 @@
+KDE_LANG = en
+KDE_MANS = AUTO
+
+# This is needed for building with a different --prefix from the rest of KDE
+# choose one for your distribution
+#KDE_XSL_MAN_STYLESHEET = /usr/share/apps/ksgmltools2/customization/kde-man.xsl
+KDE_XSL_MAN_STYLESHEET = /opt/kde3/share/apps/ksgmltools2/customization/kde-man.xsl
+
+EXTRA_DIST = man-icecc.1.docbook man-iceccd.1.docbook man-icecream.7.docbook man-scheduler.1.docbook
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..52068b0
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,363 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBRSYNC = @LIBRSYNC@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_KINFO = @LIB_KINFO@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+KDE_LANG = en
+KDE_MANS = AUTO
+
+# This is needed for building with a different --prefix from the rest of KDE
+# choose one for your distribution
+#KDE_XSL_MAN_STYLESHEET = /usr/share/apps/ksgmltools2/customization/kde-man.xsl
+KDE_XSL_MAN_STYLESHEET = /opt/kde3/share/apps/ksgmltools2/customization/kde-man.xsl
+EXTRA_DIST = man-icecc.1.docbook man-iceccd.1.docbook man-icecream.7.docbook man-scheduler.1.docbook
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/man-icecc.1.docbook b/doc/man-icecc.1.docbook
new file mode 100644
index 0000000..1e4b3ff
--- /dev/null
+++ b/doc/man-icecc.1.docbook
@@ -0,0 +1,59 @@
+<?xml version="1.0" ?>
+<!-- vim:set ts=4 noet syntax=xml: -->
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY % English "INCLUDE">
+]>
+
+<refentry lang="&language;">
+<refentryinfo>
+ <title>Icecream User's Manual</title>
+ <author>
+ <personname>
+ <firstname>Cornelius</firstname>
+ <surname>Schumacher</surname>
+ </personname>
+ </author>
+ <date>April 21th, 2005</date>
+ <productname>Icecream</productname>
+</refentryinfo>
+
+<refmeta>
+ <refentrytitle>Icecream compiler</refentrytitle>
+ <manvolnum>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+ <refname>icecc</refname>
+ <refpurpose>Icecream compiler stub</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<cmdsynopsis>
+<command>icecc</command>
+<arg choice="opt">
+ <option>options</option>
+</arg>
+<arg>-o OBJECT</arg>
+<arg>-c SOURCE</arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title>Description</title>
+<para>icecc is the Icecream compiler stub. It gets called in place of the actual
+compiler and transparently routes the compile requests to the Icecream
+network. You shouldn't call icecc directly, but place the specific compiler
+stubs in your path:
+<command>export PATH=/opt/icecream/bin:$PATH</command>.</para>
+</refsect1>
+
+<refsect1>
+<title>See Also</title>
+<para>icecream, scheduler, iceccd, icemon</para>
+</refsect1>
+
+<refsect1>
+<title>Author</title>
+<para>Cornelius Schumacher</para>
+</refsect1>
+</refentry>
diff --git a/doc/man-iceccd.1.docbook b/doc/man-iceccd.1.docbook
new file mode 100644
index 0000000..7ce2bdc
--- /dev/null
+++ b/doc/man-iceccd.1.docbook
@@ -0,0 +1,216 @@
+<?xml version="1.0" ?>
+<!-- vim:set ts=4 noet syntax=xml: -->
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY % English "INCLUDE">
+]>
+
+<refentry lang="&language;">
+<refentryinfo>
+ <title>Icecream User's Manual</title>
+ <author>
+ <personname>
+ <firstname>Cornelius</firstname>
+ <surname>Schumacher</surname>
+ </personname>
+ </author>
+ <date>April 21th, 2005</date>
+ <productname>Icecream</productname>
+</refentryinfo>
+
+<refmeta>
+ <refentrytitle>Icecream Daemon</refentrytitle>
+ <manvolnum>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+ <refname>iceccd</refname>
+ <refpurpose>Icecream daemon</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<cmdsynopsis>
+<command>iceccd</command>
+<arg choice="opt">
+ <option>-n <replaceable>netname</replaceable></option>
+</arg>
+<arg choice="opt">
+ <option>-m <replaceable>max_processes</replaceable></option>
+</arg>
+<arg choice="opt">
+ <option>--no-remote</option>
+</arg>
+<arg choice="opt">
+ <option>-w</option>
+</arg>
+<group>
+ <arg choice="opt">
+ <option>-d</option>
+ </arg>
+ <arg choice="opt">
+ <option>--daemonize</option>
+ </arg>
+</group>
+<arg choice="opt">
+ <option>-l <replaceable>logfile</replaceable></option>
+</arg>
+<arg choice="opt">
+ <option>-s <replaceable>schedulerhost</replaceable></option>
+</arg>
+<arg choice="opt">
+ -v<arg choice="opt">v<arg choice="opt">v</arg></arg>
+</arg>
+<group>
+ <arg choice="opt">
+ <option>-r</option>
+ </arg>
+ <arg choice="opt">
+ <option>--run-as-user</option>
+ </arg>
+</group>
+<arg choice="opt">
+ <option>-b <replaceable>env-basedir</replaceable></option>
+</arg>
+<group>
+ <arg choice="opt">
+ <option>-u</option>
+ </arg>
+ <arg choice="opt">
+ <option>--nobody-uid</option>
+ </arg>
+ <replaceable> nobodyuid</replaceable>
+</group>
+<arg choice="opt">
+ <option>--cache-limit <replaceable>MB</replaceable></option>
+</arg>
+<arg choice="opt">
+ <option>-N <replaceable>hostname</replaceable></option>
+</arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title>Description</title>
+<para>The Icecream daemon has to run on all nodes being part of the Icecream
+compile cluster. It receives compile jobs and executes them in a chroot
+environment. The compile clients send their compile environment the first time
+they send a job to a particular daemon, so that the environment of the daemon
+doesn't have to match the one of the client.</para>
+
+<para>The daemon also has to run on clients sending compile jobs to the Icecream
+network. If a node should be able to send compile jobs, but never receive any,
+start the daemon with the option <literal>-m 0</literal>.</para>
+
+<para>All Icecream daemons need to have contact to the Icecream scheduler which
+controls the distribution of data between compile nodes. Normally the daemon
+will automatically find the right scheduler. If this is not the case you can
+explicitly specify the name of the Icecream network and the host running the
+scheduler.</para>
+
+</refsect1>
+
+<refsect1>
+<title>Options</title>
+
+<variablelist>
+
+<varlistentry>
+<term><option>-n</option> <parameter>netname</parameter></term>
+<listitem><para>The name of the icecream network the daemon should connect to.
+There has to be a scheduler running for the network under the same network
+name.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-m</option> <parameter>max_processes</parameter></term>
+<listitem><para>Maximum number of compile jobs started in parallel on machine
+running the daemon.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>--no-remote</option></term>
+<listitem><para>Prevents jobs from other nodes being scheduled on this one.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-w</option></term>
+<listitem><para></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>-d</option>, <option>--daemonize</option>
+</term>
+<listitem><para>Detach daemon from shell.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-l</option> <parameter>logfile</parameter></term>
+<listitem><para>Name of file where log output is written to.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-s</option> <parameter>scheduler_host</parameter></term>
+<listitem><para>Name of host running the scheduler for the network the daemon
+should connect to. This option might help if the scheduler can't broadcast its
+presence to the clients due to firewall settings or similar
+reasons.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-v</option>, <option>-vv</option>, <option>-vvv</option></term>
+<listitem><para>Control verbosity of daemon. The more v the more
+verbose.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>-r</option>, <option>--run-as-user</option>
+</term>
+<listitem><para>Force running the daemon with user rights. Usually you will need
+to run the daemon with root rights.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-b</option> <parameter>env_basedir</parameter></term>
+<listitem><para>Base directory for storing compile environments sent to the
+daemon by the compile clients.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>-u</option>, <option>--nobody-uid</option>
+<parameter>nobodyuid</parameter>
+</term>
+<listitem><para>Id of user nobody. This user id is used when the daemon is
+dropping privileges.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>--cache-limit</option>
+<parameter>MB</parameter>
+</term>
+<listitem><para>Maximum size in Mega Bytes of cache used to store compile
+environments of compile clients.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-N</option> <parameter>hostname</parameter></term>
+<listitem><para>The name of the icecream host on the network.</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</refsect1>
+
+<refsect1>
+<title>See Also</title>
+<para>icecream, scheduler, iceccd, icemon</para>
+</refsect1>
+
+<refsect1>
+<title>Author</title>
+<para>Cornelius Schumacher</para>
+</refsect1>
+
+</refentry>
diff --git a/doc/man-icecream.7.docbook b/doc/man-icecream.7.docbook
new file mode 100644
index 0000000..759961d
--- /dev/null
+++ b/doc/man-icecream.7.docbook
@@ -0,0 +1,312 @@
+<?xml version="1.0" ?>
+<!-- vim:set ts=4 noet syntax=xml: -->
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY % English "INCLUDE">
+]>
+
+<refentry lang="&language;">
+<refentryinfo>
+ <title>Icecream User's Manual</title>
+ <author>
+ <personname>
+ <firstname>Cornelius</firstname>
+ <surname>Schumacher</surname>
+ </personname>
+ </author>
+ <date>April 21th, 2005</date>
+ <productname>Icecream</productname>
+</refentryinfo>
+
+<refmeta>
+ <refentrytitle>Icecream</refentrytitle>
+ <manvolnum>7</manvolnum>
+</refmeta>
+
+<refnamediv>
+ <refname>Icecream</refname>
+ <refpurpose>A distributed compile system</refpurpose>
+</refnamediv>
+
+<refsect1>
+<title>Description</title>
+
+<para>Icecream is a distributed compile system for C and C++.</para>
+
+<para>Icecream is created by SUSE and is based on ideas and code by distcc. Like
+distcc it takes compile jobs from your (KDE) build and distributes it to remote
+machines allowing a parallel build on several machines you've got. But unlike
+distcc Icecream uses a central server that schedules the compile jobs to the
+fastest free server and is as this dynamic. This advantage pays off mostly for
+shared computers, if you're the only user on x machines, you have full control
+over them anyway.</para>
+
+</refsect1>
+
+<refsect1>
+<title>How to use icecream</title>
+
+<para>You need:</para>
+<itemizedlist>
+<listitem>
+ <para>One machine that runs the scheduler ("./scheduler -d")</para>
+</listitem>
+<listitem>
+ <para>Many machines that run the daemon ("./iceccd -d")</para>
+</listitem>
+</itemizedlist>
+
+<para>If you want to compile using icecream, make sure $prefix/bin is the first
+first entry in your path, e.g. type
+<command>export PATH=/opt/icecream/bin:$PATH</command>
+(Hint: put this in ~/.bashrc or /etc/profile to not have to type it in
+everytime)
+</para>
+
+<para>Then you just compile with <command>make -j &lt;num&gt;</command>, where
+&lt;num&gt; is the amount of jobs you want to compile in parallel. Don't
+exaggerate. Numbers greater than 15 normally cause trouble.</para>
+
+<para>WARNING: Never use icecream in untrusted environments. Run the deamons and
+the scheduler as unpriviliged user in such networks if you have to! But you will
+have to rely on homogeneous networks then (see below).</para>
+
+<para>If you want funny stats, you might want to run "icemon".</para>
+</refsect1>
+
+<refsect1>
+<title>Using icecream in heterogeneous environments</title>
+
+<para>If you are running icecream daemons (note: they _all_ must be running as
+root. In the future icecream might gain the ability to know when machines can't
+accept a different env, but for now it is all or nothing ) in the same icecream
+network but on machines with incompatible compiler versions you have to tell
+icecream which environment you are using. Use <command>icecc --build-native</command> to
+create an archive file containing all the files necessary to setup the compiler
+environment. The file will have a random unique name like
+"ddaea39ca1a7c88522b185eca04da2d8.tar.bz2" per default. Rename it to something
+more expressive for your convenience, e.g. "i386-3.3.1.tar.bz2". Set
+<command>ICECC_VERSION=&lt;filename_of_archive_containing_your_environment&gt;</command>
+in the shell environment where you start the compile jobs and the file will be
+transfered to the daemons where your compile jobs run and installed to a chroot
+environment for executing the compile jobs in the environment fitting to the
+environment of the client. This requires that the icecream deamon runs as root.
+</para>
+
+<para>If you do not set ICECC_VERSION, the client will use a tar ball provided
+by the daemon running on the same machine. So you can always be sure you're not
+tricked by incompatible gcc versions - and you can share your computer with
+users of other distributions (or different versions of your beloved SUSE
+Linux :)</para>
+</refsect1>
+
+<refsect1>
+<title>Cross-Compiling using icecream</title>
+
+<para>SUSE got quite some good machines not having a processor from Intel or
+AMD, so icecream is pretty good in using cross-compiler environments similiar
+to the above way of spreading compilers. There the ICECC_VERSION varaible looks
+like &lt;native_filename&gt;(,&lt;platform&gt;:&lt;cross_compiler_filename&gt;)*,
+for example like this:
+<literal>/work/9.1-i386.tar.bz2,ia64:/work/9.1-cross-ia64.tar.bz2</literal>
+</para>
+
+<para>How to package such a cross compiler is pretty straightforward if you look
+what's inside the tarballs generated by <command>icecc --build-native</command>.</para>
+
+</refsect1>
+
+<refsect1>
+<title>Cross-Compiling for embedded targets using icecream</title>
+
+<para>When building for embedded targets like ARM often you'll have a toolchain
+that runs on your host and produces code for the target. In these situations you
+can exploit the power of icecream as well.</para>
+
+<para>Create symlinks from where icecc is to the name of your cross compilers
+(e.g. arm-linux-g++ and arm-linux-gcc), make sure that these symlinks are in the
+path and before the path of your toolchain, with <varname>$ICECC_CC</varname>
+and <varname>$ICECC_CXX</varname> you need to tell icecream which compilers to
+use for preprocessing and local compiling. e.g. set it to
+<command>ICECC_CC=arm-linux-gcc</command> and
+<command>ICECC_CXX=arm-linux-g++</command>.</para>
+
+<para>As the next step you need to create a .tar.bz2 of your cross compiler,
+check the result of build-native to see what needs to be present.</para>
+
+<para>Finally one needs to set <varname>ICECC_VERSION</varname> and point it to
+the tar.bz2 you've created. When you start compiling your toolchain will be
+used.</para>
+
+<para>NOTE: with <varname>ICECC_VERSION</varname> you point out on which
+platforms your toolchain runs, you do not indicate for which target code will be
+generated.</para>
+
+</refsect1>
+
+<refsect1>
+<title>How to combine icecream with ccache</title>
+
+<para>The easiest way to use ccache with icecream is putting the symlink
+masquerades into /opt/icream/bin and putting small wrapper scripts in
+/opt/ccache/bin
+
+<screen>
+ cat /opt/ccache/bin/g++:
+
+ #! /bin/sh
+
+ export CCACHE_PATH=/opt/icecream/bin
+ export PATH=/opt/icecream/bin:/usr/bin:$PATH
+ ccache g++ "$@"
+</screen>
+</para>
+
+<para>Then you can replace /opt/icecream/bin with /opt/ccache/bin in your
+<varname>$PATH</varname> and all icecream calls will go through ccache (and Qt
+will compile in 62s :)</para>
+
+<para>Note however that ccache isn't really worth the trouble if you're not
+recompiling your KDE three times a day from scratch (it adds quite some overhead
+in comparing the preprocessor output and uses quite some disc space and I found
+a cache hit of 18% a bit too few, so I disabled it again).</para>
+
+</refsect1>
+
+<refsect1>
+<title>Debug output</title>
+
+<para>You can use the environment variable <varname>ICECC_DEBUG</varname> to
+control if icecream gives debug output or not. Set it to
+<literal>debug</literal> to get debug output. The other possible values are
+<literal>error</literal>, <literal>warning</literal> and <literal>info</literal>
+(the -v option for daemon and scheduler raise the level per -v on the command
+line - so use -vvv for full debug).</para>
+
+</refsect1>
+
+<refsect1>
+<title>Some Numbers</title>
+
+<para>
+Numbers of my test case (some STL C++ genetic algorithm)
+<itemizedlist>
+ <listitem>
+ <para>g++ on my machine: 1.6s</para>
+ </listitem>
+ <listitem>
+ <para>g++ on fast machine: 1.1s</para>
+ </listitem>
+ <listitem>
+ <para>icecream using my machine as remote machine: 1.9s</para>
+ </listitem>
+ <listitem>
+ <para>icecream using fast machine: 1.8s</para>
+ </listitem>
+</itemizedlist>
+</para>
+
+<para>The icecream overhead is quite huge as you might notice, but the compiler
+can't interleave preprocessing with compilation and the file needs to be
+read/written once more and in between the file is transfered.</para>
+
+<para>But even if the other computer is faster, using g++ on my local machine
+is faster. If you're (for whatever reason) alone in your network at some point,
+you loose all advantages of distributed compiling and only add the overhead. So
+icecream got a special case for local compilations (the same special meaning
+that localhost got within $DISTCC_HOSTS). This makes compiling on my machine
+using icecream down to 1.7s (the overhead is actually less than 0.1s in
+average).</para>
+
+<para>As the scheduler is aware of that meaning, it will prefer your own
+computer if it's free and got not less than 70% of the fastest available
+computer.</para>
+
+<para>Keep in mind, that this affects only the first compile job, the second one
+is distributed anyway. So if I had to compile two of my files, I would get
+<itemizedlist>
+ <listitem>
+ <para>g++ -j1 on my machine: 3.2s</para>
+ </listitem>
+ <listitem>
+ <para>g++ -j1 on the fast machine: 2.2s</para>
+ </listitem>
+ <listitem>
+ <para>using icecream -j2 on my machine: max(1.7,1.8)=1.8s</para>
+ </listitem>
+ <listitem>
+ <para>(using icecream -j2 on the other machine: max(1.1,1.8)=1.8s)</para>
+ </listitem>
+</itemizedlist>
+</para>
+
+<para>The math is a bit tricky and depends a lot on the current state of the
+compilation network, but make sure you're not blindly assuming make -j2 halfs
+your compilation time.</para>
+
+</refsect1>
+
+<refsect1>
+<title>What is the best environment for icecream</title>
+
+<para>In most requirements icecream isn't special, e.g. it doesn't matter what
+distributed compile system you use, you won't have fun if your nodes are
+connected through than less or equal to 10MBit. Note that icecream compresses
+input and output files (using lzo), so you can calc with ~1MBit per compile job
+- i.e more than make -j10 won't be possible without delays.</para>
+
+<para>Remember that more machines are only good if you can use massive
+parallelization, but you will for sure get the best result if your submitting
+machine (the one you called g++ on) will be fast enough to feed the others.
+Especially if your project consists of many easy to compile files, the
+preprocessing and file IO will be job enough to need a quick machine.</para>
+
+<para>The scheduler will try to give you the fastest machines available, so even
+if you add old machines, they will be used only in exceptional situations, but
+still you can have bad luck - the scheduler doesn't know how long a job will
+take before it started. So if you have 3 machines and two quick to compile and
+one long to compile source file, you're not safe from a choice where everyone
+has to wait on the slow machine. Keep that in mind.</para>
+
+</refsect1>
+
+<refsect1>
+<title>Network setup for Icecream (firewalls)</title>
+
+<para>A short overview of the ports icecream requires:
+ <itemizedlist>
+ <listitem>
+ <para> TCP/10245 on the daemon computers (required) </para>
+ </listitem>
+ <listitem>
+ <para> TCP/8765 for the the scheduler computer (required) </para>
+ </listitem>
+ <listitem>
+ <para> TCP/8766 for the telnet interface to the scheduler (optional) </para>
+ </listitem>
+ <listitem>
+ <para> UDP/8765 for broadcast to find the scheduler (optional) </para>
+ </listitem>
+</itemizedlist>
+</para>
+
+<para>Note that the SuSEfirewall2 on SUSE &lt; 9.1 got some problems
+configuring broadcast. So you might need the -s option for the daemon
+in any case there. If the monitor can't find the scheduler, use
+USE_SCHEDULER=&lt;host&gt; icemon (or send me a patch :)</para>
+
+</refsect1>
+
+
+<refsect1>
+<title>See Also</title>
+<para>icecream, scheduler, iceccd, icemon</para>
+</refsect1>
+
+<refsect1>
+<title>Icecream Authors</title>
+<para>Stephan Kulow &lt;coolo@suse.de&gt;</para>
+<para>Michael Matz &lt;matz@suse.de&gt;</para>
+<para>Cornelius Schumacher &lt;cschum@suse.de&gt;</para>
+<para>...and various other contributors.</para>
+</refsect1>
+</refentry>
diff --git a/doc/man-scheduler.1.docbook b/doc/man-scheduler.1.docbook
new file mode 100644
index 0000000..6109a18
--- /dev/null
+++ b/doc/man-scheduler.1.docbook
@@ -0,0 +1,161 @@
+<?xml version="1.0" ?>
+<!-- vim:set ts=4 noet syntax=xml: -->
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY % English "INCLUDE">
+]>
+
+<refentry lang="&language;">
+<refentryinfo>
+ <title>Icecream User's Manual</title>
+ <author>
+ <personname>
+ <firstname>Cornelius</firstname>
+ <surname>Schumacher</surname>
+ </personname>
+ </author>
+ <date>April 21th, 2005</date>
+ <productname>Icecream</productname>
+</refentryinfo>
+
+<refmeta>
+ <refentrytitle>Icecream</refentrytitle>
+ <manvolnum>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+ <refname>scheduler</refname>
+ <refpurpose>Icecream scheduler</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<cmdsynopsis>
+<command>scheduler</command>
+<group>
+ <arg choice="opt">
+ <option>-n</option>
+ </arg>
+ <arg choice="opt">
+ <option>--netname</option>
+ </arg>
+ <replaceable> name</replaceable>
+</group>
+<group>
+ <arg choice="opt">
+ <option>-p</option>
+ </arg>
+ <arg choice="opt">
+ <option>--port</option>
+ </arg>
+ <replaceable> port</replaceable>
+</group>
+<group>
+ <arg choice="opt">
+ <option>-h</option>
+ </arg>
+ <arg choice="opt">
+ <option>--help</option>
+ </arg>
+</group>
+<group>
+ <arg choice="opt">
+ <option>-l</option>
+ </arg>
+ <arg choice="opt">
+ <option>--log-file</option>
+ </arg>
+ <replaceable> file</replaceable>
+</group>
+<group>
+ <arg choice="opt">
+ <option>-d</option>
+ </arg>
+ <arg choice="opt">
+ <option>--daemonize</option>
+ </arg>
+</group>
+<group>
+ <arg choice="opt">
+ <option>-r</option>
+ </arg>
+ <arg choice="opt">
+ <option>--allow-run-as-user</option>
+ </arg>
+</group>
+<arg choice="opt">
+ -v<arg choice="opt">v<arg choice="opt">v</arg></arg>
+</arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title>Description</title>
+<para>The Icecream scheduler is the central instance of an Icecream compile
+network. It distributes the compile jobs and provides the data for the
+monitors.</para>
+</refsect1>
+
+<refsect1>
+<title>Options</title>
+
+<variablelist>
+
+<varlistentry>
+<term><option>-n</option>, <option>--netname</option>
+<parameter>netname</parameter></term>
+<listitem><para>The name of the Icecream network the scheduler
+controls.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-p</option>, <option>--port</option>
+<parameter>port</parameter></term>
+<listitem><para>IP port the scheduler uses.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-h</option>, <option>--help</option></term>
+<listitem><para>Print help message.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-l</option>, <option>--log-file</option>
+<parameter>logfile</parameter></term>
+<listitem><para>Name of file where log output is written to.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>-d</option>, <option>--daemonize</option>
+</term>
+<listitem><para>Detach daemon from shell.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-v</option>, <option>-vv</option>, <option>-vvv</option></term>
+<listitem><para>Control verbosity of daemon. The more v the more
+verbose.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<option>-r</option>, <option>--allow-run-as-user</option>
+</term>
+<listitem><para>Force running the scheduler with user rights. Usually you will
+need to run the scheduler with root rights.</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</refsect1>
+
+
+<refsect1>
+<title>See Also</title>
+<para>icecream, scheduler, iceccd, icemon</para>
+</refsect1>
+
+<refsect1>
+<title>Author</title>
+<para>Cornelius Schumacher</para>
+</refsect1>
+</refentry>