diff --git a/jni/commoncpp2-1.8.1-android/tests/Makefile b/jni/commoncpp2-1.8.1-android/tests/Makefile
new file mode 100644
index 0000000..123436c
--- /dev/null
+++ b/jni/commoncpp2-1.8.1-android/tests/Makefile
@@ -0,0 +1,680 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# tests/Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+# Copyright (C) 1999-2005 Open Source Telecom Corporation.
+# Copyright (C) 2006-2008 David Sugar, Tycho Softworks.
+#
+# This file is free software; as a special exception the author 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.
+
+
+
+pkgdatadir = $(datadir)/commoncpp2
+pkgincludedir = $(includedir)/commoncpp2
+pkglibdir = $(libdir)/commoncpp2
+pkglibexecdir = $(libexecdir)/commoncpp2
+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 = x86_64-unknown-linux-gnu
+host_triplet = arm-unknown-linux-androideabi
+target_triplet = arm-unknown-linux-androideabi
+noinst_PROGRAMS = $(am__EXEEXT_1) bug1$(EXEEXT) bug2$(EXEEXT) \
+	thread1$(EXEEXT) thread2$(EXEEXT) thread3$(EXEEXT) \
+	digest$(EXEEXT) tcpstr1$(EXEEXT) url1$(EXEEXT) \
+	forever$(EXEEXT)
+subdir = tests
+DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/m4/ost_cxx.m4 $(top_srcdir)/m4/ost_debug.m4 \
+	$(top_srcdir)/m4/ost_dynamic.m4 $(top_srcdir)/m4/ost_endian.m4 \
+	$(top_srcdir)/m4/ost_getopt.m4 $(top_srcdir)/m4/ost_maint.m4 \
+	$(top_srcdir)/m4/ost_misc.m4 $(top_srcdir)/m4/ost_poll.m4 \
+	$(top_srcdir)/m4/ost_posix.m4 $(top_srcdir)/m4/ost_prog.m4 \
+	$(top_srcdir)/m4/ost_pthread.m4 \
+	$(top_srcdir)/m4/ost_reentrant.m4 \
+	$(top_srcdir)/m4/ost_signal.m4 $(top_srcdir)/m4/ost_socket.m4 \
+	$(top_srcdir)/m4/ost_ssl.m4 $(top_srcdir)/m4/ost_stlport.m4 \
+	$(top_srcdir)/m4/ost_string.m4 $(top_srcdir)/m4/ost_systime.m4 \
+	$(top_srcdir)/m4/ost_types.m4 $(top_srcdir)/m4/ost_win32.m4 \
+	$(top_srcdir)/m4/win32msc.m4 $(top_srcdir)/configure.ac
+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 =
+#am__EXEEXT_1 = ccxx_tests$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+am_bug1_OBJECTS = bug1.$(OBJEXT)
+bug1_OBJECTS = $(am_bug1_OBJECTS)
+bug1_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+bug1_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_bug2_OBJECTS = bug2.$(OBJEXT)
+bug2_OBJECTS = $(am_bug2_OBJECTS)
+bug2_LDADD = $(LDADD)
+bug2_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am__ccxx_tests_SOURCES_DIST = ccxx_tests.cpp SampleObject.cpp \
+	SampleSubObject.cpp Test_Date.cpp Test_Engine.cpp \
+	Test_TCPStream.cpp Test_URLString.cpp
+#am_ccxx_tests_OBJECTS = ccxx_tests.$(OBJEXT) \
+#	SampleObject.$(OBJEXT) \
+#	SampleSubObject.$(OBJEXT) \
+#	Test_Date.$(OBJEXT) \
+#	Test_Engine.$(OBJEXT) \
+#	Test_TCPStream.$(OBJEXT) \
+#	Test_URLString.$(OBJEXT)
+ccxx_tests_OBJECTS = $(am_ccxx_tests_OBJECTS)
+am__DEPENDENCIES_2 = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+#ccxx_tests_DEPENDENCIES =  \
+#	../src/libccext2.la \
+#	$(am__DEPENDENCIES_1) \
+#	$(am__DEPENDENCIES_2) \
+#	$(am__DEPENDENCIES_1) \
+#	$(am__DEPENDENCIES_1)
+am_digest_OBJECTS = digest.$(OBJEXT)
+digest_OBJECTS = $(am_digest_OBJECTS)
+digest_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+am_forever_OBJECTS = forever.$(OBJEXT)
+forever_OBJECTS = $(am_forever_OBJECTS)
+forever_LDADD = $(LDADD)
+forever_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_tcpstr1_OBJECTS = tcpstr1.$(OBJEXT)
+tcpstr1_OBJECTS = $(am_tcpstr1_OBJECTS)
+tcpstr1_LDADD = $(LDADD)
+tcpstr1_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_thread1_OBJECTS = thread1.$(OBJEXT)
+thread1_OBJECTS = $(am_thread1_OBJECTS)
+thread1_LDADD = $(LDADD)
+thread1_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_thread2_OBJECTS = thread2.$(OBJEXT)
+thread2_OBJECTS = $(am_thread2_OBJECTS)
+thread2_LDADD = $(LDADD)
+thread2_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_thread3_OBJECTS = thread3.$(OBJEXT)
+thread3_OBJECTS = $(am_thread3_OBJECTS)
+thread3_LDADD = $(LDADD)
+thread3_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_url1_OBJECTS = url1.$(OBJEXT)
+url1_OBJECTS = $(am_url1_OBJECTS)
+url1_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(bug1_SOURCES) $(bug2_SOURCES) $(ccxx_tests_SOURCES) \
+	$(digest_SOURCES) $(forever_SOURCES) $(tcpstr1_SOURCES) \
+	$(thread1_SOURCES) $(thread2_SOURCES) $(thread3_SOURCES) \
+	$(url1_SOURCES)
+DIST_SOURCES = $(bug1_SOURCES) $(bug2_SOURCES) \
+	$(am__ccxx_tests_SOURCES_DIST) $(digest_SOURCES) \
+	$(forever_SOURCES) $(tcpstr1_SOURCES) $(thread1_SOURCES) \
+	$(thread2_SOURCES) $(thread3_SOURCES) $(url1_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run tar
+AR = arm-linux-androideabi-ar
+AS = as
+AUTOCONF = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run automake-1.11
+AWK = gawk
+BASE_LIB = ../src/libccgnu2.la
+CC = arm-linux-androideabi-gcc
+CCDEPMODE = depmode=gcc3
+CCXX_DIR = $(top_srcdir)/inc
+CFLAGS = -g -O2
+COMMON_FLAGS = -D_GNU_SOURCE -I/home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr/include
+CPP = arm-linux-androideabi-gcc -E
+CPPFLAGS = 
+CPPUNIT_LIBS =  
+CXX = arm-linux-androideabi-g++
+CXXCPP = arm-linux-androideabi-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -Wno-psabi
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DOXYGEN = no
+DSYMUTIL = 
+DUMPBIN = 
+DYN_LOADER = -ldl
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FTPDIR = 
+GETOPT_LIBS = 
+GREP = /bin/grep
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KDOC_DIR = $(top_srcdir)/doc
+LD = /home/evigier/android-14b-toolchain/arm-linux-androideabi/bin/ld
+LDFLAGS = 
+LIBGETOPTOBJS = 
+LIBOBJS = 
+LIBS =  -L/home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr/lib
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIB_MAJOR = 0
+LIB_VERSION = 1_8
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+LT_CCXX_VERSION = -version-info 0:1
+LT_MAJOR = 0
+LT_MINOR = 1
+LT_RELEASE = 1.8
+LT_SUBVER = 0.1
+MAINT = #
+MAKEINFO = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/missing --run makeinfo
+MANIFEST_TOOL = :
+MKDIR_P = /bin/mkdir -p
+MODULE_FLAGS = -module -shared -avoid-version
+NM = /home/evigier/android-14b-toolchain/bin/arm-linux-androideabi-nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = commoncpp2
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = 
+PACKAGE_STRING = 
+PACKAGE_TARNAME = 
+PACKAGE_URL = 
+PACKAGE_VERSION = 
+PATH_SEPARATOR = :
+PTHREAD_CC = 
+RANLIB = arm-linux-androideabi-ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHARED_FLAGS = 
+SHELL = /bin/bash
+SOCKET_LIBS = 
+SSL_LIBS = 
+STAGE2 = 
+STRIP = arm-linux-androideabi-strip
+THREAD_FLAGS = 
+THREAD_LIBS =   -pthread
+VERSION = 1.8.1
+WARN_FLAGS = -pedantic -Wall
+WINVERSION = 1,8,1,0
+ZSTREAM_LIBS = -lz
+abs_builddir = /home/evigier/git/commoncpp2-1.8.1-android/tests
+abs_srcdir = /home/evigier/git/commoncpp2-1.8.1-android/tests
+abs_top_builddir = /home/evigier/git/commoncpp2-1.8.1-android
+abs_top_srcdir = /home/evigier/git/commoncpp2-1.8.1-android
+ac_ct_AR = 
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+ccincludedir = ${includedir}/cc++2
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE}
+dvidir = ${docdir}
+etc_confdir = /home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr/etc
+exec_prefix = ${prefix}
+host = arm-unknown-linux-androideabi
+host_alias = arm-linux-androideabi
+host_cpu = arm
+host_os = linux-androideabi
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+incprefix = 
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/evigier/git/commoncpp2-1.8.1-android/autoconf/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+ost_cv_dynloader = yes
+pdfdir = ${docdir}
+prefix = /home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = arm-unknown-linux-androideabi
+target_alias = 
+target_cpu = arm
+target_os = linux-androideabi
+target_vendor = unknown
+thrprefix = /usr/include
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+MAINTAINERCLEANFILES = Makefile.in Makefile
+EXTRA_DIST = README dotests.sh test.sh output.txt vc6.mak Makefile.bcc
+AM_CXXFLAGS = $(THREAD_FLAGS) -pedantic -Wall
+INCLUDES = -I$(top_srcdir)/inc
+LDADD = ../src/libccgnu2.la $(THREAD_LIBS) $(DYN_LOADER)
+Z_LIBS = -lz
+TEST_SUITE = 
+#TEST_SUITE = ccxx_tests
+noinst_HEADERS = SampleObject.h SampleSubObject.h Test_Date.h Test_Digest.h \
+        Test_Engine.h Test_SHATumbler.h Test_TCPStream.h Test_URLString.h
+
+#ccxx_tests_SOURCES = ccxx_tests.cpp SampleObject.cpp SampleSubObject.cpp \
+#	Test_Date.cpp Test_Engine.cpp Test_TCPStream.cpp Test_URLString.cpp
+
+# Test_Digest.cpp
+#ccxx_tests_LDADD = ../src/libccext2.la $(XML_LIBS) $(Z_LIBS) $(LDADD) \
+#	$(SSL_LIBS) $(CPPUNIT_LIBS)
+
+bug1_SOURCES = bug1.cpp
+bug2_SOURCES = bug2.cpp
+forever_SOURCES = forever.cpp
+digest_SOURCES = digest.cpp
+digest_LDADD = ../src/libccext2.la $(XML_LIBS) $(Z_LIBS) $(SSL_LIBS) $(LDADD)
+thread1_SOURCES = thread1.cpp
+thread2_SOURCES = thread2.cpp
+thread3_SOURCES = thread3.cpp
+tcpstr1_SOURCES = tcpstr1.cpp
+url1_SOURCES = url1.cpp
+url1_LDADD = ../src/libccext2.la $(XML_LIBS) $(Z_LIBS) $(SSL_LIBS) $(LDADD)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(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) --gnu tests/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tests/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):
+
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+bug1$(EXEEXT): $(bug1_OBJECTS) $(bug1_DEPENDENCIES) 
+	@rm -f bug1$(EXEEXT)
+	$(CXXLINK) $(bug1_OBJECTS) $(bug1_LDADD) $(LIBS)
+bug2$(EXEEXT): $(bug2_OBJECTS) $(bug2_DEPENDENCIES) 
+	@rm -f bug2$(EXEEXT)
+	$(CXXLINK) $(bug2_OBJECTS) $(bug2_LDADD) $(LIBS)
+ccxx_tests$(EXEEXT): $(ccxx_tests_OBJECTS) $(ccxx_tests_DEPENDENCIES) 
+	@rm -f ccxx_tests$(EXEEXT)
+	$(CXXLINK) $(ccxx_tests_OBJECTS) $(ccxx_tests_LDADD) $(LIBS)
+digest$(EXEEXT): $(digest_OBJECTS) $(digest_DEPENDENCIES) 
+	@rm -f digest$(EXEEXT)
+	$(CXXLINK) $(digest_OBJECTS) $(digest_LDADD) $(LIBS)
+forever$(EXEEXT): $(forever_OBJECTS) $(forever_DEPENDENCIES) 
+	@rm -f forever$(EXEEXT)
+	$(CXXLINK) $(forever_OBJECTS) $(forever_LDADD) $(LIBS)
+tcpstr1$(EXEEXT): $(tcpstr1_OBJECTS) $(tcpstr1_DEPENDENCIES) 
+	@rm -f tcpstr1$(EXEEXT)
+	$(CXXLINK) $(tcpstr1_OBJECTS) $(tcpstr1_LDADD) $(LIBS)
+thread1$(EXEEXT): $(thread1_OBJECTS) $(thread1_DEPENDENCIES) 
+	@rm -f thread1$(EXEEXT)
+	$(CXXLINK) $(thread1_OBJECTS) $(thread1_LDADD) $(LIBS)
+thread2$(EXEEXT): $(thread2_OBJECTS) $(thread2_DEPENDENCIES) 
+	@rm -f thread2$(EXEEXT)
+	$(CXXLINK) $(thread2_OBJECTS) $(thread2_LDADD) $(LIBS)
+thread3$(EXEEXT): $(thread3_OBJECTS) $(thread3_DEPENDENCIES) 
+	@rm -f thread3$(EXEEXT)
+	$(CXXLINK) $(thread3_OBJECTS) $(thread3_LDADD) $(LIBS)
+url1$(EXEEXT): $(url1_OBJECTS) $(url1_DEPENDENCIES) 
+	@rm -f url1$(EXEEXT)
+	$(CXXLINK) $(url1_OBJECTS) $(url1_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/SampleObject.Po
+include ./$(DEPDIR)/SampleSubObject.Po
+include ./$(DEPDIR)/Test_Date.Po
+include ./$(DEPDIR)/Test_Engine.Po
+include ./$(DEPDIR)/Test_TCPStream.Po
+include ./$(DEPDIR)/Test_URLString.Po
+include ./$(DEPDIR)/bug1.Po
+include ./$(DEPDIR)/bug2.Po
+include ./$(DEPDIR)/ccxx_tests.Po
+include ./$(DEPDIR)/digest.Po
+include ./$(DEPDIR)/forever.Po
+include ./$(DEPDIR)/tcpstr1.Po
+include ./$(DEPDIR)/thread1.Po
+include ./$(DEPDIR)/thread2.Po
+include ./$(DEPDIR)/thread3.Po
+include ./$(DEPDIR)/url1.Po
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+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 $(PROGRAMS) $(HEADERS)
+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."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+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 -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags 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-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags 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:
