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

# GLIB - Library of useful C routines

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@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
	$(top_srcdir)/Makefile.decl
noinst_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
@OS_UNIX_TRUE@am__append_1 = live-g-file unix-streams desktop-app-info unix-fd
subdir = gio/tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
	$(top_srcdir)/acglib.m4 \
	$(top_srcdir)/glib/libcharset/codeset.m4 \
	$(top_srcdir)/glib/libcharset/glibc21.m4 \
	$(top_srcdir)/m4macros/glib-gettext.m4 \
	$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
@OS_UNIX_TRUE@am__EXEEXT_1 = live-g-file$(EXEEXT) \
@OS_UNIX_TRUE@	unix-streams$(EXEEXT) desktop-app-info$(EXEEXT) \
@OS_UNIX_TRUE@	unix-fd$(EXEEXT)
am__EXEEXT_2 = memory-input-stream$(EXEEXT) \
	memory-output-stream$(EXEEXT) readwrite$(EXEEXT) \
	g-file$(EXEEXT) g-file-info$(EXEEXT) converter-stream$(EXEEXT) \
	data-input-stream$(EXEEXT) data-output-stream$(EXEEXT) \
	g-icon$(EXEEXT) buffered-input-stream$(EXEEXT) \
	sleepy-stream$(EXEEXT) filter-streams$(EXEEXT) \
	simple-async-result$(EXEEXT) srvtarget$(EXEEXT) \
	contexts$(EXEEXT) $(am__EXEEXT_1)
am__EXEEXT_3 = resolver$(EXEEXT) socket-server$(EXEEXT) \
	socket-client$(EXEEXT) echo-server$(EXEEXT) httpd$(EXEEXT) \
	send-data$(EXEEXT) filter-cat$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am_buffered_input_stream_OBJECTS = buffered-input-stream.$(OBJEXT)
buffered_input_stream_OBJECTS = $(am_buffered_input_stream_OBJECTS)
buffered_input_stream_DEPENDENCIES = $(progs_ldadd)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
am_contexts_OBJECTS = contexts.$(OBJEXT)
contexts_OBJECTS = $(am_contexts_OBJECTS)
contexts_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_converter_stream_OBJECTS = converter-stream.$(OBJEXT)
converter_stream_OBJECTS = $(am_converter_stream_OBJECTS)
converter_stream_DEPENDENCIES = $(progs_ldadd)
am_data_input_stream_OBJECTS = data-input-stream.$(OBJEXT)
data_input_stream_OBJECTS = $(am_data_input_stream_OBJECTS)
data_input_stream_DEPENDENCIES = $(progs_ldadd)
am_data_output_stream_OBJECTS = data-output-stream.$(OBJEXT)
data_output_stream_OBJECTS = $(am_data_output_stream_OBJECTS)
data_output_stream_DEPENDENCIES = $(progs_ldadd)
am_desktop_app_info_OBJECTS = desktop-app-info.$(OBJEXT)
desktop_app_info_OBJECTS = $(am_desktop_app_info_OBJECTS)
desktop_app_info_DEPENDENCIES = $(progs_ldadd)
am_echo_server_OBJECTS = echo-server.$(OBJEXT)
echo_server_OBJECTS = $(am_echo_server_OBJECTS)
echo_server_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_filter_cat_OBJECTS = filter-cat.$(OBJEXT)
filter_cat_OBJECTS = $(am_filter_cat_OBJECTS)
filter_cat_DEPENDENCIES = $(progs_ldadd)
am_filter_streams_OBJECTS = filter-streams.$(OBJEXT)
filter_streams_OBJECTS = $(am_filter_streams_OBJECTS)
filter_streams_DEPENDENCIES = $(progs_ldadd)
am_g_file_OBJECTS = g-file.$(OBJEXT)
g_file_OBJECTS = $(am_g_file_OBJECTS)
g_file_DEPENDENCIES = $(progs_ldadd)
am_g_file_info_OBJECTS = g-file-info.$(OBJEXT)
g_file_info_OBJECTS = $(am_g_file_info_OBJECTS)
g_file_info_DEPENDENCIES = $(progs_ldadd)
am_g_icon_OBJECTS = g-icon.$(OBJEXT)
g_icon_OBJECTS = $(am_g_icon_OBJECTS)
g_icon_DEPENDENCIES = $(progs_ldadd)
am_httpd_OBJECTS = httpd.$(OBJEXT)
httpd_OBJECTS = $(am_httpd_OBJECTS)
httpd_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_live_g_file_OBJECTS = live-g-file.$(OBJEXT)
live_g_file_OBJECTS = $(am_live_g_file_OBJECTS)
live_g_file_DEPENDENCIES = $(progs_ldadd)
am_memory_input_stream_OBJECTS = memory-input-stream.$(OBJEXT)
memory_input_stream_OBJECTS = $(am_memory_input_stream_OBJECTS)
memory_input_stream_DEPENDENCIES = $(progs_ldadd)
am_memory_output_stream_OBJECTS = memory-output-stream.$(OBJEXT)
memory_output_stream_OBJECTS = $(am_memory_output_stream_OBJECTS)
memory_output_stream_DEPENDENCIES = $(progs_ldadd)
am_readwrite_OBJECTS = readwrite.$(OBJEXT)
readwrite_OBJECTS = $(am_readwrite_OBJECTS)
readwrite_DEPENDENCIES = $(progs_ldadd)
am_resolver_OBJECTS = resolver.$(OBJEXT)
resolver_OBJECTS = $(am_resolver_OBJECTS)
resolver_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_send_data_OBJECTS = send-data.$(OBJEXT)
send_data_OBJECTS = $(am_send_data_OBJECTS)
send_data_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_simple_async_result_OBJECTS = simple-async-result.$(OBJEXT)
simple_async_result_OBJECTS = $(am_simple_async_result_OBJECTS)
simple_async_result_DEPENDENCIES = $(progs_ldadd)
am_sleepy_stream_OBJECTS = sleepy-stream.$(OBJEXT)
sleepy_stream_OBJECTS = $(am_sleepy_stream_OBJECTS)
sleepy_stream_DEPENDENCIES = $(progs_ldadd)
am_socket_client_OBJECTS = socket-client.$(OBJEXT)
socket_client_OBJECTS = $(am_socket_client_OBJECTS)
socket_client_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_socket_server_OBJECTS = socket-server.$(OBJEXT)
socket_server_OBJECTS = $(am_socket_server_OBJECTS)
socket_server_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
am_srvtarget_OBJECTS = srvtarget.$(OBJEXT)
srvtarget_OBJECTS = $(am_srvtarget_OBJECTS)
srvtarget_DEPENDENCIES = $(progs_ldadd)
am_unix_fd_OBJECTS = unix-fd.$(OBJEXT)
unix_fd_OBJECTS = $(am_unix_fd_OBJECTS)
unix_fd_DEPENDENCIES = $(progs_ldadd)
am_unix_streams_OBJECTS = unix-streams.$(OBJEXT)
unix_streams_OBJECTS = $(am_unix_streams_OBJECTS)
unix_streams_DEPENDENCIES = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo "  CC    " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo "  CCLD  " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(buffered_input_stream_SOURCES) $(contexts_SOURCES) \
	$(converter_stream_SOURCES) $(data_input_stream_SOURCES) \
	$(data_output_stream_SOURCES) $(desktop_app_info_SOURCES) \
	$(echo_server_SOURCES) $(filter_cat_SOURCES) \
	$(filter_streams_SOURCES) $(g_file_SOURCES) \
	$(g_file_info_SOURCES) $(g_icon_SOURCES) $(httpd_SOURCES) \
	$(live_g_file_SOURCES) $(memory_input_stream_SOURCES) \
	$(memory_output_stream_SOURCES) $(readwrite_SOURCES) \
	$(resolver_SOURCES) $(send_data_SOURCES) \
	$(simple_async_result_SOURCES) $(sleepy_stream_SOURCES) \
	$(socket_client_SOURCES) $(socket_server_SOURCES) \
	$(srvtarget_SOURCES) $(unix_fd_SOURCES) \
	$(unix_streams_SOURCES)
DIST_SOURCES = $(buffered_input_stream_SOURCES) $(contexts_SOURCES) \
	$(converter_stream_SOURCES) $(data_input_stream_SOURCES) \
	$(data_output_stream_SOURCES) $(desktop_app_info_SOURCES) \
	$(echo_server_SOURCES) $(filter_cat_SOURCES) \
	$(filter_streams_SOURCES) $(g_file_SOURCES) \
	$(g_file_info_SOURCES) $(g_icon_SOURCES) $(httpd_SOURCES) \
	$(live_g_file_SOURCES) $(memory_input_stream_SOURCES) \
	$(memory_output_stream_SOURCES) $(readwrite_SOURCES) \
	$(resolver_SOURCES) $(send_data_SOURCES) \
	$(simple_async_result_SOURCES) $(sleepy_stream_SOURCES) \
	$(socket_client_SOURCES) $(socket_server_SOURCES) \
	$(srvtarget_SOURCES) $(unix_fd_SOURCES) \
	$(unix_streams_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ABS_GLIB_RUNTIME_LIBDIR = @ABS_GLIB_RUNTIME_LIBDIR@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FAM_LIBS = @FAM_LIBS@
FGREP = @FGREP@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GIO = @GIO@
GIO_MODULE_DIR = @GIO_MODULE_DIR@
GLIBC21 = @GLIBC21@
GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
GLIB_RUNTIME_LIBDIR = @GLIB_RUNTIME_LIBDIR@
GLIB_VERSION = @GLIB_VERSION@
GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
GSPAWN = @GSPAWN@
GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
GTKDOC_REBASE = @GTKDOC_REBASE@
G_LIBS_EXTRA = @G_LIBS_EXTRA@
G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@
G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
G_MODULE_IMPL = @G_MODULE_IMPL@
G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
G_MODULE_LIBS = @G_MODULE_LIBS@
G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@
G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@
G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@
G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
G_THREAD_LIBS = @G_THREAD_LIBS@
G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@
G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@
HTML_DIR = @HTML_DIR@
ICONV_LIBS = @ICONV_LIBS@
INDENT = @INDENT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASYNCNS_LIBADD = @LIBASYNCNS_LIBADD@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@
LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
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@
PCRE_CFLAGS = @PCRE_CFLAGS@
PCRE_LIBS = @PCRE_LIBS@
PCRE_REQUIRES = @PCRE_REQUIRES@
PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@
PERL = @PERL@
PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMDEP = @PLATFORMDEP@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
PYTHON = @PYTHON@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
REBUILD = @REBUILD@
SED = @SED@
SELINUX_LIBS = @SELINUX_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WINDRES = @WINDRES@
XATTR_LIBS = @XATTR_LIBS@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@
XML_CATALOG_FILE = @XML_CATALOG_FILE@
XSLTPROC = @XSLTPROC@
ZLIB_LIBS = @ZLIB_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
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@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
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@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

#GTESTER = gtester 			# for non-GLIB packages
GTESTER = $(top_builddir)/glib/gtester			# for the GLIB package
GTESTER_REPORT = $(top_builddir)/glib/gtester-report	# for the GLIB package

# initialize variables for unconditional += appending
EXTRA_DIST = 
TEST_PROGS = memory-input-stream memory-output-stream readwrite g-file \
	g-file-info converter-stream data-input-stream \
	data-output-stream g-icon buffered-input-stream sleepy-stream \
	filter-streams simple-async-result srvtarget contexts \
	$(am__append_1)
INCLUDES = \
	-g 			\
	-I$(top_srcdir) 	\
	-I$(top_srcdir)/glib 	\
	-I$(top_srcdir)/gmodule	\
	-I$(top_srcdir)/gobject	\
	-I$(top_srcdir)/gio 	\
	$(GLIB_DEBUG_FLAGS)	\
	-DSRCDIR=\""$(srcdir)"\"

progs_ldadd = \
	$(top_builddir)/glib/libglib-2.0.la 		\
	$(top_builddir)/gobject/libgobject-2.0.la	\
	$(top_builddir)/gio/libgio-2.0.la

SAMPLE_PROGS = \
	resolver		\
	socket-server		\
	socket-client		\
	echo-server		\
	httpd			\
	send-data		\
	filter-cat

memory_input_stream_SOURCES = memory-input-stream.c
memory_input_stream_LDADD = $(progs_ldadd)
memory_output_stream_SOURCES = memory-output-stream.c
memory_output_stream_LDADD = $(progs_ldadd)
g_file_SOURCES = g-file.c
g_file_LDADD = $(progs_ldadd)
readwrite_SOURCES = readwrite.c
readwrite_LDADD = $(progs_ldadd)
g_file_info_SOURCES = g-file-info.c
g_file_info_LDADD = $(progs_ldadd)
converter_stream_SOURCES = converter-stream.c
converter_stream_LDADD = $(progs_ldadd)
data_input_stream_SOURCES = data-input-stream.c
data_input_stream_LDADD = $(progs_ldadd)
data_output_stream_SOURCES = data-output-stream.c
data_output_stream_LDADD = $(progs_ldadd)
filter_cat_SOURCES = filter-cat.c
filter_cat_LDADD = $(progs_ldadd)
g_icon_SOURCES = g-icon.c
g_icon_LDADD = $(progs_ldadd)
buffered_input_stream_SOURCES = buffered-input-stream.c
buffered_input_stream_LDADD = $(progs_ldadd)
live_g_file_SOURCES = live-g-file.c
live_g_file_LDADD = $(progs_ldadd)
desktop_app_info_SOURCES = desktop-app-info.c
desktop_app_info_LDADD = $(progs_ldadd)
unix_streams_SOURCES = unix-streams.c
unix_streams_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

unix_fd_SOURCES = unix-fd.c
unix_fd_LDADD = $(progs_ldadd)
simple_async_result_SOURCES = simple-async-result.c
simple_async_result_LDADD = $(progs_ldadd)
sleepy_stream_SOURCES = sleepy-stream.c
sleepy_stream_LDADD = $(progs_ldadd)
filter_streams_SOURCES = filter-streams.c
filter_streams_LDADD = $(progs_ldadd)
resolver_SOURCES = resolver.c
resolver_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

socket_server_SOURCES = socket-server.c
socket_server_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

socket_client_SOURCES = socket-client.c
socket_client_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

echo_server_SOURCES = echo-server.c
echo_server_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

httpd_SOURCES = httpd.c
httpd_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

send_data_SOURCES = send-data.c
send_data_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

srvtarget_SOURCES = srvtarget.c
srvtarget_LDADD = $(progs_ldadd)
contexts_SOURCES = contexts.c
contexts_LDADD = $(progs_ldadd) \
	$(top_builddir)/gthread/libgthread-2.0.la

DISTCLEAN_FILES = applications/mimeinfo.cache
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(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 gio/tests/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --gnu gio/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: @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
buffered-input-stream$(EXEEXT): $(buffered_input_stream_OBJECTS) $(buffered_input_stream_DEPENDENCIES) 
	@rm -f buffered-input-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(buffered_input_stream_OBJECTS) $(buffered_input_stream_LDADD) $(LIBS)
contexts$(EXEEXT): $(contexts_OBJECTS) $(contexts_DEPENDENCIES) 
	@rm -f contexts$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(contexts_OBJECTS) $(contexts_LDADD) $(LIBS)
converter-stream$(EXEEXT): $(converter_stream_OBJECTS) $(converter_stream_DEPENDENCIES) 
	@rm -f converter-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(converter_stream_OBJECTS) $(converter_stream_LDADD) $(LIBS)
data-input-stream$(EXEEXT): $(data_input_stream_OBJECTS) $(data_input_stream_DEPENDENCIES) 
	@rm -f data-input-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(data_input_stream_OBJECTS) $(data_input_stream_LDADD) $(LIBS)
data-output-stream$(EXEEXT): $(data_output_stream_OBJECTS) $(data_output_stream_DEPENDENCIES) 
	@rm -f data-output-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(data_output_stream_OBJECTS) $(data_output_stream_LDADD) $(LIBS)
desktop-app-info$(EXEEXT): $(desktop_app_info_OBJECTS) $(desktop_app_info_DEPENDENCIES) 
	@rm -f desktop-app-info$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(desktop_app_info_OBJECTS) $(desktop_app_info_LDADD) $(LIBS)
echo-server$(EXEEXT): $(echo_server_OBJECTS) $(echo_server_DEPENDENCIES) 
	@rm -f echo-server$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(echo_server_OBJECTS) $(echo_server_LDADD) $(LIBS)
filter-cat$(EXEEXT): $(filter_cat_OBJECTS) $(filter_cat_DEPENDENCIES) 
	@rm -f filter-cat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(filter_cat_OBJECTS) $(filter_cat_LDADD) $(LIBS)
filter-streams$(EXEEXT): $(filter_streams_OBJECTS) $(filter_streams_DEPENDENCIES) 
	@rm -f filter-streams$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(filter_streams_OBJECTS) $(filter_streams_LDADD) $(LIBS)
g-file$(EXEEXT): $(g_file_OBJECTS) $(g_file_DEPENDENCIES) 
	@rm -f g-file$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(g_file_OBJECTS) $(g_file_LDADD) $(LIBS)
g-file-info$(EXEEXT): $(g_file_info_OBJECTS) $(g_file_info_DEPENDENCIES) 
	@rm -f g-file-info$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(g_file_info_OBJECTS) $(g_file_info_LDADD) $(LIBS)
g-icon$(EXEEXT): $(g_icon_OBJECTS) $(g_icon_DEPENDENCIES) 
	@rm -f g-icon$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(g_icon_OBJECTS) $(g_icon_LDADD) $(LIBS)
httpd$(EXEEXT): $(httpd_OBJECTS) $(httpd_DEPENDENCIES) 
	@rm -f httpd$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(httpd_OBJECTS) $(httpd_LDADD) $(LIBS)
live-g-file$(EXEEXT): $(live_g_file_OBJECTS) $(live_g_file_DEPENDENCIES) 
	@rm -f live-g-file$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(live_g_file_OBJECTS) $(live_g_file_LDADD) $(LIBS)
memory-input-stream$(EXEEXT): $(memory_input_stream_OBJECTS) $(memory_input_stream_DEPENDENCIES) 
	@rm -f memory-input-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(memory_input_stream_OBJECTS) $(memory_input_stream_LDADD) $(LIBS)
memory-output-stream$(EXEEXT): $(memory_output_stream_OBJECTS) $(memory_output_stream_DEPENDENCIES) 
	@rm -f memory-output-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(memory_output_stream_OBJECTS) $(memory_output_stream_LDADD) $(LIBS)
readwrite$(EXEEXT): $(readwrite_OBJECTS) $(readwrite_DEPENDENCIES) 
	@rm -f readwrite$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(readwrite_OBJECTS) $(readwrite_LDADD) $(LIBS)
resolver$(EXEEXT): $(resolver_OBJECTS) $(resolver_DEPENDENCIES) 
	@rm -f resolver$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(resolver_OBJECTS) $(resolver_LDADD) $(LIBS)
send-data$(EXEEXT): $(send_data_OBJECTS) $(send_data_DEPENDENCIES) 
	@rm -f send-data$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(send_data_OBJECTS) $(send_data_LDADD) $(LIBS)
simple-async-result$(EXEEXT): $(simple_async_result_OBJECTS) $(simple_async_result_DEPENDENCIES) 
	@rm -f simple-async-result$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(simple_async_result_OBJECTS) $(simple_async_result_LDADD) $(LIBS)
sleepy-stream$(EXEEXT): $(sleepy_stream_OBJECTS) $(sleepy_stream_DEPENDENCIES) 
	@rm -f sleepy-stream$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(sleepy_stream_OBJECTS) $(sleepy_stream_LDADD) $(LIBS)
socket-client$(EXEEXT): $(socket_client_OBJECTS) $(socket_client_DEPENDENCIES) 
	@rm -f socket-client$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(socket_client_OBJECTS) $(socket_client_LDADD) $(LIBS)
socket-server$(EXEEXT): $(socket_server_OBJECTS) $(socket_server_DEPENDENCIES) 
	@rm -f socket-server$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(socket_server_OBJECTS) $(socket_server_LDADD) $(LIBS)
srvtarget$(EXEEXT): $(srvtarget_OBJECTS) $(srvtarget_DEPENDENCIES) 
	@rm -f srvtarget$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(srvtarget_OBJECTS) $(srvtarget_LDADD) $(LIBS)
unix-fd$(EXEEXT): $(unix_fd_OBJECTS) $(unix_fd_DEPENDENCIES) 
	@rm -f unix-fd$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unix_fd_OBJECTS) $(unix_fd_LDADD) $(LIBS)
unix-streams$(EXEEXT): $(unix_streams_OBJECTS) $(unix_streams_DEPENDENCIES) 
	@rm -f unix-streams$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unix_streams_OBJECTS) $(unix_streams_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffered-input-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contexts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/converter-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-input-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-output-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desktop-app-info.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/echo-server.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-cat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-streams.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g-file-info.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g-file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g-icon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/live-g-file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory-input-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory-output-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readwrite.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resolver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send-data.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-async-result.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleepy-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket-client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket-server.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srvtarget.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-fd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-streams.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c $<

.c.obj:
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`

.c.lo:
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(LTCOMPILE) -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
	$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(PROGRAMS)
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."
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: check-am install-am install-strip

.PHONY: CTAGS GTAGS all all-am check check-am check-local 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


### testing rules

# test: run all tests in cwd and subdirs
test:	${TEST_PROGS}
@OS_UNIX_TRUE@	@test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
@OS_UNIX_TRUE@	@ for subdir in $(SUBDIRS) . ; do \
@OS_UNIX_TRUE@	    test "$$subdir" = "." -o "$$subdir" = "po" || \
@OS_UNIX_TRUE@	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
@OS_UNIX_TRUE@	  done

# test-report: run tests in subdirs and generate report
# perf-report: run tests in subdirs with -m perf and generate report
# full-report: like test-report: with -m perf and -m slow
test-report perf-report full-report:	${TEST_PROGS}
	@test -z "${TEST_PROGS}" || { \
	  case $@ in \
	  test-report) test_options="-k";; \
	  perf-report) test_options="-k -m=perf";; \
	  full-report) test_options="-k -m=perf -m=slow";; \
	  esac ; \
	  if test -z "$$GTESTER_LOGDIR" ; then	\
	    ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
	  elif test -n "${TEST_PROGS}" ; then \
	    ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
	  fi ; \
	}
	@ ignore_logdir=true ; \
	  if test -z "$$GTESTER_LOGDIR" ; then \
	    GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
	    ignore_logdir=false ; \
	  fi ; \
	  for subdir in $(SUBDIRS) . ; do \
	    test "$$subdir" = "." -o "$$subdir" = "po" || \
	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
	  done ; \
	  $$ignore_logdir || { \
	    echo '<?xml version="1.0"?>' > $@.xml ; \
	    echo '<report-collection>'  >> $@.xml ; \
	    for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
	      sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
	    done ; \
	    echo >> $@.xml ; \
	    echo '</report-collection>' >> $@.xml ; \
	    rm -rf "$$GTESTER_LOGDIR"/ ; \
	    ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
	  }
.PHONY: test test-report perf-report full-report
# run make test as part of make check
check-local: test

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