diff --git a/Makefile b/Makefile
index c55ceec..9f31ff2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
PACKAGE = Browser
VERSION = 0.4.6
-SUBDIRS = data include po src tools
+SUBDIRS = data doc include po src tools
RM ?= rm -f
LN ?= ln -f
TAR ?= tar -czvf
@@ -32,6 +32,10 @@ dist:
$(PACKAGE)-$(VERSION)/data/16x16/browser-view-icons.png \
$(PACKAGE)-$(VERSION)/data/16x16/browser-view-list.png \
$(PACKAGE)-$(VERSION)/data/16x16/project.conf \
+ $(PACKAGE)-$(VERSION)/doc/Makefile \
+ $(PACKAGE)-$(VERSION)/doc/docbook.sh \
+ $(PACKAGE)-$(VERSION)/doc/browser.xml \
+ $(PACKAGE)-$(VERSION)/doc/project.conf \
$(PACKAGE)-$(VERSION)/include/Browser.h \
$(PACKAGE)-$(VERSION)/include/Makefile \
$(PACKAGE)-$(VERSION)/include/project.conf \
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..5909ea3
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,27 @@
+TARGETS = browser.1
+PREFIX = /usr/local
+DESTDIR =
+RM ?= rm -f
+LN ?= ln -f
+MKDIR ?= mkdir -p
+INSTALL ?= install
+
+
+all: $(TARGETS)
+
+browser.1: browser.xml
+ ./docbook.sh -P "$(PREFIX)" -- "browser.1"
+
+clean:
+ $(RM) -- $(browser.1_OBJS)
+
+distclean: clean
+ $(RM) -- $(TARGETS)
+
+install: $(TARGETS)
+ ./docbook.sh -P "$(DESTDIR)$(PREFIX)" -i -- "browser.1"
+
+uninstall:
+ ./docbook.sh -P "$(DESTDIR)$(PREFIX)" -u -- "browser.1"
+
+.PHONY: all clean distclean install uninstall
diff --git a/doc/browser.xml b/doc/browser.xml
new file mode 100644
index 0000000..143ca7c
--- /dev/null
+++ b/doc/browser.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+ &title;
+ &package;
+
+
+ &firstname;
+ &surname;
+ Code and documentation.
+
+ &email;
+
+
+
+
+ 2012
+ &firstname; &surname; <&email;>
+
+
+ This manual page was written for the DeforaOS project (and may be
+ used by others).
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU General Public License,
+ Version 3 as published by the Free Software Foundation.
+
+
+
+ &name;
+ §ion;
+
+
+ &name;
+ &purpose;
+
+
+
+ &name;
+
+
+
+ Description
+ &name; is a program that lists and manages
+ files.
+
+
+ Options
+ A list of directories to browse can be provided directly on the command
+ line.
+
+
+ Bugs
+ Issues can be listed and reported at .
+
+
+ See also
+
+ desktop
+ 1
+
+
+
+
diff --git a/doc/docbook.sh b/doc/docbook.sh
new file mode 100755
index 0000000..78c891b
--- /dev/null
+++ b/doc/docbook.sh
@@ -0,0 +1,129 @@
+#!/bin/sh
+#$Id$
+#Copyright (c) 2012 Pierre Pronchery
+#
+#Redistribution and use in source and binary forms, with or without
+#modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+#AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+#OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+#variables
+PREFIX="/usr/local"
+. "../config.sh"
+DEBUG="_debug"
+INSTALL="install -m 0644"
+MKDIR="mkdir -p"
+RM="rm -f"
+XSLTPROC="xsltproc --nonet --xinclude"
+
+
+#functions
+#debug
+_debug()
+{
+ echo $@
+ $@
+}
+
+
+#usage
+_usage()
+{
+ echo "Usage: docbook.sh [-i|-u][-P prefix] target" 1>&2
+ return 1
+}
+
+
+#main
+install=0
+uninstall=0
+while getopts "iuP:" "name"; do
+ case "$name" in
+ i)
+ uninstall=0
+ install=1
+ ;;
+ u)
+ install=0
+ uninstall=1
+ ;;
+ P)
+ PREFIX="$2"
+ ;;
+ ?)
+ _usage
+ exit $?
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+if [ $# -eq 0 ]; then
+ _usage
+ exit $?
+fi
+
+[ -z "$DATADIR" ] && DATADIR="$PREFIX/share"
+[ -z "$MANDIR" ] && MANDIR="$DATADIR/man"
+
+while [ $# -gt 0 ]; do
+ target="$1"
+ source="${target%.*}.xml"
+ shift
+
+ #determine the type
+ ext="${target##*.}"
+ ext="${ext##.}"
+ case "$ext" in
+ html)
+ XSL="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"
+ [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
+ instdir="$DATADIR/doc/$ext/$PACKAGE"
+ ;;
+ 1|2|3|4|5|6|7|8|9)
+ XSL="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
+ instdir="$MANDIR/man$ext"
+ ;;
+ *)
+ echo "$0: $target: Unknown type" 1>&2
+ exit 2
+ ;;
+ esac
+
+ #uninstall
+ if [ "$uninstall" -eq 1 ]; then
+ $DEBUG $RM -- "$instdir/$target" || exit 2
+ continue
+ fi
+
+ #create
+ $DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
+ #XXX ignore errors
+ if [ $? -ne 0 ]; then
+ echo "$0: $target: Could not create page" 1>&2
+ $RM -- "$target"
+ break
+ fi
+
+ #install
+ if [ "$install" -eq 1 ]; then
+ $DEBUG $MKDIR -- "$instdir" || exit 2
+ $DEBUG $INSTALL -- "$target" "$instdir/$target" || exit 2
+ fi
+done
diff --git a/doc/project.conf b/doc/project.conf
new file mode 100644
index 0000000..20876b7
--- /dev/null
+++ b/doc/project.conf
@@ -0,0 +1,8 @@
+targets=browser.1
+dist=Makefile,docbook.sh,browser.xml
+
+[browser.1]
+type=script
+script=./docbook.sh
+install=
+depends=browser.xml
diff --git a/project.conf b/project.conf
index b575c07..0fea0e8 100644
--- a/project.conf
+++ b/project.conf
@@ -2,5 +2,5 @@ package=Browser
version=0.4.6
config=h,sh
-subdirs=data,include,po,src,tools
+subdirs=data,doc,include,po,src,tools
dist=Makefile,COPYING,TODO,config.h,config.sh