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

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

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

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

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

VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
	$(top_srcdir)/Makefile.tool-tests.am

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

check_PROGRAMS = allexec$(EXEEXT) bug129390-ppc32$(EXEEXT) \
	bug139050-ppc32$(EXEEXT) ldstrev$(EXEEXT) lsw$(EXEEXT) \
	jm-insns$(EXEEXT) mftocrf$(EXEEXT) mcrfs$(EXEEXT) \
	round$(EXEEXT) test_fx$(EXEEXT) test_gx$(EXEEXT) \
	testVMX$(EXEEXT) twi$(EXEEXT) tw$(EXEEXT) xlc_dbl_u32$(EXEEXT) \
	power5+_round$(EXEEXT) power6_bcmp$(EXEEXT) \
	test_isa_2_06_part1$(EXEEXT) test_isa_2_06_part2$(EXEEXT) \
	test_isa_2_06_part3$(EXEEXT) test_dfp1$(EXEEXT) \
	test_dfp2$(EXEEXT) test_dfp3$(EXEEXT) test_dfp4$(EXEEXT) \
	test_dfp5$(EXEEXT)
subdir = none/tests/ppc32
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
allexec_SOURCES = allexec.c
allexec_OBJECTS = allexec-allexec.$(OBJEXT)
allexec_LDADD = $(LDADD)
allexec_LINK = $(CCLD) $(allexec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
bug129390_ppc32_SOURCES = bug129390-ppc32.c
bug129390_ppc32_OBJECTS = bug129390-ppc32.$(OBJEXT)
bug129390_ppc32_LDADD = $(LDADD)
bug139050_ppc32_SOURCES = bug139050-ppc32.c
bug139050_ppc32_OBJECTS = bug139050-ppc32.$(OBJEXT)
bug139050_ppc32_LDADD = $(LDADD)
jm_insns_SOURCES = jm-insns.c
jm_insns_OBJECTS = jm_insns-jm-insns.$(OBJEXT)
jm_insns_LDADD = $(LDADD)
jm_insns_LINK = $(CCLD) $(jm_insns_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
ldstrev_SOURCES = ldstrev.c
ldstrev_OBJECTS = ldstrev.$(OBJEXT)
ldstrev_LDADD = $(LDADD)
lsw_SOURCES = lsw.c
lsw_OBJECTS = lsw.$(OBJEXT)
lsw_LDADD = $(LDADD)
mcrfs_SOURCES = mcrfs.c
mcrfs_OBJECTS = mcrfs.$(OBJEXT)
mcrfs_LDADD = $(LDADD)
mftocrf_SOURCES = mftocrf.c
mftocrf_OBJECTS = mftocrf.$(OBJEXT)
mftocrf_LDADD = $(LDADD)
power5__round_SOURCES = power5+_round.c
power5__round_OBJECTS = power5+_round.$(OBJEXT)
power5__round_LDADD = $(LDADD)
power6_bcmp_SOURCES = power6_bcmp.c
power6_bcmp_OBJECTS = power6_bcmp.$(OBJEXT)
power6_bcmp_LDADD = $(LDADD)
round_SOURCES = round.c
round_OBJECTS = round.$(OBJEXT)
round_LDADD = $(LDADD)
testVMX_SOURCES = testVMX.c
testVMX_OBJECTS = testVMX-testVMX.$(OBJEXT)
testVMX_LDADD = $(LDADD)
testVMX_LINK = $(CCLD) $(testVMX_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_dfp1_SOURCES = test_dfp1.c
test_dfp1_OBJECTS = test_dfp1-test_dfp1.$(OBJEXT)
test_dfp1_LDADD = $(LDADD)
test_dfp1_LINK = $(CCLD) $(test_dfp1_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_dfp2_SOURCES = test_dfp2.c
test_dfp2_OBJECTS = test_dfp2-test_dfp2.$(OBJEXT)
test_dfp2_LDADD = $(LDADD)
test_dfp2_LINK = $(CCLD) $(test_dfp2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_dfp3_SOURCES = test_dfp3.c
test_dfp3_OBJECTS = test_dfp3-test_dfp3.$(OBJEXT)
test_dfp3_LDADD = $(LDADD)
test_dfp3_LINK = $(CCLD) $(test_dfp3_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_dfp4_SOURCES = test_dfp4.c
test_dfp4_OBJECTS = test_dfp4-test_dfp4.$(OBJEXT)
test_dfp4_LDADD = $(LDADD)
test_dfp4_LINK = $(CCLD) $(test_dfp4_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_dfp5_SOURCES = test_dfp5.c
test_dfp5_OBJECTS = test_dfp5-test_dfp5.$(OBJEXT)
test_dfp5_LDADD = $(LDADD)
test_dfp5_LINK = $(CCLD) $(test_dfp5_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
test_fx_SOURCES = test_fx.c
test_fx_OBJECTS = test_fx.$(OBJEXT)
test_fx_LDADD = $(LDADD)
test_gx_SOURCES = test_gx.c
test_gx_OBJECTS = test_gx.$(OBJEXT)
test_gx_LDADD = $(LDADD)
test_isa_2_06_part1_SOURCES = test_isa_2_06_part1.c
test_isa_2_06_part1_OBJECTS =  \
	test_isa_2_06_part1-test_isa_2_06_part1.$(OBJEXT)
test_isa_2_06_part1_LDADD = $(LDADD)
test_isa_2_06_part1_LINK = $(CCLD) $(test_isa_2_06_part1_CFLAGS) \
	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
test_isa_2_06_part2_SOURCES = test_isa_2_06_part2.c
test_isa_2_06_part2_OBJECTS =  \
	test_isa_2_06_part2-test_isa_2_06_part2.$(OBJEXT)
test_isa_2_06_part2_LDADD = $(LDADD)
test_isa_2_06_part2_LINK = $(CCLD) $(test_isa_2_06_part2_CFLAGS) \
	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
test_isa_2_06_part3_SOURCES = test_isa_2_06_part3.c
test_isa_2_06_part3_OBJECTS =  \
	test_isa_2_06_part3-test_isa_2_06_part3.$(OBJEXT)
test_isa_2_06_part3_LDADD = $(LDADD)
test_isa_2_06_part3_LINK = $(CCLD) $(test_isa_2_06_part3_CFLAGS) \
	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
tw_SOURCES = tw.c
tw_OBJECTS = tw.$(OBJEXT)
tw_LDADD = $(LDADD)
twi_SOURCES = twi.c
twi_OBJECTS = twi.$(OBJEXT)
twi_LDADD = $(LDADD)
xlc_dbl_u32_SOURCES = xlc_dbl_u32.c
xlc_dbl_u32_OBJECTS = xlc_dbl_u32.$(OBJEXT)
xlc_dbl_u32_LDADD = $(LDADD)
SCRIPTS = $(dist_noinst_SCRIPTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = allexec.c bug129390-ppc32.c bug139050-ppc32.c jm-insns.c \
	ldstrev.c lsw.c mcrfs.c mftocrf.c power5+_round.c \
	power6_bcmp.c round.c testVMX.c test_dfp1.c test_dfp2.c \
	test_dfp3.c test_dfp4.c test_dfp5.c test_fx.c test_gx.c \
	test_isa_2_06_part1.c test_isa_2_06_part2.c \
	test_isa_2_06_part3.c tw.c twi.c xlc_dbl_u32.c
DIST_SOURCES = allexec.c bug129390-ppc32.c bug139050-ppc32.c \
	jm-insns.c ldstrev.c lsw.c mcrfs.c mftocrf.c power5+_round.c \
	power6_bcmp.c round.c testVMX.c test_dfp1.c test_dfp2.c \
	test_dfp3.c test_dfp4.c test_dfp5.c test_fx.c test_gx.c \
	test_isa_2_06_part1.c test_isa_2_06_part2.c \
	test_isa_2_06_part3.c tw.c twi.c xlc_dbl_u32.c
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CFLAGS = @BOOST_CFLAGS@
BOOST_LIBS = @BOOST_LIBS@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAGS_MPI = @CFLAGS_MPI@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFAULT_SUPP = @DEFAULT_SUPP@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIFF = @DIFF@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
FLAG_M32 = @FLAG_M32@
FLAG_M64 = @FLAG_M64@
FLAG_MMMX = @FLAG_MMMX@
FLAG_MSSE = @FLAG_MSSE@
FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
FLAG_W_EXTRA = @FLAG_W_EXTRA@
FLAG_W_NO_EMPTY_BODY = @FLAG_W_NO_EMPTY_BODY@
FLAG_W_NO_FORMAT_ZERO_LENGTH = @FLAG_W_NO_FORMAT_ZERO_LENGTH@
FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@
FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@
FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@
GDB = @GDB@
GLIBC_VERSION = @GLIBC_VERSION@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LDFLAGS_MPI = @LDFLAGS_MPI@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPI_CC = @MPI_CC@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VALT_LOAD_ADDRESS_PRI = @VALT_LOAD_ADDRESS_PRI@
VALT_LOAD_ADDRESS_SEC = @VALT_LOAD_ADDRESS_SEC@
VERSION = @VERSION@
VGCONF_ARCH_PRI = @VGCONF_ARCH_PRI@
VGCONF_ARCH_SEC = @VGCONF_ARCH_SEC@
VGCONF_OS = @VGCONF_OS@
VGCONF_PLATFORM_PRI_CAPS = @VGCONF_PLATFORM_PRI_CAPS@
VGCONF_PLATFORM_SEC_CAPS = @VGCONF_PLATFORM_SEC_CAPS@
VGCONF_PLATVARIANT = @VGCONF_PLATVARIANT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
inplacedir = $(top_builddir)/.in_place

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
AM_CFLAGS = -Winline -Wall -Wshadow -g @FLAG_M32@
AM_CXXFLAGS = -Winline -Wall -Wshadow -g @FLAG_M32@
# 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_M32@
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
	bug129390-ppc32.stdout.exp bug129390-ppc32.stderr.exp \
	bug129390-ppc32.vgtest \
	bug139050-ppc32.stdout.exp bug139050-ppc32.stderr.exp \
	bug139050-ppc32.vgtest \
	ldstrev.stderr.exp ldstrev.stdout.exp ldstrev.vgtest \
	lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
	jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \
	jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
	jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.stdout.exp_Minus_nan \
	jm-vmx.vgtest \
	mftocrf.stderr.exp mftocrf.stdout.exp mftocrf.vgtest \
	mcrfs.stderr.exp mcrfs.stdout.exp mcrfs.vgtest \
	round.stderr.exp round.stdout.exp round.vgtest \
	test_fx.stderr.exp test_fx.stdout.exp test_fx.stdout.exp_Minus_nan \
	test_fx.vgtest \
	test_gx.stderr.exp test_gx.stdout.exp test_gx.stdout.exp_Minus_nan \
	test_gx.vgtest \
	testVMX.stderr.exp  testVMX.stdout.exp  testVMX.vgtest \
	twi.stderr.exp twi.stdout.exp twi.vgtest \
	tw.stderr.exp tw.stdout.exp tw.vgtest \
	xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest \
	power5+_round.stderr.exp power5+_round.stdout.exp power5+_round.vgtest \
	power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest \
	test_isa_2_06_part1.stderr.exp  test_isa_2_06_part1.stdout.exp  test_isa_2_06_part1.vgtest \
	test_isa_2_06_part2.stderr.exp  test_isa_2_06_part2.stdout.exp  test_isa_2_06_part2.vgtest \
	test_isa_2_06_part3.stderr.exp  test_isa_2_06_part3.stdout.exp  test_isa_2_06_part3.vgtest \
	test_dfp1.stderr.exp test_dfp1.stdout.exp test_dfp1.vgtest \
	test_dfp2.stderr.exp test_dfp2.stdout.exp test_dfp2.vgtest \
	test_dfp2.stdout.exp_Without_dcffix \
	test_dfp3.stderr.exp test_dfp3.stdout.exp test_dfp3.vgtest \
	test_dfp4.stderr.exp test_dfp4.stdout.exp test_dfp4.vgtest \
	test_dfp5.stderr.exp test_dfp5.stdout.exp test_dfp5.vgtest

allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
@HAS_ALTIVEC_FALSE@ALTIVEC_FLAG = 
@HAS_ALTIVEC_TRUE@ALTIVEC_FLAG = -DHAS_ALTIVEC
@HAS_VSX_FALSE@BUILD_FLAG_VSX = 
@HAS_VSX_TRUE@BUILD_FLAG_VSX = -mvsx
@HAS_VSX_FALSE@VSX_FLAG = 
@HAS_VSX_TRUE@VSX_FLAG = -DHAS_VSX
@HAS_DFP_FALSE@BUILD_FLAGS_DFP = 
@HAS_DFP_TRUE@BUILD_FLAGS_DFP = -mhard-dfp -mcpu=power6
@HAS_DFP_FALSE@DFP_FLAG = 
@HAS_DFP_TRUE@DFP_FLAG = -DHAS_DFP
jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames -maltivec \
			@FLAG_M32@ $(ALTIVEC_FLAG)

testVMX_CFLAGS = $(AM_CFLAGS) -O -g -Wall -maltivec -mabi=altivec -DALTIVEC \
			-DGCC_COMPILER @FLAG_M32@

test_isa_2_06_part1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) \
			@FLAG_M32@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)

test_isa_2_06_part2_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) \
			@FLAG_M32@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)

test_isa_2_06_part3_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(VSX_FLAG) \
			@FLAG_M32@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)

test_dfp1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(DFP_FLAG) \
			@FLAG_M32@ $(BUILD_FLAGS_DFP)

test_dfp2_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(DFP_FLAG) \
			@FLAG_M32@ $(BUILD_FLAGS_DFP)

test_dfp3_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(DFP_FLAG) \
			@FLAG_M32@ $(BUILD_FLAGS_DFP)

test_dfp4_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(DFP_FLAG) \
			@FLAG_M32@ $(BUILD_FLAGS_DFP)

test_dfp5_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(DFP_FLAG) \
			@FLAG_M32@ $(BUILD_FLAGS_DFP)

all: all-am

.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign none/tests/ppc32/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign none/tests/ppc32/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):

clean-checkPROGRAMS:
	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
allexec$(EXEEXT): $(allexec_OBJECTS) $(allexec_DEPENDENCIES) 
	@rm -f allexec$(EXEEXT)
	$(allexec_LINK) $(allexec_OBJECTS) $(allexec_LDADD) $(LIBS)
bug129390-ppc32$(EXEEXT): $(bug129390_ppc32_OBJECTS) $(bug129390_ppc32_DEPENDENCIES) 
	@rm -f bug129390-ppc32$(EXEEXT)
	$(LINK) $(bug129390_ppc32_OBJECTS) $(bug129390_ppc32_LDADD) $(LIBS)
bug139050-ppc32$(EXEEXT): $(bug139050_ppc32_OBJECTS) $(bug139050_ppc32_DEPENDENCIES) 
	@rm -f bug139050-ppc32$(EXEEXT)
	$(LINK) $(bug139050_ppc32_OBJECTS) $(bug139050_ppc32_LDADD) $(LIBS)
jm-insns$(EXEEXT): $(jm_insns_OBJECTS) $(jm_insns_DEPENDENCIES) 
	@rm -f jm-insns$(EXEEXT)
	$(jm_insns_LINK) $(jm_insns_OBJECTS) $(jm_insns_LDADD) $(LIBS)
ldstrev$(EXEEXT): $(ldstrev_OBJECTS) $(ldstrev_DEPENDENCIES) 
	@rm -f ldstrev$(EXEEXT)
	$(LINK) $(ldstrev_OBJECTS) $(ldstrev_LDADD) $(LIBS)
lsw$(EXEEXT): $(lsw_OBJECTS) $(lsw_DEPENDENCIES) 
	@rm -f lsw$(EXEEXT)
	$(LINK) $(lsw_OBJECTS) $(lsw_LDADD) $(LIBS)
mcrfs$(EXEEXT): $(mcrfs_OBJECTS) $(mcrfs_DEPENDENCIES) 
	@rm -f mcrfs$(EXEEXT)
	$(LINK) $(mcrfs_OBJECTS) $(mcrfs_LDADD) $(LIBS)
mftocrf$(EXEEXT): $(mftocrf_OBJECTS) $(mftocrf_DEPENDENCIES) 
	@rm -f mftocrf$(EXEEXT)
	$(LINK) $(mftocrf_OBJECTS) $(mftocrf_LDADD) $(LIBS)
power5+_round$(EXEEXT): $(power5__round_OBJECTS) $(power5__round_DEPENDENCIES) 
	@rm -f power5+_round$(EXEEXT)
	$(LINK) $(power5__round_OBJECTS) $(power5__round_LDADD) $(LIBS)
power6_bcmp$(EXEEXT): $(power6_bcmp_OBJECTS) $(power6_bcmp_DEPENDENCIES) 
	@rm -f power6_bcmp$(EXEEXT)
	$(LINK) $(power6_bcmp_OBJECTS) $(power6_bcmp_LDADD) $(LIBS)
round$(EXEEXT): $(round_OBJECTS) $(round_DEPENDENCIES) 
	@rm -f round$(EXEEXT)
	$(LINK) $(round_OBJECTS) $(round_LDADD) $(LIBS)
testVMX$(EXEEXT): $(testVMX_OBJECTS) $(testVMX_DEPENDENCIES) 
	@rm -f testVMX$(EXEEXT)
	$(testVMX_LINK) $(testVMX_OBJECTS) $(testVMX_LDADD) $(LIBS)
test_dfp1$(EXEEXT): $(test_dfp1_OBJECTS) $(test_dfp1_DEPENDENCIES) 
	@rm -f test_dfp1$(EXEEXT)
	$(test_dfp1_LINK) $(test_dfp1_OBJECTS) $(test_dfp1_LDADD) $(LIBS)
test_dfp2$(EXEEXT): $(test_dfp2_OBJECTS) $(test_dfp2_DEPENDENCIES) 
	@rm -f test_dfp2$(EXEEXT)
	$(test_dfp2_LINK) $(test_dfp2_OBJECTS) $(test_dfp2_LDADD) $(LIBS)
test_dfp3$(EXEEXT): $(test_dfp3_OBJECTS) $(test_dfp3_DEPENDENCIES) 
	@rm -f test_dfp3$(EXEEXT)
	$(test_dfp3_LINK) $(test_dfp3_OBJECTS) $(test_dfp3_LDADD) $(LIBS)
test_dfp4$(EXEEXT): $(test_dfp4_OBJECTS) $(test_dfp4_DEPENDENCIES) 
	@rm -f test_dfp4$(EXEEXT)
	$(test_dfp4_LINK) $(test_dfp4_OBJECTS) $(test_dfp4_LDADD) $(LIBS)
test_dfp5$(EXEEXT): $(test_dfp5_OBJECTS) $(test_dfp5_DEPENDENCIES) 
	@rm -f test_dfp5$(EXEEXT)
	$(test_dfp5_LINK) $(test_dfp5_OBJECTS) $(test_dfp5_LDADD) $(LIBS)
test_fx$(EXEEXT): $(test_fx_OBJECTS) $(test_fx_DEPENDENCIES) 
	@rm -f test_fx$(EXEEXT)
	$(LINK) $(test_fx_OBJECTS) $(test_fx_LDADD) $(LIBS)
test_gx$(EXEEXT): $(test_gx_OBJECTS) $(test_gx_DEPENDENCIES) 
	@rm -f test_gx$(EXEEXT)
	$(LINK) $(test_gx_OBJECTS) $(test_gx_LDADD) $(LIBS)
test_isa_2_06_part1$(EXEEXT): $(test_isa_2_06_part1_OBJECTS) $(test_isa_2_06_part1_DEPENDENCIES) 
	@rm -f test_isa_2_06_part1$(EXEEXT)
	$(test_isa_2_06_part1_LINK) $(test_isa_2_06_part1_OBJECTS) $(test_isa_2_06_part1_LDADD) $(LIBS)
test_isa_2_06_part2$(EXEEXT): $(test_isa_2_06_part2_OBJECTS) $(test_isa_2_06_part2_DEPENDENCIES) 
	@rm -f test_isa_2_06_part2$(EXEEXT)
	$(test_isa_2_06_part2_LINK) $(test_isa_2_06_part2_OBJECTS) $(test_isa_2_06_part2_LDADD) $(LIBS)
test_isa_2_06_part3$(EXEEXT): $(test_isa_2_06_part3_OBJECTS) $(test_isa_2_06_part3_DEPENDENCIES) 
	@rm -f test_isa_2_06_part3$(EXEEXT)
	$(test_isa_2_06_part3_LINK) $(test_isa_2_06_part3_OBJECTS) $(test_isa_2_06_part3_LDADD) $(LIBS)
tw$(EXEEXT): $(tw_OBJECTS) $(tw_DEPENDENCIES) 
	@rm -f tw$(EXEEXT)
	$(LINK) $(tw_OBJECTS) $(tw_LDADD) $(LIBS)
twi$(EXEEXT): $(twi_OBJECTS) $(twi_DEPENDENCIES) 
	@rm -f twi$(EXEEXT)
	$(LINK) $(twi_OBJECTS) $(twi_LDADD) $(LIBS)
xlc_dbl_u32$(EXEEXT): $(xlc_dbl_u32_OBJECTS) $(xlc_dbl_u32_DEPENDENCIES) 
	@rm -f xlc_dbl_u32$(EXEEXT)
	$(LINK) $(xlc_dbl_u32_OBJECTS) $(xlc_dbl_u32_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)/bug129390-ppc32.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bug139050-ppc32.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jm_insns-jm-insns.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldstrev.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsw.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mcrfs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mftocrf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power5+_round.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power6_bcmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/round.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testVMX-testVMX.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dfp1-test_dfp1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dfp2-test_dfp2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dfp3-test_dfp3.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dfp4-test_dfp4.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dfp5-test_dfp5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_isa_2_06_part1-test_isa_2_06_part1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_isa_2_06_part2-test_isa_2_06_part2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_isa_2_06_part3-test_isa_2_06_part3.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tw.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlc_dbl_u32.Po@am__quote@

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

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

allexec-allexec.o: allexec.c
@am__fastdepCC_TRUE@	$(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__mv) $(DEPDIR)/allexec-allexec.Tpo $(DEPDIR)/allexec-allexec.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='allexec.c' object='allexec-allexec.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allexec_CFLAGS) $(CFLAGS) -c -o allexec-allexec.o `test -f 'allexec.c' || echo '$(srcdir)/'`allexec.c

allexec-allexec.obj: allexec.c
@am__fastdepCC_TRUE@	$(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__mv) $(DEPDIR)/allexec-allexec.Tpo $(DEPDIR)/allexec-allexec.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='allexec.c' object='allexec-allexec.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	set x; \
	here=`pwd`; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: CTAGS
CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && $(am__cd) $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) "$$here"

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
	$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(SCRIPTS)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

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

installcheck: installcheck-am
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:

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

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

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

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

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

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

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

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

.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
	clean-checkPROGRAMS clean-generic clean-local ctags distclean \
	distclean-compile distclean-generic distclean-tags distdir dvi \
	dvi-am html html-am info info-am install install-am \
	install-data install-data-am install-dvi install-dvi-am \
	install-exec install-exec-am install-html install-html-am \
	install-info install-info-am install-man install-pdf \
	install-pdf-am install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
	uninstall-am


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

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

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

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

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

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

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

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

check-local: build-noinst_DSYMS

clean-local: clean-noinst_DSYMS

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