In common.h, define func_lib for function objects.  In configure.ac, define HAVE_STD_FUNCTION and HAVE_BOOST_FUNCTION.  Include function headers in ndnboost.
diff --git a/libs/function/doc/function.xml b/libs/function/doc/function.xml
new file mode 100644
index 0000000..fcf29fc
--- /dev/null
+++ b/libs/function/doc/function.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+  "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<library name="Function" dirname="function" id="function" 
+         last-revision="$Date: 2004-07-24 19:59:30 -0700 (Sat, 24 Jul 2004) $" 
+         xmlns:xi="http://www.w3.org/2001/XInclude">
+<libraryinfo>
+  <author>
+    <firstname>Douglas</firstname>
+    <surname>Gregor</surname>
+    <email>dgregor -at- cs.indiana.edu</email>
+  </author>
+
+  <copyright>
+    <year>2001</year>
+    <year>2002</year>
+    <year>2003</year>
+    <year>2004</year>
+    <holder>Douglas Gregor</holder>
+  </copyright>
+
+  <legalnotice>
+    <para>Use, modification and distribution is subject to the Boost
+    Software License, Version 1.0. (See accompanying file
+    <filename>LICENSE_1_0.txt</filename> or copy at <ulink
+    url="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</ulink>)</para>
+  </legalnotice>
+
+  <librarypurpose>Function object wrappers for deferred calls or callbacks</librarypurpose>
+  <librarycategory name="category:higher-order"/>
+</libraryinfo>
+
+<title>Boost.Function</title>
+
+<section id="function.intro">
+<title>Introduction</title> 
+<para>The Boost.Function library contains a family of class templates
+that are function object wrappers. The notion is similar to a
+generalized callback. It shares features with function pointers in
+that both define a call interface (e.g., a function taking two integer
+arguments and returning a floating-point value) through which some
+implementation can be called, and the implementation that is invoked
+may change throughout the course of the program.</para>
+
+<para> Generally, any place in which a function pointer would be used
+to defer a call or make a callback, Boost.Function can be used instead
+to allow the user greater flexibility in the implementation of the
+target. Targets can be any 'compatible' function object (or function
+pointer), meaning that the arguments to the interface designated by
+Boost.Function can be converted to the arguments of the target
+function object.</para>
+</section>
+
+<xi:include href="history.xml"/>
+<xi:include href="tutorial.xml"/>
+<xi:include href="reference.xml"/>
+<xi:include href="faq.xml"/>
+<xi:include href="misc.xml"/>
+<xi:include href="tests.xml"/>
+
+</library>