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

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@

VPATH = @srcdir@
am__make_dryrun = \
  { \
    am__dry=no; \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
      *) \
        for am__flg in $$MAKEFLAGS; do \
          case $$am__flg in \
            *=*|--*) ;; \
            *n*) am__dry=yes; break;; \
          esac; \
        done;; \
    esac; \
    test $$am__dry = yes; \
  }
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@
@HAVE_GTK_TRUE@noinst_PROGRAMS = $(am__EXEEXT_1)
subdir = demos
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(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 =
@HAVE_GTK_TRUE@am__EXEEXT_1 = clip-test$(EXEEXT) clip-in$(EXEEXT) \
@HAVE_GTK_TRUE@	composite-test$(EXEEXT) gradient-test$(EXEEXT) \
@HAVE_GTK_TRUE@	radial-test$(EXEEXT) linear-gradient$(EXEEXT) \
@HAVE_GTK_TRUE@	conical-test$(EXEEXT) alpha-test$(EXEEXT) \
@HAVE_GTK_TRUE@	screen-test$(EXEEXT) convolution-test$(EXEEXT) \
@HAVE_GTK_TRUE@	trap-test$(EXEEXT) tri-test$(EXEEXT) \
@HAVE_GTK_TRUE@	quad2quad$(EXEEXT) checkerboard$(EXEEXT) \
@HAVE_GTK_TRUE@	srgb-trap-test$(EXEEXT) srgb-test$(EXEEXT) \
@HAVE_GTK_TRUE@	scale$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am__alpha_test_SOURCES_DIST = alpha-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am__objects_1 = gtk-utils.$(OBJEXT) utils.$(OBJEXT) \
@HAVE_GTK_TRUE@	utils-prng.$(OBJEXT)
@HAVE_GTK_TRUE@am_alpha_test_OBJECTS = alpha-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
alpha_test_OBJECTS = $(am_alpha_test_OBJECTS)
alpha_test_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
@HAVE_GTK_TRUE@alpha_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__checkerboard_SOURCES_DIST = checkerboard.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_checkerboard_OBJECTS = checkerboard.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
checkerboard_OBJECTS = $(am_checkerboard_OBJECTS)
checkerboard_LDADD = $(LDADD)
@HAVE_GTK_TRUE@checkerboard_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__clip_in_SOURCES_DIST = clip-in.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_clip_in_OBJECTS = clip-in.$(OBJEXT) $(am__objects_1)
clip_in_OBJECTS = $(am_clip_in_OBJECTS)
clip_in_LDADD = $(LDADD)
@HAVE_GTK_TRUE@clip_in_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__clip_test_SOURCES_DIST = clip-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_clip_test_OBJECTS = clip-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
clip_test_OBJECTS = $(am_clip_test_OBJECTS)
clip_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@clip_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__composite_test_SOURCES_DIST = composite-test.c gtk-utils.c \
	gtk-utils.h ../test/utils.c ../test/utils.h \
	../test/utils-prng.c ../test/utils-prng.h
@HAVE_GTK_TRUE@am_composite_test_OBJECTS = composite-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
composite_test_OBJECTS = $(am_composite_test_OBJECTS)
composite_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@composite_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__conical_test_SOURCES_DIST = conical-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_conical_test_OBJECTS = conical-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
conical_test_OBJECTS = $(am_conical_test_OBJECTS)
conical_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@conical_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__convolution_test_SOURCES_DIST = convolution-test.c gtk-utils.c \
	gtk-utils.h ../test/utils.c ../test/utils.h \
	../test/utils-prng.c ../test/utils-prng.h
@HAVE_GTK_TRUE@am_convolution_test_OBJECTS =  \
@HAVE_GTK_TRUE@	convolution-test.$(OBJEXT) $(am__objects_1)
convolution_test_OBJECTS = $(am_convolution_test_OBJECTS)
convolution_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@convolution_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__gradient_test_SOURCES_DIST = gradient-test.c gtk-utils.c \
	gtk-utils.h ../test/utils.c ../test/utils.h \
	../test/utils-prng.c ../test/utils-prng.h
@HAVE_GTK_TRUE@am_gradient_test_OBJECTS = gradient-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
gradient_test_OBJECTS = $(am_gradient_test_OBJECTS)
gradient_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@gradient_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__linear_gradient_SOURCES_DIST = linear-gradient.c gtk-utils.c \
	gtk-utils.h ../test/utils.c ../test/utils.h \
	../test/utils-prng.c ../test/utils-prng.h
@HAVE_GTK_TRUE@am_linear_gradient_OBJECTS = linear-gradient.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
linear_gradient_OBJECTS = $(am_linear_gradient_OBJECTS)
linear_gradient_LDADD = $(LDADD)
@HAVE_GTK_TRUE@linear_gradient_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
quad2quad_SOURCES = quad2quad.c
quad2quad_OBJECTS = quad2quad.$(OBJEXT)
quad2quad_LDADD = $(LDADD)
@HAVE_GTK_TRUE@quad2quad_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__radial_test_SOURCES_DIST = radial-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_radial_test_OBJECTS = radial-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
radial_test_OBJECTS = $(am_radial_test_OBJECTS)
radial_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@radial_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__scale_SOURCES_DIST = scale.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_scale_OBJECTS = scale.$(OBJEXT) $(am__objects_1)
scale_OBJECTS = $(am_scale_OBJECTS)
scale_LDADD = $(LDADD)
@HAVE_GTK_TRUE@scale_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__screen_test_SOURCES_DIST = screen-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_screen_test_OBJECTS = screen-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
screen_test_OBJECTS = $(am_screen_test_OBJECTS)
screen_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@screen_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__srgb_test_SOURCES_DIST = srgb-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_srgb_test_OBJECTS = srgb-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
srgb_test_OBJECTS = $(am_srgb_test_OBJECTS)
srgb_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@srgb_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__srgb_trap_test_SOURCES_DIST = srgb-trap-test.c gtk-utils.c \
	gtk-utils.h ../test/utils.c ../test/utils.h \
	../test/utils-prng.c ../test/utils-prng.h
@HAVE_GTK_TRUE@am_srgb_trap_test_OBJECTS = srgb-trap-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
srgb_trap_test_OBJECTS = $(am_srgb_trap_test_OBJECTS)
srgb_trap_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@srgb_trap_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__trap_test_SOURCES_DIST = trap-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_trap_test_OBJECTS = trap-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
trap_test_OBJECTS = $(am_trap_test_OBJECTS)
trap_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@trap_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__tri_test_SOURCES_DIST = tri-test.c gtk-utils.c gtk-utils.h \
	../test/utils.c ../test/utils.h ../test/utils-prng.c \
	../test/utils-prng.h
@HAVE_GTK_TRUE@am_tri_test_OBJECTS = tri-test.$(OBJEXT) \
@HAVE_GTK_TRUE@	$(am__objects_1)
tri_test_OBJECTS = $(am_tri_test_OBJECTS)
tri_test_LDADD = $(LDADD)
@HAVE_GTK_TRUE@tri_test_DEPENDENCIES =  \
@HAVE_GTK_TRUE@	$(top_builddir)/pixman/libpixman-1.la \
@HAVE_GTK_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
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_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo "  CC    " $@;
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
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_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD  " $@;
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(alpha_test_SOURCES) $(checkerboard_SOURCES) \
	$(clip_in_SOURCES) $(clip_test_SOURCES) \
	$(composite_test_SOURCES) $(conical_test_SOURCES) \
	$(convolution_test_SOURCES) $(gradient_test_SOURCES) \
	$(linear_gradient_SOURCES) quad2quad.c $(radial_test_SOURCES) \
	$(scale_SOURCES) $(screen_test_SOURCES) $(srgb_test_SOURCES) \
	$(srgb_trap_test_SOURCES) $(trap_test_SOURCES) \
	$(tri_test_SOURCES)
DIST_SOURCES = $(am__alpha_test_SOURCES_DIST) \
	$(am__checkerboard_SOURCES_DIST) $(am__clip_in_SOURCES_DIST) \
	$(am__clip_test_SOURCES_DIST) \
	$(am__composite_test_SOURCES_DIST) \
	$(am__conical_test_SOURCES_DIST) \
	$(am__convolution_test_SOURCES_DIST) \
	$(am__gradient_test_SOURCES_DIST) \
	$(am__linear_gradient_SOURCES_DIST) quad2quad.c \
	$(am__radial_test_SOURCES_DIST) $(am__scale_SOURCES_DIST) \
	$(am__screen_test_SOURCES_DIST) $(am__srgb_test_SOURCES_DIST) \
	$(am__srgb_trap_test_SOURCES_DIST) \
	$(am__trap_test_SOURCES_DIST) $(am__tri_test_SOURCES_DIST)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
HAVE_LIBPNG = @HAVE_LIBPNG@
HAVE_PTHREAD_SETSPECIFIC = @HAVE_PTHREAD_SETSPECIFIC@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IWMMXT_CFLAGS = @IWMMXT_CFLAGS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LS_CFLAGS = @LS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
LT_VERSION_INFO = @LT_VERSION_INFO@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MMX_CFLAGS = @MMX_CFLAGS@
MMX_LDFLAGS = @MMX_LDFLAGS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
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@
PIXMAN_TIMERS = @PIXMAN_TIMERS@
PIXMAN_VERSION_MAJOR = @PIXMAN_VERSION_MAJOR@
PIXMAN_VERSION_MICRO = @PIXMAN_VERSION_MICRO@
PIXMAN_VERSION_MINOR = @PIXMAN_VERSION_MINOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PNG_CFLAGS = @PNG_CFLAGS@
PNG_LIBS = @PNG_LIBS@
PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSE2_CFLAGS = @SSE2_CFLAGS@
SSE2_LDFLAGS = @SSE2_LDFLAGS@
STRIP = @STRIP@
TESTPROGS_EXTRA_LDFLAGS = @TESTPROGS_EXTRA_LDFLAGS@
TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR = @TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR@
TOOLCHAIN_SUPPORTS__THREAD = @TOOLCHAIN_SUPPORTS__THREAD@
VERSION = @VERSION@
VMX_CFLAGS = @VMX_CFLAGS@
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_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@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
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@
@HAVE_GTK_TRUE@AM_CFLAGS = $(OPENMP_CFLAGS)
@HAVE_GTK_TRUE@AM_LDFLAGS = $(OPENMP_CFLAGS)
@HAVE_GTK_TRUE@LDADD = $(top_builddir)/pixman/libpixman-1.la -lm $(GTK_LIBS) $(PNG_LIBS)
@HAVE_GTK_TRUE@AM_CPPFLAGS = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(GTK_CFLAGS) $(PNG_CFLAGS)
@HAVE_GTK_TRUE@GTK_UTILS = gtk-utils.c gtk-utils.h ../test/utils.c ../test/utils.h \
@HAVE_GTK_TRUE@            ../test/utils-prng.c ../test/utils-prng.h

@HAVE_GTK_TRUE@DEMOS = \
@HAVE_GTK_TRUE@	clip-test		\
@HAVE_GTK_TRUE@	clip-in			\
@HAVE_GTK_TRUE@	composite-test		\
@HAVE_GTK_TRUE@	gradient-test		\
@HAVE_GTK_TRUE@	radial-test		\
@HAVE_GTK_TRUE@	linear-gradient		\
@HAVE_GTK_TRUE@	conical-test		\
@HAVE_GTK_TRUE@	alpha-test		\
@HAVE_GTK_TRUE@	screen-test		\
@HAVE_GTK_TRUE@	convolution-test	\
@HAVE_GTK_TRUE@	trap-test		\
@HAVE_GTK_TRUE@	tri-test		\
@HAVE_GTK_TRUE@	quad2quad		\
@HAVE_GTK_TRUE@	checkerboard		\
@HAVE_GTK_TRUE@	srgb-trap-test		\
@HAVE_GTK_TRUE@	srgb-test		\
@HAVE_GTK_TRUE@	scale

@HAVE_GTK_TRUE@EXTRA_DIST = parrot.c parrot.jpg scale.ui
@HAVE_GTK_TRUE@gradient_test_SOURCES = gradient-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@alpha_test_SOURCES = alpha-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@composite_test_SOURCES = composite-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@clip_test_SOURCES = clip-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@clip_in_SOURCES = clip-in.c $(GTK_UTILS)
@HAVE_GTK_TRUE@trap_test_SOURCES = trap-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@screen_test_SOURCES = screen-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@convolution_test_SOURCES = convolution-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@radial_test_SOURCES = radial-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@linear_gradient_SOURCES = linear-gradient.c $(GTK_UTILS)
@HAVE_GTK_TRUE@conical_test_SOURCES = conical-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@tri_test_SOURCES = tri-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@checkerboard_SOURCES = checkerboard.c $(GTK_UTILS)
@HAVE_GTK_TRUE@srgb_test_SOURCES = srgb-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@srgb_trap_test_SOURCES = srgb-trap-test.c $(GTK_UTILS)
@HAVE_GTK_TRUE@scale_SOURCES = scale.c $(GTK_UTILS)
all: all-am

.SUFFIXES:
.SUFFIXES: .c .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) --foreign demos/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign demos/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
alpha-test$(EXEEXT): $(alpha_test_OBJECTS) $(alpha_test_DEPENDENCIES) $(EXTRA_alpha_test_DEPENDENCIES) 
	@rm -f alpha-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(alpha_test_OBJECTS) $(alpha_test_LDADD) $(LIBS)
checkerboard$(EXEEXT): $(checkerboard_OBJECTS) $(checkerboard_DEPENDENCIES) $(EXTRA_checkerboard_DEPENDENCIES) 
	@rm -f checkerboard$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(checkerboard_OBJECTS) $(checkerboard_LDADD) $(LIBS)
clip-in$(EXEEXT): $(clip_in_OBJECTS) $(clip_in_DEPENDENCIES) $(EXTRA_clip_in_DEPENDENCIES) 
	@rm -f clip-in$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(clip_in_OBJECTS) $(clip_in_LDADD) $(LIBS)
clip-test$(EXEEXT): $(clip_test_OBJECTS) $(clip_test_DEPENDENCIES) $(EXTRA_clip_test_DEPENDENCIES) 
	@rm -f clip-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(clip_test_OBJECTS) $(clip_test_LDADD) $(LIBS)
composite-test$(EXEEXT): $(composite_test_OBJECTS) $(composite_test_DEPENDENCIES) $(EXTRA_composite_test_DEPENDENCIES) 
	@rm -f composite-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(composite_test_OBJECTS) $(composite_test_LDADD) $(LIBS)
conical-test$(EXEEXT): $(conical_test_OBJECTS) $(conical_test_DEPENDENCIES) $(EXTRA_conical_test_DEPENDENCIES) 
	@rm -f conical-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conical_test_OBJECTS) $(conical_test_LDADD) $(LIBS)
convolution-test$(EXEEXT): $(convolution_test_OBJECTS) $(convolution_test_DEPENDENCIES) $(EXTRA_convolution_test_DEPENDENCIES) 
	@rm -f convolution-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(convolution_test_OBJECTS) $(convolution_test_LDADD) $(LIBS)
gradient-test$(EXEEXT): $(gradient_test_OBJECTS) $(gradient_test_DEPENDENCIES) $(EXTRA_gradient_test_DEPENDENCIES) 
	@rm -f gradient-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(gradient_test_OBJECTS) $(gradient_test_LDADD) $(LIBS)
linear-gradient$(EXEEXT): $(linear_gradient_OBJECTS) $(linear_gradient_DEPENDENCIES) $(EXTRA_linear_gradient_DEPENDENCIES) 
	@rm -f linear-gradient$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(linear_gradient_OBJECTS) $(linear_gradient_LDADD) $(LIBS)
quad2quad$(EXEEXT): $(quad2quad_OBJECTS) $(quad2quad_DEPENDENCIES) $(EXTRA_quad2quad_DEPENDENCIES) 
	@rm -f quad2quad$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(quad2quad_OBJECTS) $(quad2quad_LDADD) $(LIBS)
radial-test$(EXEEXT): $(radial_test_OBJECTS) $(radial_test_DEPENDENCIES) $(EXTRA_radial_test_DEPENDENCIES) 
	@rm -f radial-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(radial_test_OBJECTS) $(radial_test_LDADD) $(LIBS)
scale$(EXEEXT): $(scale_OBJECTS) $(scale_DEPENDENCIES) $(EXTRA_scale_DEPENDENCIES) 
	@rm -f scale$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scale_OBJECTS) $(scale_LDADD) $(LIBS)
screen-test$(EXEEXT): $(screen_test_OBJECTS) $(screen_test_DEPENDENCIES) $(EXTRA_screen_test_DEPENDENCIES) 
	@rm -f screen-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(screen_test_OBJECTS) $(screen_test_LDADD) $(LIBS)
srgb-test$(EXEEXT): $(srgb_test_OBJECTS) $(srgb_test_DEPENDENCIES) $(EXTRA_srgb_test_DEPENDENCIES) 
	@rm -f srgb-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(srgb_test_OBJECTS) $(srgb_test_LDADD) $(LIBS)
srgb-trap-test$(EXEEXT): $(srgb_trap_test_OBJECTS) $(srgb_trap_test_DEPENDENCIES) $(EXTRA_srgb_trap_test_DEPENDENCIES) 
	@rm -f srgb-trap-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(srgb_trap_test_OBJECTS) $(srgb_trap_test_LDADD) $(LIBS)
trap-test$(EXEEXT): $(trap_test_OBJECTS) $(trap_test_DEPENDENCIES) $(EXTRA_trap_test_DEPENDENCIES) 
	@rm -f trap-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(trap_test_OBJECTS) $(trap_test_LDADD) $(LIBS)
tri-test$(EXEEXT): $(tri_test_OBJECTS) $(tri_test_DEPENDENCIES) $(EXTRA_tri_test_DEPENDENCIES) 
	@rm -f tri-test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(tri_test_OBJECTS) $(tri_test_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alpha-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkerboard.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clip-in.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clip-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/composite-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conical-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convolution-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradient-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linear-gradient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quad2quad.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radial-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scale.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/screen-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srgb-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srgb-trap-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trap-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tri-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils-prng.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.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
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(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
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(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
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<

utils.o: ../test/utils.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils.o -MD -MP -MF $(DEPDIR)/utils.Tpo -c -o utils.o `test -f '../test/utils.c' || echo '$(srcdir)/'`../test/utils.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/utils.Tpo $(DEPDIR)/utils.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../test/utils.c' object='utils.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils.o `test -f '../test/utils.c' || echo '$(srcdir)/'`../test/utils.c

utils.obj: ../test/utils.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils.obj -MD -MP -MF $(DEPDIR)/utils.Tpo -c -o utils.obj `if test -f '../test/utils.c'; then $(CYGPATH_W) '../test/utils.c'; else $(CYGPATH_W) '$(srcdir)/../test/utils.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/utils.Tpo $(DEPDIR)/utils.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../test/utils.c' object='utils.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils.obj `if test -f '../test/utils.c'; then $(CYGPATH_W) '../test/utils.c'; else $(CYGPATH_W) '$(srcdir)/../test/utils.c'; fi`

utils-prng.o: ../test/utils-prng.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils-prng.o -MD -MP -MF $(DEPDIR)/utils-prng.Tpo -c -o utils-prng.o `test -f '../test/utils-prng.c' || echo '$(srcdir)/'`../test/utils-prng.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/utils-prng.Tpo $(DEPDIR)/utils-prng.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../test/utils-prng.c' object='utils-prng.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils-prng.o `test -f '../test/utils-prng.c' || echo '$(srcdir)/'`../test/utils-prng.c

utils-prng.obj: ../test/utils-prng.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils-prng.obj -MD -MP -MF $(DEPDIR)/utils-prng.Tpo -c -o utils-prng.obj `if test -f '../test/utils-prng.c'; then $(CYGPATH_W) '../test/utils-prng.c'; else $(CYGPATH_W) '$(srcdir)/../test/utils-prng.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/utils-prng.Tpo $(DEPDIR)/utils-prng.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../test/utils-prng.c' object='utils-prng.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils-prng.obj `if test -f '../test/utils-prng.c'; then $(CYGPATH_W) '../test/utils-prng.c'; else $(CYGPATH_W) '$(srcdir)/../test/utils-prng.c'; fi`

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)
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:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
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: 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:
