# 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 is used for tool tests, and also in perf/Makefile.am.

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

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

VPATH = @srcdir@
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
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_4 = -DVGA_SEC_@VGCONF_ARCH_SEC@=1  \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@		-DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1


# Make sure that all test programs have threaded errno.
# Disable largefile support as there are test cases explicitly enabling it.
@VGCONF_OS_IS_SOLARIS_TRUE@am__append_5 = -D_REENTRANT @SOLARIS_UNDEF_LARGESOURCE@
@COMPILER_IS_CLANG_TRUE@am__append_6 = -Wno-format-extra-args \
@COMPILER_IS_CLANG_TRUE@	-Wno-literal-range \
@COMPILER_IS_CLANG_TRUE@	-Wno-tautological-constant-out-of-range-compare \
@COMPILER_IS_CLANG_TRUE@	-Wno-self-assign -Wno-string-plus-int \
@COMPILER_IS_CLANG_TRUE@	-Wno-uninitialized -Wno-unused-value # \
@COMPILER_IS_CLANG_TRUE@	clang 3.0.0
@COMPILER_IS_CLANG_TRUE@am__append_7 = -Wno-unused-private-field    # drd/tests/tsan_unittest.cpp
check_PROGRAMS = allexec$(EXEEXT) arithmetic_instruction$(EXEEXT) \
	branch_and_jump_instructions$(EXEEXT) branches$(EXEEXT) \
	change_fp_mode$(EXEEXT) cvm_bbit$(EXEEXT) cvm_ins$(EXEEXT) \
	cvm_lx_ins$(EXEEXT) cvm_atomic$(EXEEXT) \
	cvm_atomic_thread$(EXEEXT) extract_insert_bit_field$(EXEEXT) \
	fpu_arithmetic$(EXEEXT) fpu_branches$(EXEEXT) \
	fpu_control_word$(EXEEXT) fpu_load_store$(EXEEXT) \
	load_indexed_instructions$(EXEEXT) load_store$(EXEEXT) \
	load_store_multiple$(EXEEXT) load_store_unaligned$(EXEEXT) \
	logical_instructions$(EXEEXT) move_instructions$(EXEEXT) \
	rotate_swap$(EXEEXT) round$(EXEEXT) \
	shift_instructions$(EXEEXT) test_block_size$(EXEEXT) \
	test_fcsr$(EXEEXT) test_math$(EXEEXT) unaligned_load$(EXEEXT) \
	unaligned_load_store$(EXEEXT)
subdir = none/tests/mips64
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 $(dist_noinst_SCRIPTS) \
	$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
allexec_SOURCES = allexec.c
allexec_OBJECTS = allexec-allexec.$(OBJEXT)
allexec_LDADD = $(LDADD)
allexec_LINK = $(CCLD) $(allexec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
arithmetic_instruction_SOURCES = arithmetic_instruction.c
arithmetic_instruction_OBJECTS = arithmetic_instruction.$(OBJEXT)
arithmetic_instruction_LDADD = $(LDADD)
branch_and_jump_instructions_SOURCES = branch_and_jump_instructions.c
branch_and_jump_instructions_OBJECTS =  \
	branch_and_jump_instructions.$(OBJEXT)
branch_and_jump_instructions_LDADD = $(LDADD)
branches_SOURCES = branches.c
branches_OBJECTS = branches.$(OBJEXT)
branches_LDADD = $(LDADD)
change_fp_mode_SOURCES = change_fp_mode.c
change_fp_mode_OBJECTS = change_fp_mode.$(OBJEXT)
change_fp_mode_LDADD = $(LDADD)
cvm_atomic_SOURCES = cvm_atomic.c
cvm_atomic_OBJECTS = cvm_atomic-cvm_atomic.$(OBJEXT)
cvm_atomic_LDADD = $(LDADD)
cvm_atomic_LINK = $(CCLD) $(cvm_atomic_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
cvm_atomic_thread_SOURCES = cvm_atomic_thread.c
cvm_atomic_thread_OBJECTS =  \
	cvm_atomic_thread-cvm_atomic_thread.$(OBJEXT)
cvm_atomic_thread_LDADD = $(LDADD)
cvm_atomic_thread_LINK = $(CCLD) $(cvm_atomic_thread_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
cvm_bbit_SOURCES = cvm_bbit.c
cvm_bbit_OBJECTS = cvm_bbit-cvm_bbit.$(OBJEXT)
cvm_bbit_LDADD = $(LDADD)
cvm_bbit_LINK = $(CCLD) $(cvm_bbit_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
cvm_ins_SOURCES = cvm_ins.c
cvm_ins_OBJECTS = cvm_ins-cvm_ins.$(OBJEXT)
cvm_ins_LDADD = $(LDADD)
cvm_ins_LINK = $(CCLD) $(cvm_ins_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
cvm_lx_ins_SOURCES = cvm_lx_ins.c
cvm_lx_ins_OBJECTS = cvm_lx_ins-cvm_lx_ins.$(OBJEXT)
cvm_lx_ins_LDADD = $(LDADD)
cvm_lx_ins_LINK = $(CCLD) $(cvm_lx_ins_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
extract_insert_bit_field_SOURCES = extract_insert_bit_field.c
extract_insert_bit_field_OBJECTS = extract_insert_bit_field.$(OBJEXT)
extract_insert_bit_field_LDADD = $(LDADD)
fpu_arithmetic_SOURCES = fpu_arithmetic.c
fpu_arithmetic_OBJECTS = fpu_arithmetic-fpu_arithmetic.$(OBJEXT)
fpu_arithmetic_LDADD = $(LDADD)
fpu_arithmetic_LINK = $(CCLD) $(fpu_arithmetic_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
fpu_branches_SOURCES = fpu_branches.c
fpu_branches_OBJECTS = fpu_branches.$(OBJEXT)
fpu_branches_LDADD = $(LDADD)
fpu_control_word_SOURCES = fpu_control_word.c
fpu_control_word_OBJECTS = fpu_control_word.$(OBJEXT)
fpu_control_word_LDADD = $(LDADD)
fpu_load_store_SOURCES = fpu_load_store.c
fpu_load_store_OBJECTS = fpu_load_store.$(OBJEXT)
fpu_load_store_LDADD = $(LDADD)
load_indexed_instructions_SOURCES = load_indexed_instructions.c
load_indexed_instructions_OBJECTS =  \
	load_indexed_instructions-load_indexed_instructions.$(OBJEXT)
load_indexed_instructions_LDADD = $(LDADD)
load_indexed_instructions_LINK = $(CCLD) \
	$(load_indexed_instructions_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
load_store_SOURCES = load_store.c
load_store_OBJECTS = load_store.$(OBJEXT)
load_store_LDADD = $(LDADD)
load_store_multiple_SOURCES = load_store_multiple.c
load_store_multiple_OBJECTS = load_store_multiple.$(OBJEXT)
load_store_multiple_LDADD = $(LDADD)
load_store_unaligned_SOURCES = load_store_unaligned.c
load_store_unaligned_OBJECTS = load_store_unaligned.$(OBJEXT)
load_store_unaligned_LDADD = $(LDADD)
logical_instructions_SOURCES = logical_instructions.c
logical_instructions_OBJECTS = logical_instructions.$(OBJEXT)
logical_instructions_LDADD = $(LDADD)
move_instructions_SOURCES = move_instructions.c
move_instructions_OBJECTS = move_instructions.$(OBJEXT)
move_instructions_LDADD = $(LDADD)
rotate_swap_SOURCES = rotate_swap.c
rotate_swap_OBJECTS = rotate_swap.$(OBJEXT)
rotate_swap_LDADD = $(LDADD)
round_SOURCES = round.c
round_OBJECTS = round.$(OBJEXT)
round_LDADD = $(LDADD)
shift_instructions_SOURCES = shift_instructions.c
shift_instructions_OBJECTS = shift_instructions.$(OBJEXT)
shift_instructions_LDADD = $(LDADD)
test_block_size_SOURCES = test_block_size.c
test_block_size_OBJECTS = test_block_size.$(OBJEXT)
test_block_size_LDADD = $(LDADD)
test_fcsr_SOURCES = test_fcsr.c
test_fcsr_OBJECTS = test_fcsr.$(OBJEXT)
test_fcsr_LDADD = $(LDADD)
am_test_math_OBJECTS = test_math.$(OBJEXT)
test_math_OBJECTS = $(am_test_math_OBJECTS)
test_math_LDADD = $(LDADD)
unaligned_load_SOURCES = unaligned_load.c
unaligned_load_OBJECTS = unaligned_load.$(OBJEXT)
unaligned_load_LDADD = $(LDADD)
unaligned_load_store_SOURCES = unaligned_load_store.c
unaligned_load_store_OBJECTS = unaligned_load_store.$(OBJEXT)
unaligned_load_store_LDADD = $(LDADD)
SCRIPTS = $(dist_noinst_SCRIPTS)
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 = 
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo "  CXX     " $@;
am__v_CXX_1 = 
CXXLD = $(CXX)
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
	-o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo "  CXXLD   " $@;
am__v_CXXLD_1 = 
SOURCES = allexec.c arithmetic_instruction.c \
	branch_and_jump_instructions.c branches.c change_fp_mode.c \
	cvm_atomic.c cvm_atomic_thread.c cvm_bbit.c cvm_ins.c \
	cvm_lx_ins.c extract_insert_bit_field.c fpu_arithmetic.c \
	fpu_branches.c fpu_control_word.c fpu_load_store.c \
	load_indexed_instructions.c load_store.c load_store_multiple.c \
	load_store_unaligned.c logical_instructions.c \
	move_instructions.c rotate_swap.c round.c shift_instructions.c \
	test_block_size.c test_fcsr.c $(test_math_SOURCES) \
	unaligned_load.c unaligned_load_store.c
DIST_SOURCES = allexec.c arithmetic_instruction.c \
	branch_and_jump_instructions.c branches.c change_fp_mode.c \
	cvm_atomic.c cvm_atomic_thread.c cvm_bbit.c cvm_ins.c \
	cvm_lx_ins.c extract_insert_bit_field.c fpu_arithmetic.c \
	fpu_branches.c fpu_control_word.c fpu_load_store.c \
	load_indexed_instructions.c load_store.c load_store_multiple.c \
	load_store_unaligned.c logical_instructions.c \
	move_instructions.c rotate_swap.c round.c shift_instructions.c \
	test_block_size.c test_fcsr.c $(test_math_SOURCES) \
	unaligned_load.c unaligned_load_store.c
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
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
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
	$(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
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@
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@
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
	-I$(top_srcdir)/coregrind -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 \
	$(am__append_4)

# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
	@FLAG_FNO_STACK_PROTECTOR@ $(am__append_5) $(am__append_6) \
	@FLAG_M64@ $(am__empty)
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
	@FLAG_FNO_STACK_PROTECTOR@ $(am__append_7) @FLAG_M64@
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake;  see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS) @FLAG_M64@
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
	arithmetic_instruction.stdout.exp-mips64 \
	arithmetic_instruction.stdout.exp-mips64r2 arithmetic_instruction.stderr.exp \
	arithmetic_instruction.vgtest \
	branch_and_jump_instructions.stdout.exp \
	branch_and_jump_instructions.stderr.exp branch_and_jump_instructions.vgtest \
	branches.stdout.exp branches.stderr.exp branches.vgtest \
	change_fp_mode.stderr.exp change_fp_mode.stdout.exp change_fp_mode.vgtest \
	cvm_bbit.stdout.exp cvm_bbit.stdout.exp-non-octeon \
	cvm_bbit.stderr.exp cvm_bbit.vgtest \
	cvm_ins.stdout.exp cvm_ins.stdout.exp-non-octeon \
	cvm_ins.stderr.exp cvm_ins.vgtest \
	cvm_lx_ins.stdout.exp-LE cvm_lx_ins.stdout.exp-BE \
	cvm_lx_ins.stdout.exp-non-octeon \
	cvm_lx_ins.stderr.exp cvm_lx_ins.vgtest \
	cvm_atomic.stdout.exp-LE cvm_atomic.stdout.exp-BE \
	cvm_atomic.stdout.exp-non-octeon \
	cvm_atomic.stderr.exp cvm_atomic.vgtest \
	cvm_atomic_thread.stdout.exp cvm_atomic_thread.stdout.exp-non-octeon \
	cvm_atomic_thread.stderr.exp cvm_atomic_thread.vgtest \
	extract_insert_bit_field.stdout.exp-mips64 \
	extract_insert_bit_field.stdout.exp-mips64r2 \
	extract_insert_bit_field.stderr.exp extract_insert_bit_field.vgtest \
	fpu_arithmetic.stdout.exp fpu_arithmetic.stderr.exp fpu_arithmetic.vgtest \
	fpu_branches.stdout.exp fpu_branches.stderr.exp fpu_branches.vgtest \
	fpu_control_word.stdout.exp fpu_control_word.stderr.exp \
	fpu_control_word.vgtest \
	fpu_load_store.stdout.exp-BE fpu_load_store.stdout.exp-LE \
	fpu_load_store.stderr.exp fpu_load_store.vgtest \
	load_indexed_instructions.stdout.exp-BE \
	load_indexed_instructions.stdout.exp-LE \
	load_indexed_instructions.stdout.exp-non-octeon \
	load_indexed_instructions.stderr.exp load_indexed_instructions.vgtest \
	load_store.stdout.exp-BE load_store.stdout.exp-LE load_store.stderr.exp \
	load_store.vgtest \
	load_store_multiple.stdout.exp-BE load_store_multiple.stdout.exp-LE \
	load_store_multiple.stderr.exp load_store_multiple.vgtest \
	load_store_unaligned.stdout.exp load_store_unaligned.stderr.exp \
	load_store_unaligned.vgtest \
	logical_instructions.stdout.exp logical_instructions.stderr.exp \
	logical_instructions.vgtest \
	move_instructions.stdout.exp-BE move_instructions.stdout.exp-LE \
	move_instructions.stderr.exp move_instructions.vgtest \
	rotate_swap.stdout.exp-mips64 rotate_swap.stdout.exp-mips64r2 \
	rotate_swap.stderr.exp rotate_swap.vgtest \
	round.stdout.exp round.stderr.exp round.vgtest \
	shift_instructions.stdout.exp-mips64 shift_instructions.stdout.exp-mips64r2 \
	shift_instructions.stderr.exp shift_instructions.vgtest \
	test_block_size.stdout.exp test_block_size.stderr.exp \
	test_block_size.vgtest \
	test_fcsr.stdout.exp test_fcsr.stderr.exp \
	test_fcsr.vgtest \
	test_math.stdout.exp test_math.stdout.exp-older-gcc \
	test_math.stderr.exp test_math.vgtest \
	unaligned_load.stdout.exp-BE unaligned_load.stdout.exp-LE \
	unaligned_load.stderr.exp unaligned_load.vgtest \
	unaligned_load_store.stdout.exp-LE unaligned_load_store.stdout.exp-BE \
	unaligned_load_store.stderr.exp unaligned_load_store.vgtest \
	const.h macro_fpu.h macro_int.h macro_load_store.h rounding_mode.h

allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
cvm_bbit_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON@
cvm_ins_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON@
cvm_lx_ins_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
cvm_atomic_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
cvm_atomic_thread_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
load_indexed_instructions_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
fpu_arithmetic_CFLAGS = $(AM_CFLAGS) -lm

# C++ tests
test_math_SOURCES = test_math.cpp
all: all-am

.SUFFIXES:
.SUFFIXES: .c .cpp .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign none/tests/mips64/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign none/tests/mips64/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-tests.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-checkPROGRAMS:
	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)

allexec$(EXEEXT): $(allexec_OBJECTS) $(allexec_DEPENDENCIES) $(EXTRA_allexec_DEPENDENCIES) 
	@rm -f allexec$(EXEEXT)
	$(AM_V_CCLD)$(allexec_LINK) $(allexec_OBJECTS) $(allexec_LDADD) $(LIBS)

arithmetic_instruction$(EXEEXT): $(arithmetic_instruction_OBJECTS) $(arithmetic_instruction_DEPENDENCIES) $(EXTRA_arithmetic_instruction_DEPENDENCIES) 
	@rm -f arithmetic_instruction$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(arithmetic_instruction_OBJECTS) $(arithmetic_instruction_LDADD) $(LIBS)

branch_and_jump_instructions$(EXEEXT): $(branch_and_jump_instructions_OBJECTS) $(branch_and_jump_instructions_DEPENDENCIES) $(EXTRA_branch_and_jump_instructions_DEPENDENCIES) 
	@rm -f branch_and_jump_instructions$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(branch_and_jump_instructions_OBJECTS) $(branch_and_jump_instructions_LDADD) $(LIBS)

branches$(EXEEXT): $(branches_OBJECTS) $(branches_DEPENDENCIES) $(EXTRA_branches_DEPENDENCIES) 
	@rm -f branches$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(branches_OBJECTS) $(branches_LDADD) $(LIBS)

change_fp_mode$(EXEEXT): $(change_fp_mode_OBJECTS) $(change_fp_mode_DEPENDENCIES) $(EXTRA_change_fp_mode_DEPENDENCIES) 
	@rm -f change_fp_mode$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(change_fp_mode_OBJECTS) $(change_fp_mode_LDADD) $(LIBS)

cvm_atomic$(EXEEXT): $(cvm_atomic_OBJECTS) $(cvm_atomic_DEPENDENCIES) $(EXTRA_cvm_atomic_DEPENDENCIES) 
	@rm -f cvm_atomic$(EXEEXT)
	$(AM_V_CCLD)$(cvm_atomic_LINK) $(cvm_atomic_OBJECTS) $(cvm_atomic_LDADD) $(LIBS)

cvm_atomic_thread$(EXEEXT): $(cvm_atomic_thread_OBJECTS) $(cvm_atomic_thread_DEPENDENCIES) $(EXTRA_cvm_atomic_thread_DEPENDENCIES) 
	@rm -f cvm_atomic_thread$(EXEEXT)
	$(AM_V_CCLD)$(cvm_atomic_thread_LINK) $(cvm_atomic_thread_OBJECTS) $(cvm_atomic_thread_LDADD) $(LIBS)

cvm_bbit$(EXEEXT): $(cvm_bbit_OBJECTS) $(cvm_bbit_DEPENDENCIES) $(EXTRA_cvm_bbit_DEPENDENCIES) 
	@rm -f cvm_bbit$(EXEEXT)
	$(AM_V_CCLD)$(cvm_bbit_LINK) $(cvm_bbit_OBJECTS) $(cvm_bbit_LDADD) $(LIBS)

cvm_ins$(EXEEXT): $(cvm_ins_OBJECTS) $(cvm_ins_DEPENDENCIES) $(EXTRA_cvm_ins_DEPENDENCIES) 
	@rm -f cvm_ins$(EXEEXT)
	$(AM_V_CCLD)$(cvm_ins_LINK) $(cvm_ins_OBJECTS) $(cvm_ins_LDADD) $(LIBS)

cvm_lx_ins$(EXEEXT): $(cvm_lx_ins_OBJECTS) $(cvm_lx_ins_DEPENDENCIES) $(EXTRA_cvm_lx_ins_DEPENDENCIES) 
	@rm -f cvm_lx_ins$(EXEEXT)
	$(AM_V_CCLD)$(cvm_lx_ins_LINK) $(cvm_lx_ins_OBJECTS) $(cvm_lx_ins_LDADD) $(LIBS)

extract_insert_bit_field$(EXEEXT): $(extract_insert_bit_field_OBJECTS) $(extract_insert_bit_field_DEPENDENCIES) $(EXTRA_extract_insert_bit_field_DEPENDENCIES) 
	@rm -f extract_insert_bit_field$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(extract_insert_bit_field_OBJECTS) $(extract_insert_bit_field_LDADD) $(LIBS)

fpu_arithmetic$(EXEEXT): $(fpu_arithmetic_OBJECTS) $(fpu_arithmetic_DEPENDENCIES) $(EXTRA_fpu_arithmetic_DEPENDENCIES) 
	@rm -f fpu_arithmetic$(EXEEXT)
	$(AM_V_CCLD)$(fpu_arithmetic_LINK) $(fpu_arithmetic_OBJECTS) $(fpu_arithmetic_LDADD) $(LIBS)

fpu_branches$(EXEEXT): $(fpu_branches_OBJECTS) $(fpu_branches_DEPENDENCIES) $(EXTRA_fpu_branches_DEPENDENCIES) 
	@rm -f fpu_branches$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(fpu_branches_OBJECTS) $(fpu_branches_LDADD) $(LIBS)

fpu_control_word$(EXEEXT): $(fpu_control_word_OBJECTS) $(fpu_control_word_DEPENDENCIES) $(EXTRA_fpu_control_word_DEPENDENCIES) 
	@rm -f fpu_control_word$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(fpu_control_word_OBJECTS) $(fpu_control_word_LDADD) $(LIBS)

fpu_load_store$(EXEEXT): $(fpu_load_store_OBJECTS) $(fpu_load_store_DEPENDENCIES) $(EXTRA_fpu_load_store_DEPENDENCIES) 
	@rm -f fpu_load_store$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(fpu_load_store_OBJECTS) $(fpu_load_store_LDADD) $(LIBS)

load_indexed_instructions$(EXEEXT): $(load_indexed_instructions_OBJECTS) $(load_indexed_instructions_DEPENDENCIES) $(EXTRA_load_indexed_instructions_DEPENDENCIES) 
	@rm -f load_indexed_instructions$(EXEEXT)
	$(AM_V_CCLD)$(load_indexed_instructions_LINK) $(load_indexed_instructions_OBJECTS) $(load_indexed_instructions_LDADD) $(LIBS)

load_store$(EXEEXT): $(load_store_OBJECTS) $(load_store_DEPENDENCIES) $(EXTRA_load_store_DEPENDENCIES) 
	@rm -f load_store$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(load_store_OBJECTS) $(load_store_LDADD) $(LIBS)

load_store_multiple$(EXEEXT): $(load_store_multiple_OBJECTS) $(load_store_multiple_DEPENDENCIES) $(EXTRA_load_store_multiple_DEPENDENCIES) 
	@rm -f load_store_multiple$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(load_store_multiple_OBJECTS) $(load_store_multiple_LDADD) $(LIBS)

load_store_unaligned$(EXEEXT): $(load_store_unaligned_OBJECTS) $(load_store_unaligned_DEPENDENCIES) $(EXTRA_load_store_unaligned_DEPENDENCIES) 
	@rm -f load_store_unaligned$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(load_store_unaligned_OBJECTS) $(load_store_unaligned_LDADD) $(LIBS)

logical_instructions$(EXEEXT): $(logical_instructions_OBJECTS) $(logical_instructions_DEPENDENCIES) $(EXTRA_logical_instructions_DEPENDENCIES) 
	@rm -f logical_instructions$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(logical_instructions_OBJECTS) $(logical_instructions_LDADD) $(LIBS)

move_instructions$(EXEEXT): $(move_instructions_OBJECTS) $(move_instructions_DEPENDENCIES) $(EXTRA_move_instructions_DEPENDENCIES) 
	@rm -f move_instructions$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(move_instructions_OBJECTS) $(move_instructions_LDADD) $(LIBS)

rotate_swap$(EXEEXT): $(rotate_swap_OBJECTS) $(rotate_swap_DEPENDENCIES) $(EXTRA_rotate_swap_DEPENDENCIES) 
	@rm -f rotate_swap$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(rotate_swap_OBJECTS) $(rotate_swap_LDADD) $(LIBS)

round$(EXEEXT): $(round_OBJECTS) $(round_DEPENDENCIES) $(EXTRA_round_DEPENDENCIES) 
	@rm -f round$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(round_OBJECTS) $(round_LDADD) $(LIBS)

shift_instructions$(EXEEXT): $(shift_instructions_OBJECTS) $(shift_instructions_DEPENDENCIES) $(EXTRA_shift_instructions_DEPENDENCIES) 
	@rm -f shift_instructions$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(shift_instructions_OBJECTS) $(shift_instructions_LDADD) $(LIBS)

test_block_size$(EXEEXT): $(test_block_size_OBJECTS) $(test_block_size_DEPENDENCIES) $(EXTRA_test_block_size_DEPENDENCIES) 
	@rm -f test_block_size$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(test_block_size_OBJECTS) $(test_block_size_LDADD) $(LIBS)

test_fcsr$(EXEEXT): $(test_fcsr_OBJECTS) $(test_fcsr_DEPENDENCIES) $(EXTRA_test_fcsr_DEPENDENCIES) 
	@rm -f test_fcsr$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(test_fcsr_OBJECTS) $(test_fcsr_LDADD) $(LIBS)

test_math$(EXEEXT): $(test_math_OBJECTS) $(test_math_DEPENDENCIES) $(EXTRA_test_math_DEPENDENCIES) 
	@rm -f test_math$(EXEEXT)
	$(AM_V_CXXLD)$(CXXLINK) $(test_math_OBJECTS) $(test_math_LDADD) $(LIBS)

unaligned_load$(EXEEXT): $(unaligned_load_OBJECTS) $(unaligned_load_DEPENDENCIES) $(EXTRA_unaligned_load_DEPENDENCIES) 
	@rm -f unaligned_load$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unaligned_load_OBJECTS) $(unaligned_load_LDADD) $(LIBS)

unaligned_load_store$(EXEEXT): $(unaligned_load_store_OBJECTS) $(unaligned_load_store_DEPENDENCIES) $(EXTRA_unaligned_load_store_DEPENDENCIES) 
	@rm -f unaligned_load_store$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unaligned_load_store_OBJECTS) $(unaligned_load_store_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allexec-allexec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arithmetic_instruction.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/branch_and_jump_instructions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/branches.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/change_fp_mode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvm_atomic-cvm_atomic.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvm_atomic_thread-cvm_atomic_thread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvm_bbit-cvm_bbit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvm_ins-cvm_ins.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvm_lx_ins-cvm_lx_ins.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract_insert_bit_field.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpu_arithmetic-fpu_arithmetic.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpu_branches.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpu_control_word.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpu_load_store.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_indexed_instructions-load_indexed_instructions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_store.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_store_multiple.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_store_unaligned.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logical_instructions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_instructions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rotate_swap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/round.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shift_instructions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_size.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fcsr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_math.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unaligned_load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unaligned_load_store.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) '$<'`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.cpp.o:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<

.cpp.obj:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

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

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(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-am

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-am

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
check-am: all-am
	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
	$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(SCRIPTS)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

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

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-checkPROGRAMS clean-generic clean-local mostlyclean-am

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

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

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

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: check-am install-am install-strip

.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
	clean-checkPROGRAMS clean-generic clean-local 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-html \
	install-html-am install-info install-info-am install-man \
	install-pdf install-pdf-am install-ps install-ps-am \
	install-strip installcheck installcheck-am installdirs \
	maintainer-clean maintainer-clean-generic mostlyclean \
	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
	tags tags-am uninstall uninstall-am

.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

check-local: build-noinst_DSYMS

clean-local: clean-noinst_DSYMS

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
