Added BinaryXMLEncoder
diff --git a/Makefile.am b/Makefile.am
index 1a18a94..c55c3f0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,24 +9,29 @@
 ## to provide a way for the user to supply additional arguments.
 ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
 
-lib_LIBRARIES = ndn-cpp.a
+lib_LIBRARIES = libndn-c.a libndn-cpp.a
 
 bin_PROGRAMS = test-encode-decode-interest
 
-ndn_cpp_a_SOURCES = ndn-cpp/common.h ndn-cpp/config.h \
-  ndn-cpp/Name.cpp ndn-cpp/Name.h ndn-cpp/Name.hpp \
-  ndn-cpp/encoding/BinaryXML.h \
+libndn_c_a_SOURCES = \
+  ndn-cpp/config.h \
+  ndn-cpp/Name.h \
   ndn-cpp/encoding/BinaryXMLDecoder.c ndn-cpp/encoding/BinaryXMLDecoder.h \
   ndn-cpp/encoding/BinaryXMLEncoder.c ndn-cpp/encoding/BinaryXMLEncoder.h \
   ndn-cpp/encoding/BinaryXMLName.c ndn-cpp/encoding/BinaryXMLName.h \
   ndn-cpp/encoding/BinaryXMLStructureDecoder.c ndn-cpp/encoding/BinaryXMLStructureDecoder.h \
-  ndn-cpp/encoding/BinaryXMLStructureDecoder.hpp \
-  ndn-cpp/encoding/BinaryXMLWireFormat.cpp ndn-cpp/encoding/BinaryXMLWireFormat.hpp \
-  ndn-cpp/encoding/WireFormat.cpp ndn-cpp/encoding/WireFormat.hpp \
   ndn-cpp/util/DynamicUCharArray.c ndn-cpp/util/DynamicUCharArray.h \
   ndn-cpp/util/ndn_memory.c ndn-cpp/util/ndn_memory.h
 
+libndn_cpp_a_SOURCES = \
+  ndn-cpp/config.h ndn-cpp/common.h \
+  ndn-cpp/Name.cpp ndn-cpp/Name.h ndn-cpp/Name.hpp \
+  ndn-cpp/encoding/BinaryXML.h \
+  ndn-cpp/encoding/BinaryXMLStructureDecoder.hpp \
+  ndn-cpp/encoding/BinaryXMLWireFormat.cpp ndn-cpp/encoding/BinaryXMLWireFormat.hpp \
+  ndn-cpp/encoding/WireFormat.cpp ndn-cpp/encoding/WireFormat.hpp
+
 test_encode_decode_interest_SOURCES = test/test-encode-decode-interest.cpp
-test_encode_decode_interest_LDADD = ndn-cpp.a
+test_encode_decode_interest_LDADD = libndn-c.a libndn-cpp.a
 
 dist_noinst_SCRIPTS = autogen.sh
diff --git a/Makefile.in b/Makefile.in
index 746908d..bc1094f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -131,25 +131,28 @@
 am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
 am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
-ndn_cpp_a_AR = $(AR) $(ARFLAGS)
-ndn_cpp_a_LIBADD =
+libndn_c_a_AR = $(AR) $(ARFLAGS)
+libndn_c_a_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
-am_ndn_cpp_a_OBJECTS = ndn-cpp/Name.$(OBJEXT) \
-	ndn-cpp/encoding/BinaryXMLDecoder.$(OBJEXT) \
+am_libndn_c_a_OBJECTS = ndn-cpp/encoding/BinaryXMLDecoder.$(OBJEXT) \
 	ndn-cpp/encoding/BinaryXMLEncoder.$(OBJEXT) \
 	ndn-cpp/encoding/BinaryXMLName.$(OBJEXT) \
 	ndn-cpp/encoding/BinaryXMLStructureDecoder.$(OBJEXT) \
-	ndn-cpp/encoding/BinaryXMLWireFormat.$(OBJEXT) \
-	ndn-cpp/encoding/WireFormat.$(OBJEXT) \
 	ndn-cpp/util/DynamicUCharArray.$(OBJEXT) \
 	ndn-cpp/util/ndn_memory.$(OBJEXT)
-ndn_cpp_a_OBJECTS = $(am_ndn_cpp_a_OBJECTS)
+libndn_c_a_OBJECTS = $(am_libndn_c_a_OBJECTS)
+libndn_cpp_a_AR = $(AR) $(ARFLAGS)
+libndn_cpp_a_LIBADD =
+am_libndn_cpp_a_OBJECTS = ndn-cpp/Name.$(OBJEXT) \
+	ndn-cpp/encoding/BinaryXMLWireFormat.$(OBJEXT) \
+	ndn-cpp/encoding/WireFormat.$(OBJEXT)
+libndn_cpp_a_OBJECTS = $(am_libndn_cpp_a_OBJECTS)
 PROGRAMS = $(bin_PROGRAMS)
 am_test_encode_decode_interest_OBJECTS =  \
 	test/test-encode-decode-interest.$(OBJEXT)
 test_encode_decode_interest_OBJECTS =  \
 	$(am_test_encode_decode_interest_OBJECTS)
-test_encode_decode_interest_DEPENDENCIES = ndn-cpp.a
+test_encode_decode_interest_DEPENDENCIES = libndn-c.a libndn-cpp.a
 SCRIPTS = $(dist_noinst_SCRIPTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -192,8 +195,9 @@
 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
 am__v_CXXLD_0 = @echo "  CXXLD   " $@;
 am__v_CXXLD_1 = 
-SOURCES = $(ndn_cpp_a_SOURCES) $(test_encode_decode_interest_SOURCES)
-DIST_SOURCES = $(ndn_cpp_a_SOURCES) \
+SOURCES = $(libndn_c_a_SOURCES) $(libndn_cpp_a_SOURCES) \
+	$(test_encode_decode_interest_SOURCES)
+DIST_SOURCES = $(libndn_c_a_SOURCES) $(libndn_cpp_a_SOURCES) \
 	$(test_encode_decode_interest_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -381,22 +385,27 @@
 
 AUTOMAKE_OPTIONS = subdir-objects
 ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
-lib_LIBRARIES = ndn-cpp.a
-ndn_cpp_a_SOURCES = ndn-cpp/common.h ndn-cpp/config.h \
-  ndn-cpp/Name.cpp ndn-cpp/Name.h ndn-cpp/Name.hpp \
-  ndn-cpp/encoding/BinaryXML.h \
+lib_LIBRARIES = libndn-c.a libndn-cpp.a
+libndn_c_a_SOURCES = \
+  ndn-cpp/config.h \
+  ndn-cpp/Name.h \
   ndn-cpp/encoding/BinaryXMLDecoder.c ndn-cpp/encoding/BinaryXMLDecoder.h \
   ndn-cpp/encoding/BinaryXMLEncoder.c ndn-cpp/encoding/BinaryXMLEncoder.h \
   ndn-cpp/encoding/BinaryXMLName.c ndn-cpp/encoding/BinaryXMLName.h \
   ndn-cpp/encoding/BinaryXMLStructureDecoder.c ndn-cpp/encoding/BinaryXMLStructureDecoder.h \
-  ndn-cpp/encoding/BinaryXMLStructureDecoder.hpp \
-  ndn-cpp/encoding/BinaryXMLWireFormat.cpp ndn-cpp/encoding/BinaryXMLWireFormat.hpp \
-  ndn-cpp/encoding/WireFormat.cpp ndn-cpp/encoding/WireFormat.hpp \
   ndn-cpp/util/DynamicUCharArray.c ndn-cpp/util/DynamicUCharArray.h \
   ndn-cpp/util/ndn_memory.c ndn-cpp/util/ndn_memory.h
 
+libndn_cpp_a_SOURCES = \
+  ndn-cpp/config.h ndn-cpp/common.h \
+  ndn-cpp/Name.cpp ndn-cpp/Name.h ndn-cpp/Name.hpp \
+  ndn-cpp/encoding/BinaryXML.h \
+  ndn-cpp/encoding/BinaryXMLStructureDecoder.hpp \
+  ndn-cpp/encoding/BinaryXMLWireFormat.cpp ndn-cpp/encoding/BinaryXMLWireFormat.hpp \
+  ndn-cpp/encoding/WireFormat.cpp ndn-cpp/encoding/WireFormat.hpp
+
 test_encode_decode_interest_SOURCES = test/test-encode-decode-interest.cpp
-test_encode_decode_interest_LDADD = ndn-cpp.a
+test_encode_decode_interest_LDADD = libndn-c.a libndn-cpp.a
 dist_noinst_SCRIPTS = autogen.sh
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -484,14 +493,6 @@
 
 clean-libLIBRARIES:
 	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-ndn-cpp/$(am__dirstamp):
-	@$(MKDIR_P) ndn-cpp
-	@: > ndn-cpp/$(am__dirstamp)
-ndn-cpp/$(DEPDIR)/$(am__dirstamp):
-	@$(MKDIR_P) ndn-cpp/$(DEPDIR)
-	@: > ndn-cpp/$(DEPDIR)/$(am__dirstamp)
-ndn-cpp/Name.$(OBJEXT): ndn-cpp/$(am__dirstamp) \
-	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/encoding/$(am__dirstamp):
 	@$(MKDIR_P) ndn-cpp/encoding
 	@: > ndn-cpp/encoding/$(am__dirstamp)
@@ -510,12 +511,6 @@
 ndn-cpp/encoding/BinaryXMLStructureDecoder.$(OBJEXT):  \
 	ndn-cpp/encoding/$(am__dirstamp) \
 	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
-ndn-cpp/encoding/BinaryXMLWireFormat.$(OBJEXT):  \
-	ndn-cpp/encoding/$(am__dirstamp) \
-	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
-ndn-cpp/encoding/WireFormat.$(OBJEXT):  \
-	ndn-cpp/encoding/$(am__dirstamp) \
-	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/util/$(am__dirstamp):
 	@$(MKDIR_P) ndn-cpp/util
 	@: > ndn-cpp/util/$(am__dirstamp)
@@ -528,10 +523,29 @@
 ndn-cpp/util/ndn_memory.$(OBJEXT): ndn-cpp/util/$(am__dirstamp) \
 	ndn-cpp/util/$(DEPDIR)/$(am__dirstamp)
 
-ndn-cpp.a: $(ndn_cpp_a_OBJECTS) $(ndn_cpp_a_DEPENDENCIES) $(EXTRA_ndn_cpp_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f ndn-cpp.a
-	$(AM_V_AR)$(ndn_cpp_a_AR) ndn-cpp.a $(ndn_cpp_a_OBJECTS) $(ndn_cpp_a_LIBADD)
-	$(AM_V_at)$(RANLIB) ndn-cpp.a
+libndn-c.a: $(libndn_c_a_OBJECTS) $(libndn_c_a_DEPENDENCIES) $(EXTRA_libndn_c_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libndn-c.a
+	$(AM_V_AR)$(libndn_c_a_AR) libndn-c.a $(libndn_c_a_OBJECTS) $(libndn_c_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libndn-c.a
+ndn-cpp/$(am__dirstamp):
+	@$(MKDIR_P) ndn-cpp
+	@: > ndn-cpp/$(am__dirstamp)
+ndn-cpp/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) ndn-cpp/$(DEPDIR)
+	@: > ndn-cpp/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/Name.$(OBJEXT): ndn-cpp/$(am__dirstamp) \
+	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/encoding/BinaryXMLWireFormat.$(OBJEXT):  \
+	ndn-cpp/encoding/$(am__dirstamp) \
+	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/encoding/WireFormat.$(OBJEXT):  \
+	ndn-cpp/encoding/$(am__dirstamp) \
+	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
+
+libndn-cpp.a: $(libndn_cpp_a_OBJECTS) $(libndn_cpp_a_DEPENDENCIES) $(EXTRA_libndn_cpp_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libndn-cpp.a
+	$(AM_V_AR)$(libndn_cpp_a_AR) libndn-cpp.a $(libndn_cpp_a_OBJECTS) $(libndn_cpp_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libndn-cpp.a
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \