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

# Copyright (C) 1994-2014 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 should be included (directly or indirectly) by every
# Makefile.am that builds programs.  And also the top-level Makefile.am.

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


VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
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@
@COMPILER_IS_CLANG_TRUE@am__append_1 = -Wno-cast-align -Wno-self-assign \
@COMPILER_IS_CLANG_TRUE@                  -Wno-tautological-compare

@SOLARIS_XPG_SYMBOLS_PRESENT_TRUE@am__append_2 = -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile

# 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_3 = -nostdlib

# On Android we must ask for non-executable stack, not sure why.
@VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE@@VGCONF_PLATVARIANT_IS_ANDROID_TRUE@am__append_4 = -Wl,-z,noexecstack
noinst_PROGRAMS = helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@$(EXEEXT) \
	$(am__EXEEXT_1) \
	vgpreload_helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so$(EXEEXT) \
	$(am__EXEEXT_2)
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_5 = helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@
@VGCONF_HAVE_PLATFORM_SEC_FALSE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES =
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_6 = vgpreload_helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
subdir = helgrind
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)
DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
	$(pkginclude_HEADERS) $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__EXEEXT_1 = helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@$(EXEEXT)
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__EXEEXT_2 = vgpreload_helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am__objects_1 =  \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.$(OBJEXT)
am_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_OBJECTS = $(am__objects_1)
helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_OBJECTS =  \
	$(am_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_OBJECTS)
am__helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES_DIST =  \
	hg_addrdescr.c hg_basics.c hg_errors.c hg_lock_n_thread.c \
	hg_main.c hg_wordset.c libhb_core.c
am__objects_2 =  \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.$(OBJEXT) \
	helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.$(OBJEXT)
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_OBJECTS =  \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(am__objects_2)
helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_OBJECTS =  \
	$(am_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_OBJECTS)
am__objects_3 = vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.$(OBJEXT)
am_vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_OBJECTS =  \
	$(am__objects_3)
vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_OBJECTS = $(am_vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_OBJECTS)
vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDADD = $(LDADD)
vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LINK = $(CCLD) \
	$(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS) \
	$(CFLAGS) \
	$(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS) \
	$(LDFLAGS) -o $@
am__vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES_DIST =  \
	hg_intercepts.c
am__objects_4 = vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.$(OBJEXT)
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am_vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_OBJECTS =  \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(am__objects_4)
vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_OBJECTS = $(am_vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_OBJECTS)
vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDADD = $(LDADD)
vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LINK = $(CCLD) \
	$(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS) \
	$(CFLAGS) \
	$(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS) \
	$(LDFLAGS) -o $@
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
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_CC_1 = 
CCLD = $(CC)
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_CCLD_1 = 
SOURCES = $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES) \
	$(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES) \
	$(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES) \
	$(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES)
DIST_SOURCES = $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES) \
	$(am__helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES_DIST) \
	$(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES) \
	$(am__vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES_DIST)
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
	ctags-recursive dvi-recursive html-recursive info-recursive \
	install-data-recursive install-dvi-recursive \
	install-exec-recursive install-html-recursive \
	install-info-recursive install-pdf-recursive \
	install-ps-recursive install-recursive installcheck-recursive \
	installdirs-recursive pdf-recursive ps-recursive \
	tags-recursive uninstall-recursive
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
  distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
  $(RECURSIVE_TARGETS) \
  $(RECURSIVE_CLEAN_TARGETS) \
  $(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
	distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates.  Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
  BEGIN { nonempty = 0; } \
  { items[$$0] = 1; nonempty = 1; } \
  END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique.  This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
  list='$(am__tagged_files)'; \
  unique=`for i in $$list; do \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
	$(top_srcdir)/Makefile.tool.am $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
  dir0=`pwd`; \
  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
  sed_rest='s,^[^/]*/*,,'; \
  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
  sed_butlast='s,/*[^/]*$$,,'; \
  while test -n "$$dir1"; do \
    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
    if test "$$first" != "."; then \
      if test "$$first" = ".."; then \
        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
      else \
        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
        if test "$$first2" = "$$first"; then \
          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
        else \
          dir2="../$$dir2"; \
        fi; \
        dir0="$$dir0"/"$$first"; \
      fi; \
    fi; \
    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
  done; \
  reldir="$$dir2"
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
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@
DIS_PATH = @DIS_PATH@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
FLAG_FSANITIZE = @FLAG_FSANITIZE@
FLAG_M32 = @FLAG_M32@
FLAG_M64 = @FLAG_M64@
FLAG_MIPS32 = @FLAG_MIPS32@
FLAG_MIPS64 = @FLAG_MIPS64@
FLAG_MLONG_DOUBLE_128 = @FLAG_MLONG_DOUBLE_128@
FLAG_MMMX = @FLAG_MMMX@
FLAG_MSSE = @FLAG_MSSE@
FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@
FLAG_NO_PIE = @FLAG_NO_PIE@
FLAG_OCTEON = @FLAG_OCTEON@
FLAG_OCTEON2 = @FLAG_OCTEON2@
FLAG_T_TEXT = @FLAG_T_TEXT@
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
FLAG_W_CAST_ALIGN = @FLAG_W_CAST_ALIGN@
FLAG_W_CAST_QUAL = @FLAG_W_CAST_QUAL@
FLAG_W_EMPTY_BODY = @FLAG_W_EMPTY_BODY@
FLAG_W_EXTRA = @FLAG_W_EXTRA@
FLAG_W_FORMAT = @FLAG_W_FORMAT@
FLAG_W_FORMAT_SECURITY = @FLAG_W_FORMAT_SECURITY@
FLAG_W_FORMAT_SIGNEDNESS = @FLAG_W_FORMAT_SIGNEDNESS@
FLAG_W_IGNORED_QUALIFIERS = @FLAG_W_IGNORED_QUALIFIERS@
FLAG_W_MISSING_PARAMETER_TYPE = @FLAG_W_MISSING_PARAMETER_TYPE@
FLAG_W_NO_INFINITE_RECURSION = @FLAG_W_NO_INFINITE_RECURSION@
FLAG_W_NO_MEMSET_TRANSPOSED_ARGS = @FLAG_W_NO_MEMSET_TRANSPOSED_ARGS@
FLAG_W_NO_MISMATCHED_NEW_DELETE = @FLAG_W_NO_MISMATCHED_NEW_DELETE@
FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@
FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@
FLAG_W_NO_POINTER_SIGN = @FLAG_W_NO_POINTER_SIGN@
FLAG_W_NO_STATIC_LOCAL_IN_INLINE = @FLAG_W_NO_STATIC_LOCAL_IN_INLINE@
FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@
FLAG_W_NO_UNUSED_FUNCTION = @FLAG_W_NO_UNUSED_FUNCTION@
FLAG_W_OLD_STYLE_DECLARATION = @FLAG_W_OLD_STYLE_DECLARATION@
FLAG_W_WRITE_STRINGS = @FLAG_W_WRITE_STRINGS@
GDB = @GDB@
GLIBC_VERSION = @GLIBC_VERSION@
GREP = @GREP@
HWCAP_HAS_ALTIVEC = @HWCAP_HAS_ALTIVEC@
HWCAP_HAS_DFP = @HWCAP_HAS_DFP@
HWCAP_HAS_HTM = @HWCAP_HAS_HTM@
HWCAP_HAS_ISA_2_05 = @HWCAP_HAS_ISA_2_05@
HWCAP_HAS_ISA_2_06 = @HWCAP_HAS_ISA_2_06@
HWCAP_HAS_ISA_2_07 = @HWCAP_HAS_ISA_2_07@
HWCAP_HAS_ISA_3_00 = @HWCAP_HAS_ISA_3_00@
HWCAP_HAS_VSX = @HWCAP_HAS_VSX@
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@
LIB_UBSAN = @LIB_UBSAN@
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_2 = @PREFERRED_STACK_BOUNDARY_2@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOLARIS_UNDEF_LARGESOURCE = @SOLARIS_UNDEF_LARGESOURCE@
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@
VG_TMPDIR = @VG_TMPDIR@
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@
SUBDIRS = . tests
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 -std=gnu99 -Wall -Wmissing-prototypes -Wshadow \
	-Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
	@FLAG_W_CAST_ALIGN@ @FLAG_W_CAST_QUAL@ @FLAG_W_WRITE_STRINGS@ \
	@FLAG_W_EMPTY_BODY@ @FLAG_W_FORMAT@ @FLAG_W_FORMAT_SIGNEDNESS@ \
	@FLAG_W_FORMAT_SECURITY@ @FLAG_W_IGNORED_QUALIFIERS@ \
	@FLAG_W_MISSING_PARAMETER_TYPE@ @FLAG_W_OLD_STYLE_DECLARATION@ \
	@FLAG_FNO_STACK_PROTECTOR@ @FLAG_FSANITIZE@ \
	-fno-strict-aliasing -fno-builtin $(am__append_1)
@VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@


# These flags are used for building the preload shared objects (PSOs).
# 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.  Also, we must use any
# -mpreferred-stack-boundary flag to build the preload shared
# objects, since that risks misaligning the client's stack and
# results in segfaults like (eg) #324050.
@VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
@VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@


# 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_builddir)/include \
	-I$(top_srcdir)/VEX/pub \
	-I$(top_builddir)/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_builddir)/include \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-I$(top_srcdir)/VEX/pub \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	-I$(top_builddir)/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_2@ \
				$(AM_CFLAGS_BASE) -fomit-frame-pointer

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

AM_CFLAGS_PSO_AMD64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64BE_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64BE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ \
			 	$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8

AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \
				-marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)

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

AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@
AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_X86_DARWIN = -arch i386
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
				-mmacosx-version-min=10.6 \
				-fno-stack-protector -fno-pic -fno-PIC

AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
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.6 -fno-stack-protector

AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
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_CFLAGS_PSO_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
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) @FLAG_MIPS32@
AM_CFLAGS_PSO_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@ \
				$(AM_CFLAGS_PSO_BASE)

AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -g @FLAG_MIPS32@
AM_FLAG_M3264_MIPS64_LINUX = @FLAG_M64@
AM_CFLAGS_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@
AM_CFLAGS_PSO_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@ \
				$(AM_CFLAGS_PSO_BASE)

AM_CCASFLAGS_MIPS64_LINUX = @FLAG_M64@ -g @FLAG_MIPS64@
AM_FLAG_M3264_X86_SOLARIS = @FLAG_M32@
AM_CFLAGS_X86_SOLARIS = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \
				$(AM_CFLAGS_BASE) -fomit-frame-pointer \
				@SOLARIS_UNDEF_LARGESOURCE@

AM_CFLAGS_PSO_X86_SOLARIS = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_SOLARIS = @FLAG_M32@ -g -D_ASM
AM_FLAG_M3264_AMD64_SOLARIS = @FLAG_M64@
AM_CFLAGS_AMD64_SOLARIS = @FLAG_M64@ \
				$(AM_CFLAGS_BASE) -fomit-frame-pointer

AM_CFLAGS_PSO_AMD64_SOLARIS = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_SOLARIS = @FLAG_M64@ -g -D_ASM

# 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_3)
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared \
	-Wl,-z,interpose,-z,initfirst $(am__append_2)
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_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
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@
PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M32@
PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M64@

#----------------------------------------------------------------------------
# <tool>-<platform> stuff
#----------------------------------------------------------------------------
TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@ = \
	$(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
	$(top_builddir)/VEX/libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a

@VGCONF_HAVE_PLATFORM_SEC_TRUE@TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@ = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a

TOOL_LDADD_COMMON = -lgcc
TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \
	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@ = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@) $(TOOL_LDADD_COMMON)


# -Wl,--build-id=none is needed when linking tools with a linker that only
# knows -Ttext and not -Ttext-segment. Without this flag newer ld versions
# (2.20 and later) create a .note.gnu.build-id at the default text segment
# address, which of course means the resulting executable
# is unusable. So we have to tell ld not to generate that, with
# --build-id=none unless the linker supports -Ttext-segment.
TOOL_LDFLAGS_COMMON_LINUX = \
	-static -nodefaultlibs -nostartfiles -u _start @FLAG_NO_BUILD_ID@

TOOL_LDFLAGS_COMMON_DARWIN = \
	-nodefaultlibs -nostartfiles -Wl,-u,__start -Wl,-e,__start

TOOL_LDFLAGS_COMMON_SOLARIS = \
	-static -nodefaultlibs -nostartfiles -u _start \
	-Wl,-M,/usr/lib/ld/map.noexstk

TOOL_LDFLAGS_X86_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@

TOOL_LDFLAGS_AMD64_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@

TOOL_LDFLAGS_PPC32_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@

TOOL_LDFLAGS_PPC64BE_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@

TOOL_LDFLAGS_PPC64LE_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@

TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
	$(am__append_4)
TOOL_LDFLAGS_ARM64_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@

TOOL_LDFLAGS_S390X_LINUX = \
	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@

TOOL_LDFLAGS_X86_DARWIN = \
	$(TOOL_LDFLAGS_COMMON_DARWIN) -arch i386

TOOL_LDFLAGS_AMD64_DARWIN = \
	$(TOOL_LDFLAGS_COMMON_DARWIN) -arch x86_64


# MIPS Linux default start symbol is __start, not _start like on x86 or amd
TOOL_LDFLAGS_MIPS32_LINUX = \
	-static -nodefaultlibs -nostartfiles -u __start @FLAG_NO_BUILD_ID@ \
	@FLAG_M32@

TOOL_LDFLAGS_MIPS64_LINUX = \
	-static -nodefaultlibs -nostartfiles -u __start @FLAG_NO_BUILD_ID@ \
	@FLAG_M64@

TOOL_LDFLAGS_X86_SOLARIS = \
	$(TOOL_LDFLAGS_COMMON_SOLARIS) @FLAG_M32@

TOOL_LDFLAGS_AMD64_SOLARIS = \
	$(TOOL_LDFLAGS_COMMON_SOLARIS) @FLAG_M64@


# NB for 64-bit darwin.  We may want to set -Wl,-pagezero_size to
# something smaller than the default of 4G, so as to facilitate
# loading clients who are also linked thusly (currently m_ume.c
# will fail to load them).  Although such setting is probably
# better done in link_tool_exe.c.
#
#	-Wl,-pagezero_size,0x100000000

#----------------------------------------------------------------------------
# vgpreload_<tool>-<platform>.a stuff
#----------------------------------------------------------------------------
LIBREPLACEMALLOC_X86_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-x86-linux.a

LIBREPLACEMALLOC_AMD64_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-linux.a

LIBREPLACEMALLOC_PPC32_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc32-linux.a

LIBREPLACEMALLOC_PPC64BE_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64be-linux.a

LIBREPLACEMALLOC_PPC64LE_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a

LIBREPLACEMALLOC_ARM_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a

LIBREPLACEMALLOC_ARM64_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm64-linux.a

LIBREPLACEMALLOC_X86_DARWIN = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-x86-darwin.a

LIBREPLACEMALLOC_AMD64_DARWIN = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-darwin.a

LIBREPLACEMALLOC_S390X_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-s390x-linux.a

LIBREPLACEMALLOC_MIPS32_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-mips32-linux.a

LIBREPLACEMALLOC_MIPS64_LINUX = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-mips64-linux.a

LIBREPLACEMALLOC_X86_SOLARIS = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-x86-solaris.a

LIBREPLACEMALLOC_AMD64_SOLARIS = \
	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-solaris.a

LIBREPLACEMALLOC_LDFLAGS_X86_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_X86_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_AMD64_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_PPC32_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_PPC64BE_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_PPC64BE_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_PPC64LE_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_ARM_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_ARM64_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_ARM64_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_X86_DARWIN = \
	$(LIBREPLACEMALLOC_X86_DARWIN)

LIBREPLACEMALLOC_LDFLAGS_AMD64_DARWIN = \
	$(LIBREPLACEMALLOC_AMD64_DARWIN)

LIBREPLACEMALLOC_LDFLAGS_S390X_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_S390X_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_MIPS32_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_MIPS32_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_MIPS64_LINUX = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_MIPS64_LINUX) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_X86_SOLARIS = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_X86_SOLARIS) \
	-Wl,--no-whole-archive

LIBREPLACEMALLOC_LDFLAGS_AMD64_SOLARIS = \
	-Wl,--whole-archive \
	$(LIBREPLACEMALLOC_AMD64_SOLARIS) \
	-Wl,--no-whole-archive

EXTRA_DIST = \
	docs/hg-manual.xml \
	README_MSMProp2.txt \
	README_YARD.txt


#----------------------------------------------------------------------------
# Headers, etc
#----------------------------------------------------------------------------
pkginclude_HEADERS = helgrind.h
noinst_HEADERS = \
	hg_addrdescr.h \
	hg_basics.h \
	hg_errors.h \
	hg_lock_n_thread.h \
	hg_wordset.h \
	libhb.h

HELGRIND_SOURCES_COMMON = \
	hg_addrdescr.c \
	hg_basics.c \
	hg_errors.c \
	hg_lock_n_thread.c \
	hg_main.c \
	hg_wordset.c \
	libhb_core.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
	$(HELGRIND_SOURCES_COMMON)

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
	$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -O2

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES = \
	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@)

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = \
	$(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
	$(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
	$(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
	@VALT_LOAD_ADDRESS_PRI@ \
	$(LINK) \
	$(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
	$(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(HELGRIND_SOURCES_COMMON)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -O2

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDADD = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	@VALT_LOAD_ADDRESS_SEC@ \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(LINK) \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)

@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(noinst_PROGRAMS)
VGPRELOAD_HELGRIND_SOURCES_COMMON = hg_intercepts.c
vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = \
	$(VGPRELOAD_HELGRIND_SOURCES_COMMON)

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES = \
	$(LIBREPLACEMALLOC_@VGCONF_PLATFORM_PRI_CAPS@)

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
	$(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(VGPRELOAD_HELGRIND_SOURCES_COMMON)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(LIBREPLACEMALLOC_@VGCONF_PLATFORM_SEC_CAPS@)

@VGCONF_HAVE_PLATFORM_SEC_TRUE@vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@	$(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)

all: all-recursive

.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool.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/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign helgrind/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_srcdir)/Makefile.tool.am $(top_srcdir)/Makefile.all.am $(am__empty):

$(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:
	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)

helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@$(EXEEXT): $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_OBJECTS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES) $(EXTRA_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES) 
	@rm -f helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@$(EXEEXT)
	$(AM_V_GEN)$(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_OBJECTS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD) $(LIBS)

helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@$(EXEEXT): $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_OBJECTS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES) $(EXTRA_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES) 
	@rm -f helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@$(EXEEXT)
	$(AM_V_GEN)$(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_OBJECTS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDADD) $(LIBS)

vgpreload_helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so$(EXEEXT): $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_OBJECTS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES) $(EXTRA_vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES) 
	@rm -f vgpreload_helgrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so$(EXEEXT)
	$(AM_V_CCLD)$(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LINK) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_OBJECTS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDADD) $(LIBS)

vgpreload_helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so$(EXEEXT): $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_OBJECTS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES) $(EXTRA_vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES) 
	@rm -f vgpreload_helgrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so$(EXEEXT)
	$(AM_V_CCLD)$(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LINK) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_OBJECTS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<

.c.obj:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.o: hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.o `test -f 'hg_addrdescr.c' || echo '$(srcdir)/'`hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_addrdescr.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.o `test -f 'hg_addrdescr.c' || echo '$(srcdir)/'`hg_addrdescr.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.obj: hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.obj `if test -f 'hg_addrdescr.c'; then $(CYGPATH_W) 'hg_addrdescr.c'; else $(CYGPATH_W) '$(srcdir)/hg_addrdescr.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_addrdescr.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_addrdescr.obj `if test -f 'hg_addrdescr.c'; then $(CYGPATH_W) 'hg_addrdescr.c'; else $(CYGPATH_W) '$(srcdir)/hg_addrdescr.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.o: hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.o `test -f 'hg_basics.c' || echo '$(srcdir)/'`hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_basics.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.o `test -f 'hg_basics.c' || echo '$(srcdir)/'`hg_basics.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.obj: hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.obj `if test -f 'hg_basics.c'; then $(CYGPATH_W) 'hg_basics.c'; else $(CYGPATH_W) '$(srcdir)/hg_basics.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_basics.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_basics.obj `if test -f 'hg_basics.c'; then $(CYGPATH_W) 'hg_basics.c'; else $(CYGPATH_W) '$(srcdir)/hg_basics.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.o: hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.o `test -f 'hg_errors.c' || echo '$(srcdir)/'`hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_errors.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.o `test -f 'hg_errors.c' || echo '$(srcdir)/'`hg_errors.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.obj: hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.obj `if test -f 'hg_errors.c'; then $(CYGPATH_W) 'hg_errors.c'; else $(CYGPATH_W) '$(srcdir)/hg_errors.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_errors.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_errors.obj `if test -f 'hg_errors.c'; then $(CYGPATH_W) 'hg_errors.c'; else $(CYGPATH_W) '$(srcdir)/hg_errors.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.o: hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.o `test -f 'hg_lock_n_thread.c' || echo '$(srcdir)/'`hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_lock_n_thread.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.o `test -f 'hg_lock_n_thread.c' || echo '$(srcdir)/'`hg_lock_n_thread.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.obj: hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.obj `if test -f 'hg_lock_n_thread.c'; then $(CYGPATH_W) 'hg_lock_n_thread.c'; else $(CYGPATH_W) '$(srcdir)/hg_lock_n_thread.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_lock_n_thread.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_lock_n_thread.obj `if test -f 'hg_lock_n_thread.c'; then $(CYGPATH_W) 'hg_lock_n_thread.c'; else $(CYGPATH_W) '$(srcdir)/hg_lock_n_thread.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.o: hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.o `test -f 'hg_main.c' || echo '$(srcdir)/'`hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_main.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.o `test -f 'hg_main.c' || echo '$(srcdir)/'`hg_main.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.obj: hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.obj `if test -f 'hg_main.c'; then $(CYGPATH_W) 'hg_main.c'; else $(CYGPATH_W) '$(srcdir)/hg_main.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_main.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_main.obj `if test -f 'hg_main.c'; then $(CYGPATH_W) 'hg_main.c'; else $(CYGPATH_W) '$(srcdir)/hg_main.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.o: hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.o `test -f 'hg_wordset.c' || echo '$(srcdir)/'`hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_wordset.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.o `test -f 'hg_wordset.c' || echo '$(srcdir)/'`hg_wordset.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.obj: hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.obj `if test -f 'hg_wordset.c'; then $(CYGPATH_W) 'hg_wordset.c'; else $(CYGPATH_W) '$(srcdir)/hg_wordset.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_wordset.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-hg_wordset.obj `if test -f 'hg_wordset.c'; then $(CYGPATH_W) 'hg_wordset.c'; else $(CYGPATH_W) '$(srcdir)/hg_wordset.c'; fi`

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.o: libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.o `test -f 'libhb_core.c' || echo '$(srcdir)/'`libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libhb_core.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.o `test -f 'libhb_core.c' || echo '$(srcdir)/'`libhb_core.c

helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.obj: libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Tpo -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.obj `if test -f 'libhb_core.c'; then $(CYGPATH_W) 'libhb_core.c'; else $(CYGPATH_W) '$(srcdir)/libhb_core.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libhb_core.c' object='helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.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) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@-libhb_core.obj `if test -f 'libhb_core.c'; then $(CYGPATH_W) 'libhb_core.c'; else $(CYGPATH_W) '$(srcdir)/libhb_core.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.o: hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.o `test -f 'hg_addrdescr.c' || echo '$(srcdir)/'`hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_addrdescr.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.o `test -f 'hg_addrdescr.c' || echo '$(srcdir)/'`hg_addrdescr.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.obj: hg_addrdescr.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.obj `if test -f 'hg_addrdescr.c'; then $(CYGPATH_W) 'hg_addrdescr.c'; else $(CYGPATH_W) '$(srcdir)/hg_addrdescr.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_addrdescr.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_addrdescr.obj `if test -f 'hg_addrdescr.c'; then $(CYGPATH_W) 'hg_addrdescr.c'; else $(CYGPATH_W) '$(srcdir)/hg_addrdescr.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.o: hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.o `test -f 'hg_basics.c' || echo '$(srcdir)/'`hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_basics.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.o `test -f 'hg_basics.c' || echo '$(srcdir)/'`hg_basics.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.obj: hg_basics.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.obj `if test -f 'hg_basics.c'; then $(CYGPATH_W) 'hg_basics.c'; else $(CYGPATH_W) '$(srcdir)/hg_basics.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_basics.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_basics.obj `if test -f 'hg_basics.c'; then $(CYGPATH_W) 'hg_basics.c'; else $(CYGPATH_W) '$(srcdir)/hg_basics.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.o: hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.o `test -f 'hg_errors.c' || echo '$(srcdir)/'`hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_errors.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.o `test -f 'hg_errors.c' || echo '$(srcdir)/'`hg_errors.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.obj: hg_errors.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.obj `if test -f 'hg_errors.c'; then $(CYGPATH_W) 'hg_errors.c'; else $(CYGPATH_W) '$(srcdir)/hg_errors.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_errors.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_errors.obj `if test -f 'hg_errors.c'; then $(CYGPATH_W) 'hg_errors.c'; else $(CYGPATH_W) '$(srcdir)/hg_errors.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.o: hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.o `test -f 'hg_lock_n_thread.c' || echo '$(srcdir)/'`hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_lock_n_thread.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.o `test -f 'hg_lock_n_thread.c' || echo '$(srcdir)/'`hg_lock_n_thread.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.obj: hg_lock_n_thread.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.obj `if test -f 'hg_lock_n_thread.c'; then $(CYGPATH_W) 'hg_lock_n_thread.c'; else $(CYGPATH_W) '$(srcdir)/hg_lock_n_thread.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_lock_n_thread.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_lock_n_thread.obj `if test -f 'hg_lock_n_thread.c'; then $(CYGPATH_W) 'hg_lock_n_thread.c'; else $(CYGPATH_W) '$(srcdir)/hg_lock_n_thread.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.o: hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.o `test -f 'hg_main.c' || echo '$(srcdir)/'`hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_main.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.o `test -f 'hg_main.c' || echo '$(srcdir)/'`hg_main.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.obj: hg_main.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.obj `if test -f 'hg_main.c'; then $(CYGPATH_W) 'hg_main.c'; else $(CYGPATH_W) '$(srcdir)/hg_main.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_main.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_main.obj `if test -f 'hg_main.c'; then $(CYGPATH_W) 'hg_main.c'; else $(CYGPATH_W) '$(srcdir)/hg_main.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.o: hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.o `test -f 'hg_wordset.c' || echo '$(srcdir)/'`hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_wordset.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.o `test -f 'hg_wordset.c' || echo '$(srcdir)/'`hg_wordset.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.obj: hg_wordset.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.obj `if test -f 'hg_wordset.c'; then $(CYGPATH_W) 'hg_wordset.c'; else $(CYGPATH_W) '$(srcdir)/hg_wordset.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_wordset.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-hg_wordset.obj `if test -f 'hg_wordset.c'; then $(CYGPATH_W) 'hg_wordset.c'; else $(CYGPATH_W) '$(srcdir)/hg_wordset.c'; fi`

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.o: libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.o -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.o `test -f 'libhb_core.c' || echo '$(srcdir)/'`libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libhb_core.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.o `test -f 'libhb_core.c' || echo '$(srcdir)/'`libhb_core.c

helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.obj: libhb_core.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -MT helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.obj -MD -MP -MF $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Tpo -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.obj `if test -f 'libhb_core.c'; then $(CYGPATH_W) 'libhb_core.c'; else $(CYGPATH_W) '$(srcdir)/libhb_core.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Tpo $(DEPDIR)/helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libhb_core.c' object='helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.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) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS) $(CPPFLAGS) $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) $(CFLAGS) -c -o helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@-libhb_core.obj `if test -f 'libhb_core.c'; then $(CYGPATH_W) 'libhb_core.c'; else $(CYGPATH_W) '$(srcdir)/libhb_core.c'; fi`

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.o: hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -MT vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.o -MD -MP -MF $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Tpo -c -o vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.o `test -f 'hg_intercepts.c' || echo '$(srcdir)/'`hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Tpo $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_intercepts.c' object='vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.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) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -c -o vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.o `test -f 'hg_intercepts.c' || echo '$(srcdir)/'`hg_intercepts.c

vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.obj: hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -MT vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.obj -MD -MP -MF $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Tpo -c -o vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.obj `if test -f 'hg_intercepts.c'; then $(CYGPATH_W) 'hg_intercepts.c'; else $(CYGPATH_W) '$(srcdir)/hg_intercepts.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Tpo $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_intercepts.c' object='vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.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) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -c -o vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so-hg_intercepts.obj `if test -f 'hg_intercepts.c'; then $(CYGPATH_W) 'hg_intercepts.c'; else $(CYGPATH_W) '$(srcdir)/hg_intercepts.c'; fi`

vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.o: hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -MT vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.o -MD -MP -MF $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Tpo -c -o vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.o `test -f 'hg_intercepts.c' || echo '$(srcdir)/'`hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Tpo $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_intercepts.c' object='vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.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) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -c -o vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.o `test -f 'hg_intercepts.c' || echo '$(srcdir)/'`hg_intercepts.c

vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.obj: hg_intercepts.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -MT vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.obj -MD -MP -MF $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Tpo -c -o vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.obj `if test -f 'hg_intercepts.c'; then $(CYGPATH_W) 'hg_intercepts.c'; else $(CYGPATH_W) '$(srcdir)/hg_intercepts.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Tpo $(DEPDIR)/vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hg_intercepts.c' object='vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.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) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS) $(CPPFLAGS) $(vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS) $(CFLAGS) -c -o vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so-hg_intercepts.obj `if test -f 'hg_intercepts.c'; then $(CYGPATH_W) 'hg_intercepts.c'; else $(CYGPATH_W) '$(srcdir)/hg_intercepts.c'; fi`
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
	done

uninstall-pkgincludeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)

# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
#     (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
	@fail=; \
	if $(am__make_keepgoing); then \
	  failcom='fail=yes'; \
	else \
	  failcom='exit 1'; \
	fi; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	$(am__define_uniq_tagged_files); \
	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-recursive

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	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"
cscopelist: cscopelist-recursive

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

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
	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    $(am__make_dryrun) \
	      || test -d "$(distdir)/$$subdir" \
	      || $(MKDIR_P) "$(distdir)/$$subdir" \
	      || exit 1; \
	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
	    $(am__relativize); \
	    new_distdir=$$reldir; \
	    dir1=$$subdir; dir2="$(top_distdir)"; \
	    $(am__relativize); \
	    new_top_distdir=$$reldir; \
	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
	    ($(am__cd) $$subdir && \
	      $(MAKE) $(AM_MAKEFLAGS) \
	        top_distdir="$$new_top_distdir" \
	        distdir="$$new_distdir" \
		am__remove_distdir=: \
		am__skip_length_check=: \
		am__skip_mode_fix=: \
	        distdir) \
	      || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-recursive
all-am: Makefile $(PROGRAMS) $(HEADERS) all-local
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(pkgincludedir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-recursive
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-recursive

clean-am: clean-generic clean-local clean-noinstPROGRAMS \
	mostlyclean-am

distclean: distclean-recursive
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-recursive

dvi-am:

html: html-recursive

html-am:

info: info-recursive

info-am:

install-data-am: install-pkgincludeHEADERS

install-dvi: install-dvi-recursive

install-dvi-am:

install-exec-am: install-exec-local

install-html: install-html-recursive

install-html-am:

install-info: install-info-recursive

install-info-am:

install-man:

install-pdf: install-pdf-recursive

install-pdf-am:

install-ps: install-ps-recursive

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

mostlyclean-am: mostlyclean-compile mostlyclean-generic

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-local uninstall-pkgincludeHEADERS

.MAKE: $(am__recursive_targets) install-am install-strip

.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
	check check-am clean clean-generic clean-local \
	clean-noinstPROGRAMS cscopelist-am ctags ctags-am 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-exec-local install-html \
	install-html-am install-info install-info-am install-man \
	install-pdf install-pdf-am install-pkgincludeHEADERS \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs installdirs-am maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
	uninstall-am uninstall-local uninstall-pkgincludeHEADERS

.PRECIOUS: Makefile


# 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

# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make uninstall".  It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/.
# It needs to be depended on by an 'uninstall-local' rule.
uninstall-noinst_PROGRAMS:
	for f in $(noinst_PROGRAMS); do \
	  rm -f $(DESTDIR)$(pkglibdir)/$$f; \
	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

# Similar to uninstall-noinst_PROGRAMS.
uninstall-noinst_DSYMS:
	for f in $(noinst_DSYMS); do \
	  rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \
	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

#----------------------------------------------------------------------------
# General stuff
#----------------------------------------------------------------------------

all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS

clean-local: clean-noinst_DSYMS

install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS

uninstall-local: uninstall-noinst_PROGRAMS uninstall-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:
