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

# This file is used for tool tests, and also in perf/Makefile.am.

# This file should be included (directly or indirectly) by every
# Makefile.am that builds programs.  And also the top-level Makefile.am.

#----------------------------------------------------------------------------
# Global stuff
#----------------------------------------------------------------------------

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 = $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
	$(top_srcdir)/Makefile.tool-tests.am

# The Android toolchain includes all kinds of stdlib helpers present in
# bionic which is bad because we are not linking with it and the Android
# linker will panic.
@VGCONF_PLATVARIANT_IS_ANDROID_TRUE@am__append_1 = -nostdlib
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_2 = -DVGA_SEC_@VGCONF_ARCH_SEC@=1  \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@		-DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1

check_PROGRAMS = annotate_hbefore$(EXEEXT) \
	cond_timedwait_invalid$(EXEEXT) free_is_write$(EXEEXT) \
	hg01_all_ok$(EXEEXT) hg02_deadlock$(EXEEXT) \
	hg03_inherit$(EXEEXT) hg04_race$(EXEEXT) hg05_race2$(EXEEXT) \
	hg06_readshared$(EXEEXT) locked_vs_unlocked1$(EXEEXT) \
	locked_vs_unlocked2$(EXEEXT) locked_vs_unlocked3$(EXEEXT) \
	pth_destroy_cond$(EXEEXT) t2t$(EXEEXT) \
	tc01_simple_race$(EXEEXT) tc02_simple_tls$(EXEEXT) \
	tc03_re_excl$(EXEEXT) tc04_free_lock$(EXEEXT) \
	tc05_simple_race$(EXEEXT) tc06_two_races$(EXEEXT) \
	tc07_hbl1$(EXEEXT) tc08_hbl2$(EXEEXT) tc09_bad_unlock$(EXEEXT) \
	tc10_rec_lock$(EXEEXT) tc11_XCHG$(EXEEXT) \
	tc12_rwl_trivial$(EXEEXT) tc13_laog1$(EXEEXT) \
	tc14_laog_dinphils$(EXEEXT) tc15_laog_lockdel$(EXEEXT) \
	tc16_byterace$(EXEEXT) tc17_sembar$(EXEEXT) \
	tc18_semabuse$(EXEEXT) tc19_shadowmem$(EXEEXT) \
	tc21_pthonce$(EXEEXT) tc23_bogus_condwait$(EXEEXT) \
	tc24_nonzero_sem$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
	$(am__EXEEXT_3) $(am__EXEEXT_4)

# DDD: it seg faults, and then the Valgrind exit path hangs
# JRS 29 July 09: it craps out in the stack unwinder, in
#==13480==    at 0xF00B81FF: ??? f00b8180 VG_(get_StackTrace_wrk)
#==13480==    by 0xF00B83F8: ??? f00b8340 VG_(get_StackTrace)
#==13480==    by 0xF009FE19: ??? f009fd70 record_ExeContext_wrk
#==13480==    by 0xF009D92E: ??? f009d8c0 construct_error
#==13480==    by 0xF009F001: ??? f009eef0 VG_(maybe_record_error)
#==13480==    by 0xF0081F80: ??? f0081f00 HG_(record_error_misc)
#==13480==    by 0xF0089C00: ??? f0089b80 evh__pre_thread_ll_exit
#==13480==    by 0xF01111D1: ??? f0111070 run_a_thread_NORETURN
#==13480==    by 0xF0111512: ??? f0111500 start_thread_NORETURN
# when the thread being unwound is at __bsdthread_terminate+0
#
# Like Tom says, the stack unwinder protection is bollocks.
# We should junk all previous schemes and simply get the 
# stack unwinder to consult aspacem at each frame (cache-accelerated,
# of course) to check each page it visits is accessible.
#
@VGCONF_PLATFORMS_INCLUDE_X86_DARWIN_FALSE@am__append_3 = \
@VGCONF_PLATFORMS_INCLUDE_X86_DARWIN_FALSE@	tc22_exit_w_lock

@HAVE_PTHREAD_BARRIER_TRUE@am__append_4 = bar_bad bar_trivial
@HAVE_PTHREAD_MUTEX_TIMEDLOCK_TRUE@am__append_5 = tc20_verifywrap
@HAVE_BUILTIN_ATOMIC_TRUE@am__append_6 = annotate_rwlock
subdir = helgrind/tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
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 =
@VGCONF_PLATFORMS_INCLUDE_X86_DARWIN_FALSE@am__EXEEXT_1 = tc22_exit_w_lock$(EXEEXT)
@HAVE_PTHREAD_BARRIER_TRUE@am__EXEEXT_2 = bar_bad$(EXEEXT) \
@HAVE_PTHREAD_BARRIER_TRUE@	bar_trivial$(EXEEXT)
@HAVE_PTHREAD_MUTEX_TIMEDLOCK_TRUE@am__EXEEXT_3 =  \
@HAVE_PTHREAD_MUTEX_TIMEDLOCK_TRUE@	tc20_verifywrap$(EXEEXT)
@HAVE_BUILTIN_ATOMIC_TRUE@am__EXEEXT_4 = annotate_rwlock$(EXEEXT)
annotate_hbefore_SOURCES = annotate_hbefore.c
annotate_hbefore_OBJECTS =  \
	annotate_hbefore-annotate_hbefore.$(OBJEXT)
annotate_hbefore_LDADD = $(LDADD)
annotate_hbefore_DEPENDENCIES =
annotate_hbefore_LINK = $(CCLD) $(annotate_hbefore_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
annotate_rwlock_SOURCES = annotate_rwlock.c
annotate_rwlock_OBJECTS = annotate_rwlock.$(OBJEXT)
annotate_rwlock_LDADD = $(LDADD)
annotate_rwlock_DEPENDENCIES =
bar_bad_SOURCES = bar_bad.c
bar_bad_OBJECTS = bar_bad.$(OBJEXT)
bar_bad_LDADD = $(LDADD)
bar_bad_DEPENDENCIES =
bar_trivial_SOURCES = bar_trivial.c
bar_trivial_OBJECTS = bar_trivial.$(OBJEXT)
bar_trivial_LDADD = $(LDADD)
bar_trivial_DEPENDENCIES =
cond_timedwait_invalid_SOURCES = cond_timedwait_invalid.c
cond_timedwait_invalid_OBJECTS = cond_timedwait_invalid.$(OBJEXT)
cond_timedwait_invalid_LDADD = $(LDADD)
cond_timedwait_invalid_DEPENDENCIES =
free_is_write_SOURCES = free_is_write.c
free_is_write_OBJECTS = free_is_write.$(OBJEXT)
free_is_write_LDADD = $(LDADD)
free_is_write_DEPENDENCIES =
hg01_all_ok_SOURCES = hg01_all_ok.c
hg01_all_ok_OBJECTS = hg01_all_ok.$(OBJEXT)
hg01_all_ok_LDADD = $(LDADD)
hg01_all_ok_DEPENDENCIES =
hg02_deadlock_SOURCES = hg02_deadlock.c
hg02_deadlock_OBJECTS = hg02_deadlock.$(OBJEXT)
hg02_deadlock_LDADD = $(LDADD)
hg02_deadlock_DEPENDENCIES =
hg03_inherit_SOURCES = hg03_inherit.c
hg03_inherit_OBJECTS = hg03_inherit.$(OBJEXT)
hg03_inherit_LDADD = $(LDADD)
hg03_inherit_DEPENDENCIES =
hg04_race_SOURCES = hg04_race.c
hg04_race_OBJECTS = hg04_race.$(OBJEXT)
hg04_race_LDADD = $(LDADD)
hg04_race_DEPENDENCIES =
hg05_race2_SOURCES = hg05_race2.c
hg05_race2_OBJECTS = hg05_race2.$(OBJEXT)
hg05_race2_LDADD = $(LDADD)
hg05_race2_DEPENDENCIES =
hg06_readshared_SOURCES = hg06_readshared.c
hg06_readshared_OBJECTS = hg06_readshared.$(OBJEXT)
hg06_readshared_LDADD = $(LDADD)
hg06_readshared_DEPENDENCIES =
locked_vs_unlocked1_SOURCES = locked_vs_unlocked1.c
locked_vs_unlocked1_OBJECTS = locked_vs_unlocked1.$(OBJEXT)
locked_vs_unlocked1_LDADD = $(LDADD)
locked_vs_unlocked1_DEPENDENCIES =
locked_vs_unlocked2_SOURCES = locked_vs_unlocked2.c
locked_vs_unlocked2_OBJECTS = locked_vs_unlocked2.$(OBJEXT)
locked_vs_unlocked2_LDADD = $(LDADD)
locked_vs_unlocked2_DEPENDENCIES =
locked_vs_unlocked3_SOURCES = locked_vs_unlocked3.c
locked_vs_unlocked3_OBJECTS = locked_vs_unlocked3.$(OBJEXT)
locked_vs_unlocked3_LDADD = $(LDADD)
locked_vs_unlocked3_DEPENDENCIES =
pth_destroy_cond_SOURCES = pth_destroy_cond.c
pth_destroy_cond_OBJECTS = pth_destroy_cond.$(OBJEXT)
pth_destroy_cond_LDADD = $(LDADD)
pth_destroy_cond_DEPENDENCIES =
t2t_SOURCES = t2t.c
t2t_OBJECTS = t2t.$(OBJEXT)
t2t_LDADD = $(LDADD)
t2t_DEPENDENCIES =
tc01_simple_race_SOURCES = tc01_simple_race.c
tc01_simple_race_OBJECTS = tc01_simple_race.$(OBJEXT)
tc01_simple_race_LDADD = $(LDADD)
tc01_simple_race_DEPENDENCIES =
tc02_simple_tls_SOURCES = tc02_simple_tls.c
tc02_simple_tls_OBJECTS = tc02_simple_tls.$(OBJEXT)
tc02_simple_tls_LDADD = $(LDADD)
tc02_simple_tls_DEPENDENCIES =
tc03_re_excl_SOURCES = tc03_re_excl.c
tc03_re_excl_OBJECTS = tc03_re_excl.$(OBJEXT)
tc03_re_excl_LDADD = $(LDADD)
tc03_re_excl_DEPENDENCIES =
tc04_free_lock_SOURCES = tc04_free_lock.c
tc04_free_lock_OBJECTS = tc04_free_lock.$(OBJEXT)
tc04_free_lock_LDADD = $(LDADD)
tc04_free_lock_DEPENDENCIES =
tc05_simple_race_SOURCES = tc05_simple_race.c
tc05_simple_race_OBJECTS = tc05_simple_race.$(OBJEXT)
tc05_simple_race_LDADD = $(LDADD)
tc05_simple_race_DEPENDENCIES =
tc06_two_races_SOURCES = tc06_two_races.c
tc06_two_races_OBJECTS = tc06_two_races.$(OBJEXT)
tc06_two_races_LDADD = $(LDADD)
tc06_two_races_DEPENDENCIES =
tc07_hbl1_SOURCES = tc07_hbl1.c
tc07_hbl1_OBJECTS = tc07_hbl1-tc07_hbl1.$(OBJEXT)
tc07_hbl1_LDADD = $(LDADD)
tc07_hbl1_DEPENDENCIES =
tc07_hbl1_LINK = $(CCLD) $(tc07_hbl1_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
tc08_hbl2_SOURCES = tc08_hbl2.c
tc08_hbl2_OBJECTS = tc08_hbl2-tc08_hbl2.$(OBJEXT)
tc08_hbl2_LDADD = $(LDADD)
tc08_hbl2_DEPENDENCIES =
tc08_hbl2_LINK = $(CCLD) $(tc08_hbl2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
tc09_bad_unlock_SOURCES = tc09_bad_unlock.c
tc09_bad_unlock_OBJECTS = tc09_bad_unlock.$(OBJEXT)
tc09_bad_unlock_LDADD = $(LDADD)
tc09_bad_unlock_DEPENDENCIES =
tc10_rec_lock_SOURCES = tc10_rec_lock.c
tc10_rec_lock_OBJECTS = tc10_rec_lock.$(OBJEXT)
tc10_rec_lock_LDADD = $(LDADD)
tc10_rec_lock_DEPENDENCIES =
tc11_XCHG_SOURCES = tc11_XCHG.c
tc11_XCHG_OBJECTS = tc11_XCHG.$(OBJEXT)
tc11_XCHG_LDADD = $(LDADD)
tc11_XCHG_DEPENDENCIES =
tc12_rwl_trivial_SOURCES = tc12_rwl_trivial.c
tc12_rwl_trivial_OBJECTS = tc12_rwl_trivial.$(OBJEXT)
tc12_rwl_trivial_LDADD = $(LDADD)
tc12_rwl_trivial_DEPENDENCIES =
tc13_laog1_SOURCES = tc13_laog1.c
tc13_laog1_OBJECTS = tc13_laog1.$(OBJEXT)
tc13_laog1_LDADD = $(LDADD)
tc13_laog1_DEPENDENCIES =
tc14_laog_dinphils_SOURCES = tc14_laog_dinphils.c
tc14_laog_dinphils_OBJECTS = tc14_laog_dinphils.$(OBJEXT)
tc14_laog_dinphils_LDADD = $(LDADD)
tc14_laog_dinphils_DEPENDENCIES =
tc15_laog_lockdel_SOURCES = tc15_laog_lockdel.c
tc15_laog_lockdel_OBJECTS = tc15_laog_lockdel.$(OBJEXT)
tc15_laog_lockdel_LDADD = $(LDADD)
tc15_laog_lockdel_DEPENDENCIES =
tc16_byterace_SOURCES = tc16_byterace.c
tc16_byterace_OBJECTS = tc16_byterace.$(OBJEXT)
tc16_byterace_LDADD = $(LDADD)
tc16_byterace_DEPENDENCIES =
tc17_sembar_SOURCES = tc17_sembar.c
tc17_sembar_OBJECTS = tc17_sembar.$(OBJEXT)
tc17_sembar_LDADD = $(LDADD)
tc17_sembar_DEPENDENCIES =
tc18_semabuse_SOURCES = tc18_semabuse.c
tc18_semabuse_OBJECTS = tc18_semabuse.$(OBJEXT)
tc18_semabuse_LDADD = $(LDADD)
tc18_semabuse_DEPENDENCIES =
tc19_shadowmem_SOURCES = tc19_shadowmem.c
tc19_shadowmem_OBJECTS = tc19_shadowmem.$(OBJEXT)
tc19_shadowmem_LDADD = $(LDADD)
tc19_shadowmem_DEPENDENCIES =
tc20_verifywrap_SOURCES = tc20_verifywrap.c
tc20_verifywrap_OBJECTS = tc20_verifywrap.$(OBJEXT)
tc20_verifywrap_LDADD = $(LDADD)
tc20_verifywrap_DEPENDENCIES =
tc21_pthonce_SOURCES = tc21_pthonce.c
tc21_pthonce_OBJECTS = tc21_pthonce.$(OBJEXT)
tc21_pthonce_LDADD = $(LDADD)
tc21_pthonce_DEPENDENCIES =
tc22_exit_w_lock_SOURCES = tc22_exit_w_lock.c
tc22_exit_w_lock_OBJECTS = tc22_exit_w_lock.$(OBJEXT)
tc22_exit_w_lock_LDADD = $(LDADD)
tc22_exit_w_lock_DEPENDENCIES =
tc23_bogus_condwait_SOURCES = tc23_bogus_condwait.c
tc23_bogus_condwait_OBJECTS = tc23_bogus_condwait.$(OBJEXT)
tc23_bogus_condwait_LDADD = $(LDADD)
tc23_bogus_condwait_DEPENDENCIES =
tc24_nonzero_sem_SOURCES = tc24_nonzero_sem.c
tc24_nonzero_sem_OBJECTS = tc24_nonzero_sem.$(OBJEXT)
tc24_nonzero_sem_LDADD = $(LDADD)
tc24_nonzero_sem_DEPENDENCIES =
SCRIPTS = $(dist_noinst_SCRIPTS)
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)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = annotate_hbefore.c annotate_rwlock.c bar_bad.c bar_trivial.c \
	cond_timedwait_invalid.c free_is_write.c hg01_all_ok.c \
	hg02_deadlock.c hg03_inherit.c hg04_race.c hg05_race2.c \
	hg06_readshared.c locked_vs_unlocked1.c locked_vs_unlocked2.c \
	locked_vs_unlocked3.c pth_destroy_cond.c t2t.c \
	tc01_simple_race.c tc02_simple_tls.c tc03_re_excl.c \
	tc04_free_lock.c tc05_simple_race.c tc06_two_races.c \
	tc07_hbl1.c tc08_hbl2.c tc09_bad_unlock.c tc10_rec_lock.c \
	tc11_XCHG.c tc12_rwl_trivial.c tc13_laog1.c \
	tc14_laog_dinphils.c tc15_laog_lockdel.c tc16_byterace.c \
	tc17_sembar.c tc18_semabuse.c tc19_shadowmem.c \
	tc20_verifywrap.c tc21_pthonce.c tc22_exit_w_lock.c \
	tc23_bogus_condwait.c tc24_nonzero_sem.c
DIST_SOURCES = annotate_hbefore.c annotate_rwlock.c bar_bad.c \
	bar_trivial.c cond_timedwait_invalid.c free_is_write.c \
	hg01_all_ok.c hg02_deadlock.c hg03_inherit.c hg04_race.c \
	hg05_race2.c hg06_readshared.c locked_vs_unlocked1.c \
	locked_vs_unlocked2.c locked_vs_unlocked3.c pth_destroy_cond.c \
	t2t.c tc01_simple_race.c tc02_simple_tls.c tc03_re_excl.c \
	tc04_free_lock.c tc05_simple_race.c tc06_two_races.c \
	tc07_hbl1.c tc08_hbl2.c tc09_bad_unlock.c tc10_rec_lock.c \
	tc11_XCHG.c tc12_rwl_trivial.c tc13_laog1.c \
	tc14_laog_dinphils.c tc15_laog_lockdel.c tc16_byterace.c \
	tc17_sembar.c tc18_semabuse.c tc19_shadowmem.c \
	tc20_verifywrap.c tc21_pthonce.c tc22_exit_w_lock.c \
	tc23_bogus_condwait.c tc24_nonzero_sem.c
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CFLAGS = @BOOST_CFLAGS@
BOOST_LIBS = @BOOST_LIBS@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAGS_MPI = @CFLAGS_MPI@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFAULT_SUPP = @DEFAULT_SUPP@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIFF = @DIFF@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
FLAG_M32 = @FLAG_M32@
FLAG_M64 = @FLAG_M64@
FLAG_MMMX = @FLAG_MMMX@
FLAG_MSSE = @FLAG_MSSE@
FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
FLAG_W_EXTRA = @FLAG_W_EXTRA@
FLAG_W_NO_EMPTY_BODY = @FLAG_W_NO_EMPTY_BODY@
FLAG_W_NO_FORMAT_ZERO_LENGTH = @FLAG_W_NO_FORMAT_ZERO_LENGTH@
FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@
FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@
FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@
GDB = @GDB@
GLIBC_VERSION = @GLIBC_VERSION@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LDFLAGS_MPI = @LDFLAGS_MPI@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPI_CC = @MPI_CC@
OBJEXT = @OBJEXT@
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@
PERL = @PERL@
PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VALT_LOAD_ADDRESS_PRI = @VALT_LOAD_ADDRESS_PRI@
VALT_LOAD_ADDRESS_SEC = @VALT_LOAD_ADDRESS_SEC@
VERSION = @VERSION@
VGCONF_ARCH_PRI = @VGCONF_ARCH_PRI@
VGCONF_ARCH_SEC = @VGCONF_ARCH_SEC@
VGCONF_OS = @VGCONF_OS@
VGCONF_PLATFORM_PRI_CAPS = @VGCONF_PLATFORM_PRI_CAPS@
VGCONF_PLATFORM_SEC_CAPS = @VGCONF_PLATFORM_SEC_CAPS@
VGCONF_PLATVARIANT = @VGCONF_PLATVARIANT@
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@
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@
inplacedir = $(top_builddir)/.in_place

#----------------------------------------------------------------------------
# Flags
#----------------------------------------------------------------------------

# Baseline flags for all compilations.  Aim here is to maximise
# performance and get whatever useful warnings we can out of gcc.
# -fno-builtin is important for defeating LLVM's idiom recognition
# that somehow causes VG_(memset) to get into infinite recursion.
AM_CFLAGS_BASE = \
	-O2 -g \
	-Wall \
	-Wmissing-prototypes \
	-Wshadow \
	-Wpointer-arith \
	-Wstrict-prototypes \
	-Wmissing-declarations \
	@FLAG_W_NO_FORMAT_ZERO_LENGTH@ \
	-fno-strict-aliasing \
	-fno-builtin

@VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PIC = -fpic -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_FALSE@		-fno-builtin


# These flags are used for building the preload shared objects.
# The aim is to give reasonable performance but also to have good
# stack traces, since users often see stack traces extending 
# into (and through) the preloads.
@VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PIC = -dynamic -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_TRUE@		-mno-dynamic-no-pic -fpic -fPIC \
@VGCONF_OS_IS_DARWIN_TRUE@		-fno-builtin


# Flags for specific targets.
#
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs.
# For building the core, coregrind/Makefile.am files add some extra things.
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \
	-I$(top_srcdir) \
	-I$(top_srcdir)/include \
	-I$(top_srcdir)/VEX/pub \
	-DVGA_@VGCONF_ARCH_PRI@=1 \
	-DVGO_@VGCONF_OS@=1 \
	-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
	-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1

@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-I$(top_srcdir) \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-I$(top_srcdir)/include \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-I$(top_srcdir)/VEX/pub \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-DVGA_@VGCONF_ARCH_SEC@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-DVGO_@VGCONF_OS@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-DVGPV_@VGCONF_ARCH_SEC@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1

AM_FLAG_M3264_X86_LINUX = @FLAG_M32@
AM_CFLAGS_X86_LINUX = @FLAG_M32@  @PREFERRED_STACK_BOUNDARY@ \
				$(AM_CFLAGS_BASE) -fomit-frame-pointer

AM_CCASFLAGS_X86_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@
AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ @PREFERRED_STACK_BOUNDARY@ \
				$(AM_CFLAGS_BASE) -fomit-frame-pointer

AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
			 	$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8

AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \
				-marm -mcpu=cortex-a8 -g

AM_FLAG_M3264_X86_DARWIN = -arch i386
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
				-mmacosx-version-min=10.5 \
				-fno-stack-protector -fno-pic -fno-PIC

AM_CCASFLAGS_X86_DARWIN = -arch i386 -g
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
			    -mmacosx-version-min=10.5 -fno-stack-protector

AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@
AM_CFLAGS_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CCASFLAGS_S390X_LINUX = @FLAG_M64@ -g -mzarch -march=z900
AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@
AM_CFLAGS_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) -mips32
AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -mips32 -g

# Flags for the primary target.  These must be used to build the
# regtests and performance tests.  In fact, these must be used to
# build anything which is built only once on a dual-arch build.
#
AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
@VGCONF_HAVE_PLATFORM_SEC_FALSE@AM_FLAG_M3264_SEC = 
@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@)

# Baseline link flags for making vgpreload shared objects.
#
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \
	-Wl,-z,interpose,-z,initfirst $(am__append_1)
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
	-I$(top_srcdir)/coregrind -I$(top_builddir)/include \
	-I$(top_srcdir)/VEX/pub -DVGA_@VGCONF_ARCH_PRI@=1 \
	-DVGO_@VGCONF_OS@=1 -DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
	-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 \
	$(am__append_2)

# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
AM_CFLAGS = -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI)
AM_CXXFLAGS = -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI)
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake;  see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS)
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = filter_stderr   \
		      filter_helgrind \
		      filter_xml

EXTRA_DIST = \
	annotate_hbefore.vgtest annotate_hbefore.stdout.exp \
		annotate_hbefore.stderr.exp \
	annotate_rwlock.vgtest annotate_rwlock.stdout.exp \
		annotate_rwlock.stderr.exp \
	annotate_smart_pointer.vgtest annotate_smart_pointer.stdout.exp \
		annotate_smart_pointer.stderr.exp \
	cond_timedwait_invalid.vgtest cond_timedwait_invalid.stdout.exp \
		cond_timedwait_invalid.stderr.exp \
	bar_bad.vgtest bar_bad.stdout.exp bar_bad.stderr.exp \
	bar_trivial.vgtest bar_trivial.stdout.exp bar_trivial.stderr.exp \
	free_is_write.vgtest free_is_write.stdout.exp \
		free_is_write.stderr.exp \
	hg01_all_ok.vgtest hg01_all_ok.stdout.exp hg01_all_ok.stderr.exp \
	hg02_deadlock.vgtest hg02_deadlock.stdout.exp hg02_deadlock.stderr.exp \
	hg03_inherit.vgtest hg03_inherit.stdout.exp hg03_inherit.stderr.exp \
	hg04_race.vgtest hg04_race.stdout.exp hg04_race.stderr.exp \
	hg05_race2.vgtest hg05_race2.stdout.exp hg05_race2.stderr.exp \
	hg06_readshared.vgtest hg06_readshared.stdout.exp \
		hg06_readshared.stderr.exp \
	locked_vs_unlocked1_fwd.vgtest \
		locked_vs_unlocked1_fwd.stderr.exp \
		locked_vs_unlocked1_fwd.stdout.exp \
	locked_vs_unlocked1_rev.vgtest \
		locked_vs_unlocked1_rev.stderr.exp \
		locked_vs_unlocked1_rev.stdout.exp \
	locked_vs_unlocked2.vgtest \
		locked_vs_unlocked2.stderr.exp \
		locked_vs_unlocked2.stdout.exp \
	locked_vs_unlocked3.vgtest \
		locked_vs_unlocked3.stderr.exp \
		locked_vs_unlocked3.stdout.exp \
	pth_barrier1.vgtest pth_barrier1.stdout.exp pth_barrier1.stderr.exp \
	pth_barrier2.vgtest pth_barrier2.stdout.exp pth_barrier2.stderr.exp \
	pth_barrier3.vgtest pth_barrier3.stdout.exp pth_barrier3.stderr.exp \
	pth_destroy_cond.vgtest \
		pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \
	pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \
	rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \
	rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \
	t2t_laog.vgtest t2t_laog.stdout.exp t2t_laog.stderr.exp \
	tc01_simple_race.vgtest tc01_simple_race.stdout.exp \
		tc01_simple_race.stderr.exp \
	tc02_simple_tls.vgtest tc02_simple_tls.stdout.exp \
		tc02_simple_tls.stderr.exp \
	tc03_re_excl.vgtest tc03_re_excl.stdout.exp \
		tc03_re_excl.stderr.exp \
	tc04_free_lock.vgtest tc04_free_lock.stdout.exp \
		tc04_free_lock.stderr.exp \
	tc05_simple_race.vgtest tc05_simple_race.stdout.exp \
		tc05_simple_race.stderr.exp \
	tc06_two_races.vgtest tc06_two_races.stdout.exp \
		tc06_two_races.stderr.exp \
	tc06_two_races_xml.vgtest tc06_two_races_xml.stdout.exp \
		tc06_two_races_xml.stderr.exp \
	tc07_hbl1.vgtest tc07_hbl1.stdout.exp tc07_hbl1.stderr.exp \
	tc08_hbl2.vgtest tc08_hbl2.stdout.exp tc08_hbl2.stderr.exp \
	tc09_bad_unlock.vgtest tc09_bad_unlock.stdout.exp \
		tc09_bad_unlock.stderr.exp \
	tc10_rec_lock.vgtest tc10_rec_lock.stdout.exp tc10_rec_lock.stderr.exp \
	tc11_XCHG.vgtest tc11_XCHG.stdout.exp tc11_XCHG.stderr.exp \
	tc12_rwl_trivial.vgtest tc12_rwl_trivial.stdout.exp \
		tc12_rwl_trivial.stderr.exp \
		tc12_rwl_trivial.stderr.exp-darwin970 \
	tc13_laog1.vgtest tc13_laog1.stdout.exp tc13_laog1.stderr.exp \
	tc14_laog_dinphils.vgtest tc14_laog_dinphils.stdout.exp \
		tc14_laog_dinphils.stderr.exp \
	tc15_laog_lockdel.vgtest tc15_laog_lockdel.stdout.exp \
		tc15_laog_lockdel.stderr.exp \
	tc16_byterace.vgtest tc16_byterace.stdout.exp \
		tc16_byterace.stderr.exp \
	tc17_sembar.vgtest tc17_sembar.stdout.exp \
		tc17_sembar.stderr.exp \
	tc18_semabuse.vgtest tc18_semabuse.stdout.exp \
		tc18_semabuse.stderr.exp \
	tc19_shadowmem.vgtest tc19_shadowmem.stdout.exp \
		tc19_shadowmem.stderr.exp \
	tc20_verifywrap.vgtest tc20_verifywrap.stdout.exp \
		tc20_verifywrap.stderr.exp \
	tc21_pthonce.vgtest tc21_pthonce.stdout.exp tc21_pthonce.stderr.exp \
	tc22_exit_w_lock.vgtest tc22_exit_w_lock.stdout.exp \
		tc22_exit_w_lock.stderr.exp \
		tc22_exit_w_lock.stderr.exp-kfail-x86 \
	tc23_bogus_condwait.vgtest tc23_bogus_condwait.stdout.exp \
		tc23_bogus_condwait.stderr.exp \
	tc24_nonzero_sem.vgtest tc24_nonzero_sem.stdout.exp \
		tc24_nonzero_sem.stderr.exp

@VGCONF_OS_IS_DARWIN_FALSE@annotate_hbefore_CFLAGS = $(AM_CFLAGS)
@VGCONF_OS_IS_DARWIN_TRUE@annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE@annotate_hbefore_CFLAGS = $(AM_CFLAGS)
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE@annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE@tc07_hbl1_CFLAGS = $(AM_CFLAGS)
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE@tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE@tc08_hbl2_CFLAGS = $(AM_CFLAGS)
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE@tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
LDADD = -lpthread
all: all-am

.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.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 helgrind/tests/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign helgrind/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-checkPROGRAMS:
	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
annotate_hbefore$(EXEEXT): $(annotate_hbefore_OBJECTS) $(annotate_hbefore_DEPENDENCIES) 
	@rm -f annotate_hbefore$(EXEEXT)
	$(annotate_hbefore_LINK) $(annotate_hbefore_OBJECTS) $(annotate_hbefore_LDADD) $(LIBS)
annotate_rwlock$(EXEEXT): $(annotate_rwlock_OBJECTS) $(annotate_rwlock_DEPENDENCIES) 
	@rm -f annotate_rwlock$(EXEEXT)
	$(LINK) $(annotate_rwlock_OBJECTS) $(annotate_rwlock_LDADD) $(LIBS)
bar_bad$(EXEEXT): $(bar_bad_OBJECTS) $(bar_bad_DEPENDENCIES) 
	@rm -f bar_bad$(EXEEXT)
	$(LINK) $(bar_bad_OBJECTS) $(bar_bad_LDADD) $(LIBS)
bar_trivial$(EXEEXT): $(bar_trivial_OBJECTS) $(bar_trivial_DEPENDENCIES) 
	@rm -f bar_trivial$(EXEEXT)
	$(LINK) $(bar_trivial_OBJECTS) $(bar_trivial_LDADD) $(LIBS)
cond_timedwait_invalid$(EXEEXT): $(cond_timedwait_invalid_OBJECTS) $(cond_timedwait_invalid_DEPENDENCIES) 
	@rm -f cond_timedwait_invalid$(EXEEXT)
	$(LINK) $(cond_timedwait_invalid_OBJECTS) $(cond_timedwait_invalid_LDADD) $(LIBS)
free_is_write$(EXEEXT): $(free_is_write_OBJECTS) $(free_is_write_DEPENDENCIES) 
	@rm -f free_is_write$(EXEEXT)
	$(LINK) $(free_is_write_OBJECTS) $(free_is_write_LDADD) $(LIBS)
hg01_all_ok$(EXEEXT): $(hg01_all_ok_OBJECTS) $(hg01_all_ok_DEPENDENCIES) 
	@rm -f hg01_all_ok$(EXEEXT)
	$(LINK) $(hg01_all_ok_OBJECTS) $(hg01_all_ok_LDADD) $(LIBS)
hg02_deadlock$(EXEEXT): $(hg02_deadlock_OBJECTS) $(hg02_deadlock_DEPENDENCIES) 
	@rm -f hg02_deadlock$(EXEEXT)
	$(LINK) $(hg02_deadlock_OBJECTS) $(hg02_deadlock_LDADD) $(LIBS)
hg03_inherit$(EXEEXT): $(hg03_inherit_OBJECTS) $(hg03_inherit_DEPENDENCIES) 
	@rm -f hg03_inherit$(EXEEXT)
	$(LINK) $(hg03_inherit_OBJECTS) $(hg03_inherit_LDADD) $(LIBS)
hg04_race$(EXEEXT): $(hg04_race_OBJECTS) $(hg04_race_DEPENDENCIES) 
	@rm -f hg04_race$(EXEEXT)
	$(LINK) $(hg04_race_OBJECTS) $(hg04_race_LDADD) $(LIBS)
hg05_race2$(EXEEXT): $(hg05_race2_OBJECTS) $(hg05_race2_DEPENDENCIES) 
	@rm -f hg05_race2$(EXEEXT)
	$(LINK) $(hg05_race2_OBJECTS) $(hg05_race2_LDADD) $(LIBS)
hg06_readshared$(EXEEXT): $(hg06_readshared_OBJECTS) $(hg06_readshared_DEPENDENCIES) 
	@rm -f hg06_readshared$(EXEEXT)
	$(LINK) $(hg06_readshared_OBJECTS) $(hg06_readshared_LDADD) $(LIBS)
locked_vs_unlocked1$(EXEEXT): $(locked_vs_unlocked1_OBJECTS) $(locked_vs_unlocked1_DEPENDENCIES) 
	@rm -f locked_vs_unlocked1$(EXEEXT)
	$(LINK) $(locked_vs_unlocked1_OBJECTS) $(locked_vs_unlocked1_LDADD) $(LIBS)
locked_vs_unlocked2$(EXEEXT): $(locked_vs_unlocked2_OBJECTS) $(locked_vs_unlocked2_DEPENDENCIES) 
	@rm -f locked_vs_unlocked2$(EXEEXT)
	$(LINK) $(locked_vs_unlocked2_OBJECTS) $(locked_vs_unlocked2_LDADD) $(LIBS)
locked_vs_unlocked3$(EXEEXT): $(locked_vs_unlocked3_OBJECTS) $(locked_vs_unlocked3_DEPENDENCIES) 
	@rm -f locked_vs_unlocked3$(EXEEXT)
	$(LINK) $(locked_vs_unlocked3_OBJECTS) $(locked_vs_unlocked3_LDADD) $(LIBS)
pth_destroy_cond$(EXEEXT): $(pth_destroy_cond_OBJECTS) $(pth_destroy_cond_DEPENDENCIES) 
	@rm -f pth_destroy_cond$(EXEEXT)
	$(LINK) $(pth_destroy_cond_OBJECTS) $(pth_destroy_cond_LDADD) $(LIBS)
t2t$(EXEEXT): $(t2t_OBJECTS) $(t2t_DEPENDENCIES) 
	@rm -f t2t$(EXEEXT)
	$(LINK) $(t2t_OBJECTS) $(t2t_LDADD) $(LIBS)
tc01_simple_race$(EXEEXT): $(tc01_simple_race_OBJECTS) $(tc01_simple_race_DEPENDENCIES) 
	@rm -f tc01_simple_race$(EXEEXT)
	$(LINK) $(tc01_simple_race_OBJECTS) $(tc01_simple_race_LDADD) $(LIBS)
tc02_simple_tls$(EXEEXT): $(tc02_simple_tls_OBJECTS) $(tc02_simple_tls_DEPENDENCIES) 
	@rm -f tc02_simple_tls$(EXEEXT)
	$(LINK) $(tc02_simple_tls_OBJECTS) $(tc02_simple_tls_LDADD) $(LIBS)
tc03_re_excl$(EXEEXT): $(tc03_re_excl_OBJECTS) $(tc03_re_excl_DEPENDENCIES) 
	@rm -f tc03_re_excl$(EXEEXT)
	$(LINK) $(tc03_re_excl_OBJECTS) $(tc03_re_excl_LDADD) $(LIBS)
tc04_free_lock$(EXEEXT): $(tc04_free_lock_OBJECTS) $(tc04_free_lock_DEPENDENCIES) 
	@rm -f tc04_free_lock$(EXEEXT)
	$(LINK) $(tc04_free_lock_OBJECTS) $(tc04_free_lock_LDADD) $(LIBS)
tc05_simple_race$(EXEEXT): $(tc05_simple_race_OBJECTS) $(tc05_simple_race_DEPENDENCIES) 
	@rm -f tc05_simple_race$(EXEEXT)
	$(LINK) $(tc05_simple_race_OBJECTS) $(tc05_simple_race_LDADD) $(LIBS)
tc06_two_races$(EXEEXT): $(tc06_two_races_OBJECTS) $(tc06_two_races_DEPENDENCIES) 
	@rm -f tc06_two_races$(EXEEXT)
	$(LINK) $(tc06_two_races_OBJECTS) $(tc06_two_races_LDADD) $(LIBS)
tc07_hbl1$(EXEEXT): $(tc07_hbl1_OBJECTS) $(tc07_hbl1_DEPENDENCIES) 
	@rm -f tc07_hbl1$(EXEEXT)
	$(tc07_hbl1_LINK) $(tc07_hbl1_OBJECTS) $(tc07_hbl1_LDADD) $(LIBS)
tc08_hbl2$(EXEEXT): $(tc08_hbl2_OBJECTS) $(tc08_hbl2_DEPENDENCIES) 
	@rm -f tc08_hbl2$(EXEEXT)
	$(tc08_hbl2_LINK) $(tc08_hbl2_OBJECTS) $(tc08_hbl2_LDADD) $(LIBS)
tc09_bad_unlock$(EXEEXT): $(tc09_bad_unlock_OBJECTS) $(tc09_bad_unlock_DEPENDENCIES) 
	@rm -f tc09_bad_unlock$(EXEEXT)
	$(LINK) $(tc09_bad_unlock_OBJECTS) $(tc09_bad_unlock_LDADD) $(LIBS)
tc10_rec_lock$(EXEEXT): $(tc10_rec_lock_OBJECTS) $(tc10_rec_lock_DEPENDENCIES) 
	@rm -f tc10_rec_lock$(EXEEXT)
	$(LINK) $(tc10_rec_lock_OBJECTS) $(tc10_rec_lock_LDADD) $(LIBS)
tc11_XCHG$(EXEEXT): $(tc11_XCHG_OBJECTS) $(tc11_XCHG_DEPENDENCIES) 
	@rm -f tc11_XCHG$(EXEEXT)
	$(LINK) $(tc11_XCHG_OBJECTS) $(tc11_XCHG_LDADD) $(LIBS)
tc12_rwl_trivial$(EXEEXT): $(tc12_rwl_trivial_OBJECTS) $(tc12_rwl_trivial_DEPENDENCIES) 
	@rm -f tc12_rwl_trivial$(EXEEXT)
	$(LINK) $(tc12_rwl_trivial_OBJECTS) $(tc12_rwl_trivial_LDADD) $(LIBS)
tc13_laog1$(EXEEXT): $(tc13_laog1_OBJECTS) $(tc13_laog1_DEPENDENCIES) 
	@rm -f tc13_laog1$(EXEEXT)
	$(LINK) $(tc13_laog1_OBJECTS) $(tc13_laog1_LDADD) $(LIBS)
tc14_laog_dinphils$(EXEEXT): $(tc14_laog_dinphils_OBJECTS) $(tc14_laog_dinphils_DEPENDENCIES) 
	@rm -f tc14_laog_dinphils$(EXEEXT)
	$(LINK) $(tc14_laog_dinphils_OBJECTS) $(tc14_laog_dinphils_LDADD) $(LIBS)
tc15_laog_lockdel$(EXEEXT): $(tc15_laog_lockdel_OBJECTS) $(tc15_laog_lockdel_DEPENDENCIES) 
	@rm -f tc15_laog_lockdel$(EXEEXT)
	$(LINK) $(tc15_laog_lockdel_OBJECTS) $(tc15_laog_lockdel_LDADD) $(LIBS)
tc16_byterace$(EXEEXT): $(tc16_byterace_OBJECTS) $(tc16_byterace_DEPENDENCIES) 
	@rm -f tc16_byterace$(EXEEXT)
	$(LINK) $(tc16_byterace_OBJECTS) $(tc16_byterace_LDADD) $(LIBS)
tc17_sembar$(EXEEXT): $(tc17_sembar_OBJECTS) $(tc17_sembar_DEPENDENCIES) 
	@rm -f tc17_sembar$(EXEEXT)
	$(LINK) $(tc17_sembar_OBJECTS) $(tc17_sembar_LDADD) $(LIBS)
tc18_semabuse$(EXEEXT): $(tc18_semabuse_OBJECTS) $(tc18_semabuse_DEPENDENCIES) 
	@rm -f tc18_semabuse$(EXEEXT)
	$(LINK) $(tc18_semabuse_OBJECTS) $(tc18_semabuse_LDADD) $(LIBS)
tc19_shadowmem$(EXEEXT): $(tc19_shadowmem_OBJECTS) $(tc19_shadowmem_DEPENDENCIES) 
	@rm -f tc19_shadowmem$(EXEEXT)
	$(LINK) $(tc19_shadowmem_OBJECTS) $(tc19_shadowmem_LDADD) $(LIBS)
tc20_verifywrap$(EXEEXT): $(tc20_verifywrap_OBJECTS) $(tc20_verifywrap_DEPENDENCIES) 
	@rm -f tc20_verifywrap$(EXEEXT)
	$(LINK) $(tc20_verifywrap_OBJECTS) $(tc20_verifywrap_LDADD) $(LIBS)
tc21_pthonce$(EXEEXT): $(tc21_pthonce_OBJECTS) $(tc21_pthonce_DEPENDENCIES) 
	@rm -f tc21_pthonce$(EXEEXT)
	$(LINK) $(tc21_pthonce_OBJECTS) $(tc21_pthonce_LDADD) $(LIBS)
tc22_exit_w_lock$(EXEEXT): $(tc22_exit_w_lock_OBJECTS) $(tc22_exit_w_lock_DEPENDENCIES) 
	@rm -f tc22_exit_w_lock$(EXEEXT)
	$(LINK) $(tc22_exit_w_lock_OBJECTS) $(tc22_exit_w_lock_LDADD) $(LIBS)
tc23_bogus_condwait$(EXEEXT): $(tc23_bogus_condwait_OBJECTS) $(tc23_bogus_condwait_DEPENDENCIES) 
	@rm -f tc23_bogus_condwait$(EXEEXT)
	$(LINK) $(tc23_bogus_condwait_OBJECTS) $(tc23_bogus_condwait_LDADD) $(LIBS)
tc24_nonzero_sem$(EXEEXT): $(tc24_nonzero_sem_OBJECTS) $(tc24_nonzero_sem_DEPENDENCIES) 
	@rm -f tc24_nonzero_sem$(EXEEXT)
	$(LINK) $(tc24_nonzero_sem_OBJECTS) $(tc24_nonzero_sem_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/annotate_hbefore-annotate_hbefore.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/annotate_rwlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bar_bad.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bar_trivial.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cond_timedwait_invalid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free_is_write.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg01_all_ok.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg02_deadlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg03_inherit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg04_race.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg05_race2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hg06_readshared.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locked_vs_unlocked1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locked_vs_unlocked2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locked_vs_unlocked3.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pth_destroy_cond.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t2t.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc01_simple_race.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc02_simple_tls.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc03_re_excl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc04_free_lock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc05_simple_race.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc06_two_races.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc07_hbl1-tc07_hbl1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc08_hbl2-tc08_hbl2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc09_bad_unlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc10_rec_lock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc11_XCHG.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc12_rwl_trivial.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc13_laog1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc14_laog_dinphils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc15_laog_lockdel.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc16_byterace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc17_sembar.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc18_semabuse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc19_shadowmem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc20_verifywrap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc21_pthonce.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc22_exit_w_lock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc23_bogus_condwait.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc24_nonzero_sem.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@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@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@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) '$<'`

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

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

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

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

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

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

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_PROGRAMS)
	$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(SCRIPTS)
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-checkPROGRAMS clean-generic clean-local 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

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-checkPROGRAMS clean-generic clean-local ctags distclean \
	distclean-compile distclean-generic 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 pdf pdf-am ps ps-am tags uninstall \
	uninstall-am


# This used to be required when Vex had a handwritten Makefile.  It
# shouldn't be needed any more, though.

#----------------------------------------------------------------------------
# noinst_PROGRAMS and noinst_DSYMS targets
#----------------------------------------------------------------------------

# On Darwin, for a program 'p', the DWARF debug info is stored in the
# directory 'p.dSYM'.  This must be generated after the executable is
# created, with 'dsymutil p'.  We could redefine LINK with a script that
# executes 'dsymutil' after linking, but that's a pain.  Instead we use this
# hook so that every time "make check" is run, we subsequently invoke
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are
# newer than their corresponding .dSYM directory.
build-noinst_DSYMS: $(noinst_DSYMS)
	for f in $(noinst_DSYMS); do \
	  if [ ! -e $$f.dSYM  -o  $$f -nt $$f.dSYM ] ; then \
	      echo "dsymutil $$f"; \
	      dsymutil $$f; \
	  fi; \
	done

# This is used by coregrind/Makefile.am and Makefile.tool.am for doing
# "in-place" installs.  It copies $(noinst_PROGRAMS) into $inplacedir.
# It needs to be depended on by an 'all-local' rule.
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
	mkdir -p $(inplacedir); \
	for f in $(noinst_PROGRAMS) ; do \
	  rm -f $(inplacedir)/$$f; \
	  ln -f -s ../$(subdir)/$$f $(inplacedir); \
	done

# Similar to inplace-noinst_PROGRAMS
inplace-noinst_DSYMS: build-noinst_DSYMS
	mkdir -p $(inplacedir); \
	for f in $(noinst_DSYMS); do \
	  rm -f $(inplacedir)/$$f.dSYM; \
	  ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \
	done

# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make install".  It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/.
# It needs to be depended on by an 'install-exec-local' rule.
install-noinst_PROGRAMS: $(noinst_PROGRAMS)
	$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
	for f in $(noinst_PROGRAMS); do \
	  $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
	done

# Similar to install-noinst_PROGRAMS.
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with
# directories.  XXX: not sure whether the resulting permissions will be
# correct when using 'cp -R'...
install-noinst_DSYMS: build-noinst_DSYMS
	$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
	for f in $(noinst_DSYMS); do \
	  cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \
	done

# This needs to be depended on by a 'clean-local' rule.
clean-noinst_DSYMS:
	for f in $(noinst_DSYMS); do \
	  rm -rf $$f.dSYM; \
	done

check-local: build-noinst_DSYMS

clean-local: clean-noinst_DSYMS

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