# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@

# 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.

@SET_MAKE@

# Copyright (C) 1999-2005 Open Source Telecom Corporation.
# Copyright (C) 2006-2010 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.


VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
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 = @build@
host_triplet = @host@
target_triplet = @target@
noinst_PROGRAMS = tcp$(EXEEXT) tcpthread$(EXEEXT) tcpservice$(EXEEXT) \
	dccpclient$(EXEEXT) dccpserver$(EXEEXT) serial$(EXEEXT) \
	dir$(EXEEXT) str$(EXEEXT) buffer$(EXEEXT) keydump$(EXEEXT) \
	urlfetch$(EXEEXT) xmlfetch$(EXEEXT) portsample$(EXEEXT) \
	netdevices$(EXEEXT) slogTest$(EXEEXT) crc32$(EXEEXT) \
	cmdlineopt$(EXEEXT) timer$(EXEEXT) testAlog$(EXEEXT)
subdir = demo
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 =
PROGRAMS = $(noinst_PROGRAMS)
am_buffer_OBJECTS = buffer.$(OBJEXT)
buffer_OBJECTS = $(am_buffer_OBJECTS)
am__DEPENDENCIES_1 =
am__DEPENDENCIES_2 = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
buffer_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_cmdlineopt_OBJECTS = cmdlineopt.$(OBJEXT)
cmdlineopt_OBJECTS = $(am_cmdlineopt_OBJECTS)
cmdlineopt_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_crc32_OBJECTS = crc32.$(OBJEXT)
crc32_OBJECTS = $(am_crc32_OBJECTS)
crc32_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_dccpclient_OBJECTS = dccpclient.$(OBJEXT)
dccpclient_OBJECTS = $(am_dccpclient_OBJECTS)
dccpclient_LDADD = $(LDADD)
dccpclient_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_dccpserver_OBJECTS = dccpserver.$(OBJEXT)
dccpserver_OBJECTS = $(am_dccpserver_OBJECTS)
dccpserver_LDADD = $(LDADD)
dccpserver_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_dir_OBJECTS = dir.$(OBJEXT)
dir_OBJECTS = $(am_dir_OBJECTS)
dir_LDADD = $(LDADD)
dir_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_keydump_OBJECTS = keydump.$(OBJEXT)
keydump_OBJECTS = $(am_keydump_OBJECTS)
keydump_LDADD = $(LDADD)
keydump_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_netdevices_OBJECTS = netdevices.$(OBJEXT)
netdevices_OBJECTS = $(am_netdevices_OBJECTS)
netdevices_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_portsample_OBJECTS = SampleSocketPort.$(OBJEXT)
portsample_OBJECTS = $(am_portsample_OBJECTS)
portsample_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_serial_OBJECTS = serialmain.$(OBJEXT) serialecho.$(OBJEXT)
serial_OBJECTS = $(am_serial_OBJECTS)
serial_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_slogTest_OBJECTS = slogTest.$(OBJEXT)
slogTest_OBJECTS = $(am_slogTest_OBJECTS)
slogTest_LDADD = $(LDADD)
slogTest_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_str_OBJECTS = str.$(OBJEXT)
str_OBJECTS = $(am_str_OBJECTS)
str_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_tcp_OBJECTS = tcp.$(OBJEXT)
tcp_OBJECTS = $(am_tcp_OBJECTS)
tcp_LDADD = $(LDADD)
tcp_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_tcpservice_OBJECTS = tcpservice.$(OBJEXT)
tcpservice_OBJECTS = $(am_tcpservice_OBJECTS)
tcpservice_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_tcpthread_OBJECTS = tcpthread.$(OBJEXT)
tcpthread_OBJECTS = $(am_tcpthread_OBJECTS)
tcpthread_LDADD = $(LDADD)
tcpthread_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_testAlog_OBJECTS = test_alog.$(OBJEXT)
testAlog_OBJECTS = $(am_testAlog_OBJECTS)
testAlog_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_timer_OBJECTS = timer.$(OBJEXT)
timer_OBJECTS = $(am_timer_OBJECTS)
timer_LDADD = $(LDADD)
timer_DEPENDENCIES = ../src/libccgnu2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
am_urlfetch_OBJECTS = urlfetch.$(OBJEXT)
urlfetch_OBJECTS = $(am_urlfetch_OBJECTS)
urlfetch_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_xmlfetch_OBJECTS = xmlfetch.$(OBJEXT)
xmlfetch_OBJECTS = $(am_xmlfetch_OBJECTS)
xmlfetch_DEPENDENCIES = ../src/libccext2.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
DEFAULT_INCLUDES = -I.@am__isrc@ -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 = $(buffer_SOURCES) $(cmdlineopt_SOURCES) $(crc32_SOURCES) \
	$(dccpclient_SOURCES) $(dccpserver_SOURCES) $(dir_SOURCES) \
	$(keydump_SOURCES) $(netdevices_SOURCES) $(portsample_SOURCES) \
	$(serial_SOURCES) $(slogTest_SOURCES) $(str_SOURCES) \
	$(tcp_SOURCES) $(tcpservice_SOURCES) $(tcpthread_SOURCES) \
	$(testAlog_SOURCES) $(timer_SOURCES) $(urlfetch_SOURCES) \
	$(xmlfetch_SOURCES)
DIST_SOURCES = $(buffer_SOURCES) $(cmdlineopt_SOURCES) \
	$(crc32_SOURCES) $(dccpclient_SOURCES) $(dccpserver_SOURCES) \
	$(dir_SOURCES) $(keydump_SOURCES) $(netdevices_SOURCES) \
	$(portsample_SOURCES) $(serial_SOURCES) $(slogTest_SOURCES) \
	$(str_SOURCES) $(tcp_SOURCES) $(tcpservice_SOURCES) \
	$(tcpthread_SOURCES) $(testAlog_SOURCES) $(timer_SOURCES) \
	$(urlfetch_SOURCES) $(xmlfetch_SOURCES)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_LIB = @BASE_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CCXX_DIR = @CCXX_DIR@
CFLAGS = @CFLAGS@
COMMON_FLAGS = @COMMON_FLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPPUNIT_LIBS = @CPPUNIT_LIBS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYN_LOADER = @DYN_LOADER@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FTPDIR = @FTPDIR@
GETOPT_LIBS = @GETOPT_LIBS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
KDOC_DIR = @KDOC_DIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBGETOPTOBJS = @LIBGETOPTOBJS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAJOR = @LIB_MAJOR@
LIB_VERSION = @LIB_VERSION@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_CCXX_VERSION = @LT_CCXX_VERSION@
LT_MAJOR = @LT_MAJOR@
LT_MINOR = @LT_MINOR@
LT_RELEASE = @LT_RELEASE@
LT_SUBVER = @LT_SUBVER@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MODULE_FLAGS = @MODULE_FLAGS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PTHREAD_CC = @PTHREAD_CC@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHARED_FLAGS = @SHARED_FLAGS@
SHELL = @SHELL@
SOCKET_LIBS = @SOCKET_LIBS@
SSL_LIBS = @SSL_LIBS@
STAGE2 = @STAGE2@
STRIP = @STRIP@
THREAD_FLAGS = @THREAD_FLAGS@
THREAD_LIBS = @THREAD_LIBS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WINVERSION = @WINVERSION@
ZSTREAM_LIBS = @ZSTREAM_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
ccincludedir = @ccincludedir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
etc_confdir = @etc_confdir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
incprefix = @incprefix@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
ost_cv_dynloader = @ost_cv_dynloader@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
thrprefix = @thrprefix@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in Makefile
EXTRA_DIST = README test.xml Makefile.bcc
AM_CXXFLAGS = $(THREAD_FLAGS) @WARN_FLAGS@ -Wno-deprecated
INCLUDES = -I$(top_srcdir)/inc
LDADD = ../src/libccgnu2.la $(THREAD_LIBS) $(DYN_LOADER)
Z_LIBS = -lz
noinst_HEADERS = serialecho.h SampleSocketPort.h
urlfetch_SOURCES = urlfetch.cpp
urlfetch_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
xmlfetch_SOURCES = xmlfetch.cpp
xmlfetch_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
buffer_SOURCES = buffer.cpp
buffer_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
cmdlineopt_SOURCES = cmdlineopt.cpp
cmdlineopt_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
slogTest_SOURCES = slogTest.cpp
dir_SOURCES = dir.cpp
keydump_SOURCES = keydump.cpp
str_SOURCES = str.cpp
str_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
tcp_SOURCES = tcp.cpp
tcpthread_SOURCES = tcpthread.cpp
dccpclient_SOURCES = dccpclient.cpp
dccpserver_SOURCES = dccpserver.cpp
timer_SOURCES = timer.cpp
tcpservice_SOURCES = tcpservice.cpp
tcpservice_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
portsample_SOURCES = SampleSocketPort.cpp
portsample_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
netdevices_SOURCES = netdevices.cpp
netdevices_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
serial_SOURCES = serialmain.cpp serialecho.cpp
serial_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
crc32_SOURCES = crc32.cpp
crc32_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
testAlog_SOURCES = test_alog.cpp 
testAlog_LDADD = ../src/libccext2.la $(SSL_LIBS) $(XML_LIBS) $(Z_LIBS) $(LDADD)
all: all-am

.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 demo/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --gnu demo/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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
buffer$(EXEEXT): $(buffer_OBJECTS) $(buffer_DEPENDENCIES) 
	@rm -f buffer$(EXEEXT)
	$(CXXLINK) $(buffer_OBJECTS) $(buffer_LDADD) $(LIBS)
cmdlineopt$(EXEEXT): $(cmdlineopt_OBJECTS) $(cmdlineopt_DEPENDENCIES) 
	@rm -f cmdlineopt$(EXEEXT)
	$(CXXLINK) $(cmdlineopt_OBJECTS) $(cmdlineopt_LDADD) $(LIBS)
crc32$(EXEEXT): $(crc32_OBJECTS) $(crc32_DEPENDENCIES) 
	@rm -f crc32$(EXEEXT)
	$(CXXLINK) $(crc32_OBJECTS) $(crc32_LDADD) $(LIBS)
dccpclient$(EXEEXT): $(dccpclient_OBJECTS) $(dccpclient_DEPENDENCIES) 
	@rm -f dccpclient$(EXEEXT)
	$(CXXLINK) $(dccpclient_OBJECTS) $(dccpclient_LDADD) $(LIBS)
dccpserver$(EXEEXT): $(dccpserver_OBJECTS) $(dccpserver_DEPENDENCIES) 
	@rm -f dccpserver$(EXEEXT)
	$(CXXLINK) $(dccpserver_OBJECTS) $(dccpserver_LDADD) $(LIBS)
dir$(EXEEXT): $(dir_OBJECTS) $(dir_DEPENDENCIES) 
	@rm -f dir$(EXEEXT)
	$(CXXLINK) $(dir_OBJECTS) $(dir_LDADD) $(LIBS)
keydump$(EXEEXT): $(keydump_OBJECTS) $(keydump_DEPENDENCIES) 
	@rm -f keydump$(EXEEXT)
	$(CXXLINK) $(keydump_OBJECTS) $(keydump_LDADD) $(LIBS)
netdevices$(EXEEXT): $(netdevices_OBJECTS) $(netdevices_DEPENDENCIES) 
	@rm -f netdevices$(EXEEXT)
	$(CXXLINK) $(netdevices_OBJECTS) $(netdevices_LDADD) $(LIBS)
portsample$(EXEEXT): $(portsample_OBJECTS) $(portsample_DEPENDENCIES) 
	@rm -f portsample$(EXEEXT)
	$(CXXLINK) $(portsample_OBJECTS) $(portsample_LDADD) $(LIBS)
serial$(EXEEXT): $(serial_OBJECTS) $(serial_DEPENDENCIES) 
	@rm -f serial$(EXEEXT)
	$(CXXLINK) $(serial_OBJECTS) $(serial_LDADD) $(LIBS)
slogTest$(EXEEXT): $(slogTest_OBJECTS) $(slogTest_DEPENDENCIES) 
	@rm -f slogTest$(EXEEXT)
	$(CXXLINK) $(slogTest_OBJECTS) $(slogTest_LDADD) $(LIBS)
str$(EXEEXT): $(str_OBJECTS) $(str_DEPENDENCIES) 
	@rm -f str$(EXEEXT)
	$(CXXLINK) $(str_OBJECTS) $(str_LDADD) $(LIBS)
tcp$(EXEEXT): $(tcp_OBJECTS) $(tcp_DEPENDENCIES) 
	@rm -f tcp$(EXEEXT)
	$(CXXLINK) $(tcp_OBJECTS) $(tcp_LDADD) $(LIBS)
tcpservice$(EXEEXT): $(tcpservice_OBJECTS) $(tcpservice_DEPENDENCIES) 
	@rm -f tcpservice$(EXEEXT)
	$(CXXLINK) $(tcpservice_OBJECTS) $(tcpservice_LDADD) $(LIBS)
tcpthread$(EXEEXT): $(tcpthread_OBJECTS) $(tcpthread_DEPENDENCIES) 
	@rm -f tcpthread$(EXEEXT)
	$(CXXLINK) $(tcpthread_OBJECTS) $(tcpthread_LDADD) $(LIBS)
testAlog$(EXEEXT): $(testAlog_OBJECTS) $(testAlog_DEPENDENCIES) 
	@rm -f testAlog$(EXEEXT)
	$(CXXLINK) $(testAlog_OBJECTS) $(testAlog_LDADD) $(LIBS)
timer$(EXEEXT): $(timer_OBJECTS) $(timer_DEPENDENCIES) 
	@rm -f timer$(EXEEXT)
	$(CXXLINK) $(timer_OBJECTS) $(timer_LDADD) $(LIBS)
urlfetch$(EXEEXT): $(urlfetch_OBJECTS) $(urlfetch_DEPENDENCIES) 
	@rm -f urlfetch$(EXEEXT)
	$(CXXLINK) $(urlfetch_OBJECTS) $(urlfetch_LDADD) $(LIBS)
xmlfetch$(EXEEXT): $(xmlfetch_OBJECTS) $(xmlfetch_DEPENDENCIES) 
	@rm -f xmlfetch$(EXEEXT)
	$(CXXLINK) $(xmlfetch_OBJECTS) $(xmlfetch_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SampleSocketPort.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdlineopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dccpclient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dccpserver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keydump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netdevices.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serialecho.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serialmain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slogTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpservice.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpthread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_alog.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/urlfetch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlfetch.Po@am__quote@

.cpp.o:
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<

.cpp.obj:
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

.cpp.lo:
@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(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:
