diff --git a/libhinawa/Makefile.am b/libhinawa/Makefile.am
index 05f5d58..3fd84c5 100644
--- a/libhinawa/Makefile.am
+++ b/libhinawa/Makefile.am
@@ -2,4 +2,5 @@
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 
 SUBDIRS =					\
-	src
+	src					\
+	doc
diff --git a/libhinawa/README b/libhinawa/README
index db9b82a..f6a0650 100644
--- a/libhinawa/README
+++ b/libhinawa/README
@@ -3,9 +3,16 @@ Requirements
 - GNU Automake 1.10.1 or later
 - GNU libtool 2.2.6 or later
 - Glib 2.32.4 or later
+- GTK-Doc 1.18-2
 
 How to build
  $ ./autogen.sh
  $ ./configure
  $ make
  $ make install
+
+How to refer document
+ $ ./autogen.sh
+ $ ./configure --enable-gtk-doc
+ $ make
+ $ make install
diff --git a/libhinawa/autogen.sh b/libhinawa/autogen.sh
index 54ecfa2..98f6dbf 100755
--- a/libhinawa/autogen.sh
+++ b/libhinawa/autogen.sh
@@ -7,4 +7,5 @@ if [ ! -e m4 ] ; then
 	mkdir -p m4
 fi
 
+gtkdocize --copy --docdir doc/reference
 autoreconf --install
diff --git a/libhinawa/configure.ac b/libhinawa/configure.ac
index 5ecb7ec..28ca374 100644
--- a/libhinawa/configure.ac
+++ b/libhinawa/configure.ac
@@ -45,10 +45,16 @@ AC_PROG_CC
 # Glib 2.32 or later
 AM_PATH_GLIB_2_0([2.32.4], [], [], [gobject])
 
+# GTK-Doc 1.18-2 or later
+GTK_DOC_CHECK([1.18-2])
+
 # The files generated from *.in
 AC_CONFIG_FILES([
   Makefile
   src/Makefile
+  doc/Makefile
+  doc/reference/Makefile
+  doc/reference/version.xml
 ])
 
 # Generate scripts and launch
diff --git a/libhinawa/doc/Makefile.am b/libhinawa/doc/Makefile.am
new file mode 100644
index 0000000..66af18f
--- /dev/null
+++ b/libhinawa/doc/Makefile.am
@@ -0,0 +1,2 @@
+SUBDIRS =			\
+	reference
diff --git a/libhinawa/doc/reference/Makefile.am b/libhinawa/doc/reference/Makefile.am
new file mode 100644
index 0000000..b7e28d2
--- /dev/null
+++ b/libhinawa/doc/reference/Makefile.am
@@ -0,0 +1,46 @@
+# The name of this module
+DOC_MODULE = hinawa
+
+# THe entry point
+DOC_MAIN_SGML_FILE = hinawa-docs.sgml
+
+# The directory with sources
+DOC_SOURCE_DIR =				\
+	$(top_srcdir)/src
+
+# The tag for deprecates
+SCAN_OPTIONS =
+
+# The prefix
+MKDB_OPTIONS =					\
+	--name-space=hinawa
+
+# The patterns for headers
+HFILE_GLOB =					\
+	$(top_srcdir)/src/*.h
+
+# The patterns for sources
+CFILE_GLOB =					\
+	$(top_srcdir)/src/*.c
+
+# The options for C Pre-Processor
+AM_CPPFLAGS =					\
+	-I$(top_srcdir)				\
+	-I$(top_srcdir)/src
+
+# The options for C compiler
+AM_CFLAGS =					\
+	$(GLIB_CFLAGS)				\
+	-Wall
+
+# The options to link
+GTKDOC_LIBS =					\
+	$(top_builddir)/src/libhinawa.la	\
+	$(GLIB_LIBS)
+
+# Include Makefile generated by GTK-Doc
+include $(top_srcdir)/doc/reference/gtk-doc.make
+
+CLEANFILES +=					\
+	$(DOC_MODULE)-sections.txt		\
+	$(DOC_MODULE).types
diff --git a/libhinawa/doc/reference/hinawa-docs.sgml b/libhinawa/doc/reference/hinawa-docs.sgml
new file mode 100644
index 0000000..43c5c4e
--- /dev/null
+++ b/libhinawa/doc/reference/hinawa-docs.sgml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY version SYSTEM "version.xml">
+]>
+<book xmlns:xi="http://www.w3.org/2003/XInclude" id="index" lang="en">
+    <bookinfo>
+        <title>Hinawa Reference Manual</title>
+    <releaseinfo>This document is for the Hinawa library, version &version;.
+    </releaseinfo>
+    </bookinfo>
+
+    <part id="reference">
+        <title>Reference</title>
+
+        <chapter id="introduction">
+            <title>Introduction</title>
+            <para>
+            Hinawa is an gobject introspection library for devices connected to
+            IEEE 1394 bus. This library supports any types of transactions
+            over IEEE 1394 bus.
+            This library also supports some functionality which ALSA firewire
+            stack produces.
+            </para>
+        </chapter>
+
+        <chapter id="libhinawa">
+            <title>libhinawa</title>
+            <para>
+            This library gives 7 objects, 3 objects are abstraction of the
+            functionality in ALSA firewire stack, the others are abstractions
+            of the transaction functionality in Linux firewire stack.
+            </para>
+        </chapter>
+    </part>
+
+    <index id="index-all">
+        <title>Index of all symbols</title>
+    </index>
+</book>
diff --git a/libhinawa/doc/reference/version.xml.in b/libhinawa/doc/reference/version.xml.in
new file mode 100644
index 0000000..d78bda9
--- /dev/null
+++ b/libhinawa/doc/reference/version.xml.in
@@ -0,0 +1 @@
+@VERSION@
