# 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 = brk$(EXEEXT) context_stack_die$(EXEEXT) \
	door_data$(EXEEXT) door_kill$(EXEEXT) gethrtime$(EXEEXT) \
	inlinfo$(EXEEXT) inlinfo_nested.so$(EXEEXT) ioctl$(EXEEXT) \
	ldynsym$(EXEEXT) lsframe1$(EXEEXT) lsframe2$(EXEEXT) \
	mmapobj_bssonly$(EXEEXT) mmapobj_bssonly.so$(EXEEXT) \
	name_service_door$(EXEEXT) pkcs11$(EXEEXT) scalar$(EXEEXT) \
	scalar_ioctl$(EXEEXT) sendfilev$(EXEEXT) shmat$(EXEEXT) \
	strlcpy$(EXEEXT) syscall_at$(EXEEXT) \
	thr_daemon_exit_libc$(EXEEXT) \
	thr_daemon_exit_standalone$(EXEEXT) $(am__EXEEXT_1) \
	$(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
	$(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \
	$(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \
	$(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \
	$(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16) \
	$(am__EXEEXT_17) $(am__EXEEXT_18) $(am__EXEEXT_19) \
	$(am__EXEEXT_20)
@SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS_TRUE@am__append_8 = execx
@SOLARIS_RESERVE_SYSSTAT_ADDR_TRUE@am__append_9 = gethrusec
@SOLARIS_GETZONEOFFSET_FASTTRAP_TRUE@am__append_10 = getzoneoffset
@SOLARIS_OLD_SYSCALLS_TRUE@am__append_11 = scalar_obsolete
@SOLARIS_AUDITON_STAT_TRUE@am__append_12 = scalar_auditon_stat
@SOLARIS_FREALPATHAT_SYSCALL_TRUE@am__append_13 = scalar_frealpathat
@SOLARIS_GETRANDOM_SYSCALL_TRUE@am__append_14 = scalar_getrandom
@SOLARIS_LWP_NAME_SYSCALL_TRUE@am__append_15 = scalar_lwp_name
@SOLARIS_MODCTL_MODNVL_TRUE@am__append_16 = scalar_modctl_modnvl
@SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID_TRUE@@SOLARIS_LWP_SIGQUEUE_SYSCALL_TRUE@am__append_17 = scalar_lwp_sigqueue_pid
@SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID_FALSE@@SOLARIS_LWP_SIGQUEUE_SYSCALL_TRUE@am__append_18 = scalar_lwp_sigqueue
@SOLARIS_LWP_SIGQUEUE_SYSCALL_FALSE@am__append_19 = scalar_lwp_kill
@SOLARIS_SHM_NEW_TRUE@am__append_20 = scalar_shm_new
@SOLARIS_SPAWN_SYSCALL_TRUE@am__append_21 = scalar_spawn spawn
@SOLARIS_SYSTEM_STATS_SYSCALL_TRUE@am__append_22 = scalar_system_stats
@SOLARIS_TSOL_CLEARANCE_TRUE@am__append_23 = scalar_tsol_clearance
@SOLARIS_UTIMENSAT_SYSCALL_TRUE@am__append_24 = scalar_utimensat
@SOLARIS_UTIMESYS_SYSCALL_TRUE@am__append_25 = scalar_utimesys
@SOLARIS_UUIDSYS_SYSCALL_TRUE@am__append_26 = scalar_uuidsys
@SOLARIS_ZONE_DEFUNCT_TRUE@am__append_27 = scalar_zone_defunct
subdir = memcheck/tests/solaris
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) \
	$(noinst_HEADERS) $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
@SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS_TRUE@am__EXEEXT_1 =  \
@SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS_TRUE@	execx$(EXEEXT)
@SOLARIS_RESERVE_SYSSTAT_ADDR_TRUE@am__EXEEXT_2 = gethrusec$(EXEEXT)
@SOLARIS_GETZONEOFFSET_FASTTRAP_TRUE@am__EXEEXT_3 =  \
@SOLARIS_GETZONEOFFSET_FASTTRAP_TRUE@	getzoneoffset$(EXEEXT)
@SOLARIS_OLD_SYSCALLS_TRUE@am__EXEEXT_4 = scalar_obsolete$(EXEEXT)
@SOLARIS_AUDITON_STAT_TRUE@am__EXEEXT_5 =  \
@SOLARIS_AUDITON_STAT_TRUE@	scalar_auditon_stat$(EXEEXT)
@SOLARIS_FREALPATHAT_SYSCALL_TRUE@am__EXEEXT_6 =  \
@SOLARIS_FREALPATHAT_SYSCALL_TRUE@	scalar_frealpathat$(EXEEXT)
@SOLARIS_GETRANDOM_SYSCALL_TRUE@am__EXEEXT_7 =  \
@SOLARIS_GETRANDOM_SYSCALL_TRUE@	scalar_getrandom$(EXEEXT)
@SOLARIS_LWP_NAME_SYSCALL_TRUE@am__EXEEXT_8 =  \
@SOLARIS_LWP_NAME_SYSCALL_TRUE@	scalar_lwp_name$(EXEEXT)
@SOLARIS_MODCTL_MODNVL_TRUE@am__EXEEXT_9 =  \
@SOLARIS_MODCTL_MODNVL_TRUE@	scalar_modctl_modnvl$(EXEEXT)
@SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID_TRUE@@SOLARIS_LWP_SIGQUEUE_SYSCALL_TRUE@am__EXEEXT_10 = scalar_lwp_sigqueue_pid$(EXEEXT)
@SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID_FALSE@@SOLARIS_LWP_SIGQUEUE_SYSCALL_TRUE@am__EXEEXT_11 = scalar_lwp_sigqueue$(EXEEXT)
@SOLARIS_LWP_SIGQUEUE_SYSCALL_FALSE@am__EXEEXT_12 =  \
@SOLARIS_LWP_SIGQUEUE_SYSCALL_FALSE@	scalar_lwp_kill$(EXEEXT)
@SOLARIS_SHM_NEW_TRUE@am__EXEEXT_13 = scalar_shm_new$(EXEEXT)
@SOLARIS_SPAWN_SYSCALL_TRUE@am__EXEEXT_14 = scalar_spawn$(EXEEXT) \
@SOLARIS_SPAWN_SYSCALL_TRUE@	spawn$(EXEEXT)
@SOLARIS_SYSTEM_STATS_SYSCALL_TRUE@am__EXEEXT_15 = scalar_system_stats$(EXEEXT)
@SOLARIS_TSOL_CLEARANCE_TRUE@am__EXEEXT_16 =  \
@SOLARIS_TSOL_CLEARANCE_TRUE@	scalar_tsol_clearance$(EXEEXT)
@SOLARIS_UTIMENSAT_SYSCALL_TRUE@am__EXEEXT_17 =  \
@SOLARIS_UTIMENSAT_SYSCALL_TRUE@	scalar_utimensat$(EXEEXT)
@SOLARIS_UTIMESYS_SYSCALL_TRUE@am__EXEEXT_18 =  \
@SOLARIS_UTIMESYS_SYSCALL_TRUE@	scalar_utimesys$(EXEEXT)
@SOLARIS_UUIDSYS_SYSCALL_TRUE@am__EXEEXT_19 = scalar_uuidsys$(EXEEXT)
@SOLARIS_ZONE_DEFUNCT_TRUE@am__EXEEXT_20 =  \
@SOLARIS_ZONE_DEFUNCT_TRUE@	scalar_zone_defunct$(EXEEXT)
brk_SOURCES = brk.c
brk_OBJECTS = brk.$(OBJEXT)
brk_LDADD = $(LDADD)
context_stack_die_SOURCES = context_stack_die.c
context_stack_die_OBJECTS = context_stack_die.$(OBJEXT)
context_stack_die_LDADD = $(LDADD)
door_data_SOURCES = door_data.c
door_data_OBJECTS = door_data.$(OBJEXT)
door_data_LDADD = $(LDADD)
door_kill_SOURCES = door_kill.c
door_kill_OBJECTS = door_kill.$(OBJEXT)
door_kill_DEPENDENCIES =
execx_SOURCES = execx.c
execx_OBJECTS = execx.$(OBJEXT)
execx_LDADD = $(LDADD)
gethrtime_SOURCES = gethrtime.c
gethrtime_OBJECTS = gethrtime.$(OBJEXT)
gethrtime_LDADD = $(LDADD)
gethrusec_SOURCES = gethrusec.c
gethrusec_OBJECTS = gethrusec.$(OBJEXT)
gethrusec_LDADD = $(LDADD)
getzoneoffset_SOURCES = getzoneoffset.c
getzoneoffset_OBJECTS = getzoneoffset.$(OBJEXT)
getzoneoffset_LDADD = $(LDADD)
am_inlinfo_OBJECTS = inlinfo.$(OBJEXT)
inlinfo_OBJECTS = $(am_inlinfo_OBJECTS)
inlinfo_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(inlinfo_LDFLAGS) \
	$(LDFLAGS) -o $@
am_inlinfo_nested_so_OBJECTS =  \
	inlinfo_nested_so-inlinfo_nested.$(OBJEXT)
inlinfo_nested_so_OBJECTS = $(am_inlinfo_nested_so_OBJECTS)
inlinfo_nested_so_LDADD = $(LDADD)
inlinfo_nested_so_LINK = $(CCLD) $(inlinfo_nested_so_CFLAGS) $(CFLAGS) \
	$(inlinfo_nested_so_LDFLAGS) $(LDFLAGS) -o $@
ioctl_SOURCES = ioctl.c
ioctl_OBJECTS = ioctl.$(OBJEXT)
ioctl_DEPENDENCIES =
ldynsym_SOURCES = ldynsym.c
ldynsym_OBJECTS = ldynsym.$(OBJEXT)
ldynsym_LDADD = $(LDADD)
ldynsym_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ldynsym_LDFLAGS) \
	$(LDFLAGS) -o $@
lsframe1_SOURCES = lsframe1.c
lsframe1_OBJECTS = lsframe1.$(OBJEXT)
lsframe1_LDADD = $(LDADD)
lsframe2_SOURCES = lsframe2.c
lsframe2_OBJECTS = lsframe2.$(OBJEXT)
lsframe2_LDADD = $(LDADD)
am_mmapobj_bssonly_OBJECTS = mmapobj_bssonly.$(OBJEXT)
mmapobj_bssonly_OBJECTS = $(am_mmapobj_bssonly_OBJECTS)
mmapobj_bssonly_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(mmapobj_bssonly_LDFLAGS) $(LDFLAGS) -o $@
am_mmapobj_bssonly_so_OBJECTS =  \
	mmapobj_bssonly_so-mmapobj_bssonly_lib.$(OBJEXT)
mmapobj_bssonly_so_OBJECTS = $(am_mmapobj_bssonly_so_OBJECTS)
mmapobj_bssonly_so_LDADD = $(LDADD)
mmapobj_bssonly_so_LINK = $(CCLD) $(mmapobj_bssonly_so_CFLAGS) \
	$(CFLAGS) $(mmapobj_bssonly_so_LDFLAGS) $(LDFLAGS) -o $@
name_service_door_SOURCES = name_service_door.c
name_service_door_OBJECTS = name_service_door.$(OBJEXT)
name_service_door_LDADD = $(LDADD)
pkcs11_SOURCES = pkcs11.c
pkcs11_OBJECTS = pkcs11.$(OBJEXT)
pkcs11_DEPENDENCIES =
scalar_SOURCES = scalar.c
scalar_OBJECTS = scalar.$(OBJEXT)
scalar_LDADD = $(LDADD)
scalar_auditon_stat_SOURCES = scalar_auditon_stat.c
scalar_auditon_stat_OBJECTS = scalar_auditon_stat.$(OBJEXT)
scalar_auditon_stat_LDADD = $(LDADD)
scalar_frealpathat_SOURCES = scalar_frealpathat.c
scalar_frealpathat_OBJECTS = scalar_frealpathat.$(OBJEXT)
scalar_frealpathat_LDADD = $(LDADD)
scalar_getrandom_SOURCES = scalar_getrandom.c
scalar_getrandom_OBJECTS = scalar_getrandom.$(OBJEXT)
scalar_getrandom_LDADD = $(LDADD)
scalar_ioctl_SOURCES = scalar_ioctl.c
scalar_ioctl_OBJECTS = scalar_ioctl.$(OBJEXT)
scalar_ioctl_LDADD = $(LDADD)
scalar_lwp_kill_SOURCES = scalar_lwp_kill.c
scalar_lwp_kill_OBJECTS = scalar_lwp_kill.$(OBJEXT)
scalar_lwp_kill_LDADD = $(LDADD)
scalar_lwp_name_SOURCES = scalar_lwp_name.c
scalar_lwp_name_OBJECTS = scalar_lwp_name.$(OBJEXT)
scalar_lwp_name_LDADD = $(LDADD)
scalar_lwp_sigqueue_SOURCES = scalar_lwp_sigqueue.c
scalar_lwp_sigqueue_OBJECTS = scalar_lwp_sigqueue.$(OBJEXT)
scalar_lwp_sigqueue_LDADD = $(LDADD)
scalar_lwp_sigqueue_pid_SOURCES = scalar_lwp_sigqueue_pid.c
scalar_lwp_sigqueue_pid_OBJECTS = scalar_lwp_sigqueue_pid.$(OBJEXT)
scalar_lwp_sigqueue_pid_LDADD = $(LDADD)
scalar_modctl_modnvl_SOURCES = scalar_modctl_modnvl.c
scalar_modctl_modnvl_OBJECTS = scalar_modctl_modnvl.$(OBJEXT)
scalar_modctl_modnvl_LDADD = $(LDADD)
scalar_obsolete_SOURCES = scalar_obsolete.c
scalar_obsolete_OBJECTS = scalar_obsolete.$(OBJEXT)
scalar_obsolete_LDADD = $(LDADD)
scalar_shm_new_SOURCES = scalar_shm_new.c
scalar_shm_new_OBJECTS = scalar_shm_new.$(OBJEXT)
scalar_shm_new_LDADD = $(LDADD)
scalar_spawn_SOURCES = scalar_spawn.c
scalar_spawn_OBJECTS = scalar_spawn.$(OBJEXT)
scalar_spawn_LDADD = $(LDADD)
scalar_system_stats_SOURCES = scalar_system_stats.c
scalar_system_stats_OBJECTS = scalar_system_stats.$(OBJEXT)
scalar_system_stats_LDADD = $(LDADD)
scalar_tsol_clearance_SOURCES = scalar_tsol_clearance.c
scalar_tsol_clearance_OBJECTS = scalar_tsol_clearance.$(OBJEXT)
scalar_tsol_clearance_DEPENDENCIES =
scalar_utimensat_SOURCES = scalar_utimensat.c
scalar_utimensat_OBJECTS = scalar_utimensat.$(OBJEXT)
scalar_utimensat_LDADD = $(LDADD)
scalar_utimesys_SOURCES = scalar_utimesys.c
scalar_utimesys_OBJECTS = scalar_utimesys.$(OBJEXT)
scalar_utimesys_LDADD = $(LDADD)
scalar_uuidsys_SOURCES = scalar_uuidsys.c
scalar_uuidsys_OBJECTS = scalar_uuidsys.$(OBJEXT)
scalar_uuidsys_LDADD = $(LDADD)
scalar_zone_defunct_SOURCES = scalar_zone_defunct.c
scalar_zone_defunct_OBJECTS = scalar_zone_defunct.$(OBJEXT)
scalar_zone_defunct_LDADD = $(LDADD)
sendfilev_SOURCES = sendfilev.c
sendfilev_OBJECTS = sendfilev.$(OBJEXT)
sendfilev_DEPENDENCIES =
shmat_SOURCES = shmat.c
shmat_OBJECTS = shmat.$(OBJEXT)
shmat_LDADD = $(LDADD)
spawn_SOURCES = spawn.c
spawn_OBJECTS = spawn.$(OBJEXT)
spawn_LDADD = $(LDADD)
strlcpy_SOURCES = strlcpy.c
strlcpy_OBJECTS = strlcpy.$(OBJEXT)
strlcpy_LDADD = $(LDADD)
syscall_at_SOURCES = syscall_at.c
syscall_at_OBJECTS = syscall_at.$(OBJEXT)
syscall_at_LDADD = $(LDADD)
thr_daemon_exit_libc_SOURCES = thr_daemon_exit_libc.c
thr_daemon_exit_libc_OBJECTS = thr_daemon_exit_libc.$(OBJEXT)
thr_daemon_exit_libc_LDADD = $(LDADD)
thr_daemon_exit_standalone_SOURCES = thr_daemon_exit_standalone.c
thr_daemon_exit_standalone_OBJECTS =  \
	thr_daemon_exit_standalone.$(OBJEXT)
thr_daemon_exit_standalone_LDADD = $(LDADD)
thr_daemon_exit_standalone_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(thr_daemon_exit_standalone_LDFLAGS) $(LDFLAGS) -o $@
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 = 
SOURCES = brk.c context_stack_die.c door_data.c door_kill.c execx.c \
	gethrtime.c gethrusec.c getzoneoffset.c $(inlinfo_SOURCES) \
	$(inlinfo_nested_so_SOURCES) ioctl.c ldynsym.c lsframe1.c \
	lsframe2.c $(mmapobj_bssonly_SOURCES) \
	$(mmapobj_bssonly_so_SOURCES) name_service_door.c pkcs11.c \
	scalar.c scalar_auditon_stat.c scalar_frealpathat.c \
	scalar_getrandom.c scalar_ioctl.c scalar_lwp_kill.c \
	scalar_lwp_name.c scalar_lwp_sigqueue.c \
	scalar_lwp_sigqueue_pid.c scalar_modctl_modnvl.c \
	scalar_obsolete.c scalar_shm_new.c scalar_spawn.c \
	scalar_system_stats.c scalar_tsol_clearance.c \
	scalar_utimensat.c scalar_utimesys.c scalar_uuidsys.c \
	scalar_zone_defunct.c sendfilev.c shmat.c spawn.c strlcpy.c \
	syscall_at.c thr_daemon_exit_libc.c \
	thr_daemon_exit_standalone.c
DIST_SOURCES = brk.c context_stack_die.c door_data.c door_kill.c \
	execx.c gethrtime.c gethrusec.c getzoneoffset.c \
	$(inlinfo_SOURCES) $(inlinfo_nested_so_SOURCES) ioctl.c \
	ldynsym.c lsframe1.c lsframe2.c $(mmapobj_bssonly_SOURCES) \
	$(mmapobj_bssonly_so_SOURCES) name_service_door.c pkcs11.c \
	scalar.c scalar_auditon_stat.c scalar_frealpathat.c \
	scalar_getrandom.c scalar_ioctl.c scalar_lwp_kill.c \
	scalar_lwp_name.c scalar_lwp_sigqueue.c \
	scalar_lwp_sigqueue_pid.c scalar_modctl_modnvl.c \
	scalar_obsolete.c scalar_shm_new.c scalar_spawn.c \
	scalar_system_stats.c scalar_tsol_clearance.c \
	scalar_utimensat.c scalar_utimesys.c scalar_uuidsys.c \
	scalar_zone_defunct.c sendfilev.c shmat.c spawn.c strlcpy.c \
	syscall_at.c thr_daemon_exit_libc.c \
	thr_daemon_exit_standalone.c
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
HEADERS = $(noinst_HEADERS)
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) \
	$(AM_FLAG_M3264_PRI)
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
	@FLAG_FNO_STACK_PROTECTOR@ $(am__append_7) \
	$(AM_FLAG_M3264_PRI)
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake;  see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS)
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = \
	filter_ldynsym \
	filter_name_service_door \
	filter_scalar \
	filter_sendfilev \
	filter_stderr \
	filter_syscall_at

noinst_HEADERS = scalar.h
EXTRA_DIST = \
	brk.stderr.exp brk.stdout.exp brk.vgtest \
	context_stack_die.stderr.exp context_stack_die.stdout.exp context_stack_die.vgtest \
	door_data.stderr.exp door_data.stdout.exp door_data.vgtest \
	door_kill.stderr.exp door_kill.stdout.exp door_kill.vgtest \
	execx.stderr.exp execx.stdout.exp execx.vgtest \
	getzoneoffset.stderr.exp getzoneoffset.vgtest \
	gethrtime.stderr.exp gethrtime.stdout.exp gethrtime.vgtest \
	gethrusec.stderr.exp gethrusec.stdout.exp gethrusec.vgtest \
	ioctl.stderr.exp ioctl.stdout.exp ioctl.vgtest \
	ldynsym.stderr.exp ldynsym.stdout.exp ldynsym.vgtest \
	lsframe1.stderr.exp lsframe1.stdout.exp lsframe1.vgtest \
	lsframe2.stderr.exp lsframe2.stdout.exp lsframe2.vgtest \
	mmapobj_bssonly.stderr.exp mmapobj_bssonly.stdout.exp mmapobj_bssonly.vgtest \
	name_service_door.stderr.exp-amd64 name_service_door.stderr.exp-x86 \
	name_service_door.stdout.exp name_service_door.vgtest \
	pkcs11.stderr.exp-illumos pkcs11.stderr.exp-solaris pkcs11.stdout.exp pkcs11.vgtest \
	scalar.stderr.exp scalar.stdout.exp scalar.vgtest \
	scalar_auditon_stat.stderr.exp scalar_auditon_stat.stdout.exp scalar_auditon_stat.vgtest \
	scalar_frealpathat.stderr.exp scalar_frealpathat.stdout.exp scalar_frealpathat.vgtest \
	scalar_getrandom.stderr.exp scalar_getrandom.stdout.exp scalar_getrandom.vgtest \
	scalar_ioctl.stderr.exp scalar_ioctl.stdout.exp scalar_ioctl.vgtest \
	scalar_lwp_kill.stderr.exp scalar_lwp_kill.stdout.exp scalar_lwp_kill.vgtest \
	scalar_lwp_name.stderr.exp scalar_lwp_name.stdout.exp scalar_lwp_name.vgtest \
	scalar_lwp_sigqueue.stderr.exp scalar_lwp_sigqueue.stdout.exp scalar_lwp_sigqueue.vgtest \
	scalar_lwp_sigqueue_pid.stderr.exp scalar_lwp_sigqueue_pid.vgtest \
	scalar_modctl_modnvl.stderr.exp scalar_modctl_modnvl.stdout.exp scalar_modctl_modnvl.vgtest \
	scalar_obsolete.stderr.exp scalar_obsolete.stdout.exp scalar_obsolete.vgtest \
	scalar_shm_new.stderr.exp scalar_shm_new.stdout.exp scalar_shm_new.vgtest \
	scalar_spawn.stderr.exp scalar_spawn.stdout.exp scalar_spawn.vgtest \
	scalar_system_stats.stderr.exp scalar_system_stats.stdout.exp scalar_system_stats.vgtest \
	scalar_tsol_clearance.stderr.exp scalar_tsol_clearance.vgtest \
	scalar_utimensat.stderr.exp scalar_utimensat.stdout.exp scalar_utimensat.vgtest \
	scalar_utimesys.stderr.exp scalar_utimesys.stdout.exp scalar_utimesys.vgtest \
	scalar_uuidsys.stderr.exp scalar_uuidsys.stdout.exp scalar_uuidsys.vgtest \
	scalar_zone_defunct.stderr.exp scalar_zone_defunct.stdout.exp scalar_zone_defunct.vgtest \
	sendfilev.stderr.exp sendfilev.stdout.exp sendfilev.vgtest \
	shmat.stderr.exp shmat.stdout.exp shmat.vgtest \
	spawn.stderr.exp spawn.stdout.exp spawn.vgtest \
	strlcpy.stderr.exp strlcpy.stdout.exp strlcpy.vgtest \
	supponlyobj.stderr.exp supponlyobj.supp supponlyobj.vgtest \
	syscall_at.stderr.exp syscall_at.stdout.exp syscall_at.vgtest \
	thr_daemon_exit_libc.stderr.exp thr_daemon_exit_libc.stdout.exp thr_daemon_exit_libc.vgtest \
	thr_daemon_exit_standalone.stderr.exp thr_daemon_exit_standalone.stdout.exp thr_daemon_exit_standalone.vgtest

@SOLARIS_TSOL_CLEARANCE_TRUE@scalar_tsol_clearance_LDADD = -ltsol
door_kill_LDADD = -lpthread
ioctl_LDADD = -lsocket
ldynsym_LDFLAGS = -Wl,--strip-all
pkcs11_LDADD = -lpkcs11
sendfilev_LDADD = -lsendfile
inlinfo_SOURCES = inlinfo.c
inlinfo_DEPENDENCIES = inlinfo_nested.so
inlinfo_LDFLAGS = -Wl,-rpath,$(top_builddir)/memcheck/tests/solaris
inlinfo_LDADD = inlinfo_nested.so
inlinfo_nested_so_SOURCES = inlinfo_nested.c
inlinfo_nested_so_CFLAGS = $(AM_CFLAGS) -fPIC @FLAG_W_NO_UNINITIALIZED@
inlinfo_nested_so_LDFLAGS = -Wl,-rpath,$(top_builddir)/memcheck/tests/solaris -shared -fPIC
mmapobj_bssonly_SOURCES = mmapobj_bssonly.c
mmapobj_bssonly_DEPENDENCIES = mmapobj_bssonly.so
mmapobj_bssonly_LDFLAGS = -Wl,-rpath,$(top_builddir)/memcheck/tests/solaris
mmapobj_bssonly_LDADD = mmapobj_bssonly.so
mmapobj_bssonly_so_SOURCES = mmapobj_bssonly_lib.c
mmapobj_bssonly_so_CFLAGS = $(AM_CFLAGS) -fPIC
mmapobj_bssonly_so_LDFLAGS = -nostartfiles -nodefaultlibs -shared
thr_daemon_exit_standalone_LDFLAGS = -nostartfiles -nodefaultlibs
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 memcheck/tests/solaris/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign memcheck/tests/solaris/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)

brk$(EXEEXT): $(brk_OBJECTS) $(brk_DEPENDENCIES) $(EXTRA_brk_DEPENDENCIES) 
	@rm -f brk$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(brk_OBJECTS) $(brk_LDADD) $(LIBS)

context_stack_die$(EXEEXT): $(context_stack_die_OBJECTS) $(context_stack_die_DEPENDENCIES) $(EXTRA_context_stack_die_DEPENDENCIES) 
	@rm -f context_stack_die$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(context_stack_die_OBJECTS) $(context_stack_die_LDADD) $(LIBS)

door_data$(EXEEXT): $(door_data_OBJECTS) $(door_data_DEPENDENCIES) $(EXTRA_door_data_DEPENDENCIES) 
	@rm -f door_data$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(door_data_OBJECTS) $(door_data_LDADD) $(LIBS)

door_kill$(EXEEXT): $(door_kill_OBJECTS) $(door_kill_DEPENDENCIES) $(EXTRA_door_kill_DEPENDENCIES) 
	@rm -f door_kill$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(door_kill_OBJECTS) $(door_kill_LDADD) $(LIBS)

execx$(EXEEXT): $(execx_OBJECTS) $(execx_DEPENDENCIES) $(EXTRA_execx_DEPENDENCIES) 
	@rm -f execx$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(execx_OBJECTS) $(execx_LDADD) $(LIBS)

gethrtime$(EXEEXT): $(gethrtime_OBJECTS) $(gethrtime_DEPENDENCIES) $(EXTRA_gethrtime_DEPENDENCIES) 
	@rm -f gethrtime$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(gethrtime_OBJECTS) $(gethrtime_LDADD) $(LIBS)

gethrusec$(EXEEXT): $(gethrusec_OBJECTS) $(gethrusec_DEPENDENCIES) $(EXTRA_gethrusec_DEPENDENCIES) 
	@rm -f gethrusec$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(gethrusec_OBJECTS) $(gethrusec_LDADD) $(LIBS)

getzoneoffset$(EXEEXT): $(getzoneoffset_OBJECTS) $(getzoneoffset_DEPENDENCIES) $(EXTRA_getzoneoffset_DEPENDENCIES) 
	@rm -f getzoneoffset$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(getzoneoffset_OBJECTS) $(getzoneoffset_LDADD) $(LIBS)

inlinfo$(EXEEXT): $(inlinfo_OBJECTS) $(inlinfo_DEPENDENCIES) $(EXTRA_inlinfo_DEPENDENCIES) 
	@rm -f inlinfo$(EXEEXT)
	$(AM_V_CCLD)$(inlinfo_LINK) $(inlinfo_OBJECTS) $(inlinfo_LDADD) $(LIBS)

inlinfo_nested.so$(EXEEXT): $(inlinfo_nested_so_OBJECTS) $(inlinfo_nested_so_DEPENDENCIES) $(EXTRA_inlinfo_nested_so_DEPENDENCIES) 
	@rm -f inlinfo_nested.so$(EXEEXT)
	$(AM_V_CCLD)$(inlinfo_nested_so_LINK) $(inlinfo_nested_so_OBJECTS) $(inlinfo_nested_so_LDADD) $(LIBS)

ioctl$(EXEEXT): $(ioctl_OBJECTS) $(ioctl_DEPENDENCIES) $(EXTRA_ioctl_DEPENDENCIES) 
	@rm -f ioctl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ioctl_OBJECTS) $(ioctl_LDADD) $(LIBS)

ldynsym$(EXEEXT): $(ldynsym_OBJECTS) $(ldynsym_DEPENDENCIES) $(EXTRA_ldynsym_DEPENDENCIES) 
	@rm -f ldynsym$(EXEEXT)
	$(AM_V_CCLD)$(ldynsym_LINK) $(ldynsym_OBJECTS) $(ldynsym_LDADD) $(LIBS)

lsframe1$(EXEEXT): $(lsframe1_OBJECTS) $(lsframe1_DEPENDENCIES) $(EXTRA_lsframe1_DEPENDENCIES) 
	@rm -f lsframe1$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lsframe1_OBJECTS) $(lsframe1_LDADD) $(LIBS)

lsframe2$(EXEEXT): $(lsframe2_OBJECTS) $(lsframe2_DEPENDENCIES) $(EXTRA_lsframe2_DEPENDENCIES) 
	@rm -f lsframe2$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lsframe2_OBJECTS) $(lsframe2_LDADD) $(LIBS)

mmapobj_bssonly$(EXEEXT): $(mmapobj_bssonly_OBJECTS) $(mmapobj_bssonly_DEPENDENCIES) $(EXTRA_mmapobj_bssonly_DEPENDENCIES) 
	@rm -f mmapobj_bssonly$(EXEEXT)
	$(AM_V_CCLD)$(mmapobj_bssonly_LINK) $(mmapobj_bssonly_OBJECTS) $(mmapobj_bssonly_LDADD) $(LIBS)

mmapobj_bssonly.so$(EXEEXT): $(mmapobj_bssonly_so_OBJECTS) $(mmapobj_bssonly_so_DEPENDENCIES) $(EXTRA_mmapobj_bssonly_so_DEPENDENCIES) 
	@rm -f mmapobj_bssonly.so$(EXEEXT)
	$(AM_V_CCLD)$(mmapobj_bssonly_so_LINK) $(mmapobj_bssonly_so_OBJECTS) $(mmapobj_bssonly_so_LDADD) $(LIBS)

name_service_door$(EXEEXT): $(name_service_door_OBJECTS) $(name_service_door_DEPENDENCIES) $(EXTRA_name_service_door_DEPENDENCIES) 
	@rm -f name_service_door$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(name_service_door_OBJECTS) $(name_service_door_LDADD) $(LIBS)

pkcs11$(EXEEXT): $(pkcs11_OBJECTS) $(pkcs11_DEPENDENCIES) $(EXTRA_pkcs11_DEPENDENCIES) 
	@rm -f pkcs11$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pkcs11_OBJECTS) $(pkcs11_LDADD) $(LIBS)

scalar$(EXEEXT): $(scalar_OBJECTS) $(scalar_DEPENDENCIES) $(EXTRA_scalar_DEPENDENCIES) 
	@rm -f scalar$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_OBJECTS) $(scalar_LDADD) $(LIBS)

scalar_auditon_stat$(EXEEXT): $(scalar_auditon_stat_OBJECTS) $(scalar_auditon_stat_DEPENDENCIES) $(EXTRA_scalar_auditon_stat_DEPENDENCIES) 
	@rm -f scalar_auditon_stat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_auditon_stat_OBJECTS) $(scalar_auditon_stat_LDADD) $(LIBS)

scalar_frealpathat$(EXEEXT): $(scalar_frealpathat_OBJECTS) $(scalar_frealpathat_DEPENDENCIES) $(EXTRA_scalar_frealpathat_DEPENDENCIES) 
	@rm -f scalar_frealpathat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_frealpathat_OBJECTS) $(scalar_frealpathat_LDADD) $(LIBS)

scalar_getrandom$(EXEEXT): $(scalar_getrandom_OBJECTS) $(scalar_getrandom_DEPENDENCIES) $(EXTRA_scalar_getrandom_DEPENDENCIES) 
	@rm -f scalar_getrandom$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_getrandom_OBJECTS) $(scalar_getrandom_LDADD) $(LIBS)

scalar_ioctl$(EXEEXT): $(scalar_ioctl_OBJECTS) $(scalar_ioctl_DEPENDENCIES) $(EXTRA_scalar_ioctl_DEPENDENCIES) 
	@rm -f scalar_ioctl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_ioctl_OBJECTS) $(scalar_ioctl_LDADD) $(LIBS)

scalar_lwp_kill$(EXEEXT): $(scalar_lwp_kill_OBJECTS) $(scalar_lwp_kill_DEPENDENCIES) $(EXTRA_scalar_lwp_kill_DEPENDENCIES) 
	@rm -f scalar_lwp_kill$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_lwp_kill_OBJECTS) $(scalar_lwp_kill_LDADD) $(LIBS)

scalar_lwp_name$(EXEEXT): $(scalar_lwp_name_OBJECTS) $(scalar_lwp_name_DEPENDENCIES) $(EXTRA_scalar_lwp_name_DEPENDENCIES) 
	@rm -f scalar_lwp_name$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_lwp_name_OBJECTS) $(scalar_lwp_name_LDADD) $(LIBS)

scalar_lwp_sigqueue$(EXEEXT): $(scalar_lwp_sigqueue_OBJECTS) $(scalar_lwp_sigqueue_DEPENDENCIES) $(EXTRA_scalar_lwp_sigqueue_DEPENDENCIES) 
	@rm -f scalar_lwp_sigqueue$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_lwp_sigqueue_OBJECTS) $(scalar_lwp_sigqueue_LDADD) $(LIBS)

scalar_lwp_sigqueue_pid$(EXEEXT): $(scalar_lwp_sigqueue_pid_OBJECTS) $(scalar_lwp_sigqueue_pid_DEPENDENCIES) $(EXTRA_scalar_lwp_sigqueue_pid_DEPENDENCIES) 
	@rm -f scalar_lwp_sigqueue_pid$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_lwp_sigqueue_pid_OBJECTS) $(scalar_lwp_sigqueue_pid_LDADD) $(LIBS)

scalar_modctl_modnvl$(EXEEXT): $(scalar_modctl_modnvl_OBJECTS) $(scalar_modctl_modnvl_DEPENDENCIES) $(EXTRA_scalar_modctl_modnvl_DEPENDENCIES) 
	@rm -f scalar_modctl_modnvl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_modctl_modnvl_OBJECTS) $(scalar_modctl_modnvl_LDADD) $(LIBS)

scalar_obsolete$(EXEEXT): $(scalar_obsolete_OBJECTS) $(scalar_obsolete_DEPENDENCIES) $(EXTRA_scalar_obsolete_DEPENDENCIES) 
	@rm -f scalar_obsolete$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_obsolete_OBJECTS) $(scalar_obsolete_LDADD) $(LIBS)

scalar_shm_new$(EXEEXT): $(scalar_shm_new_OBJECTS) $(scalar_shm_new_DEPENDENCIES) $(EXTRA_scalar_shm_new_DEPENDENCIES) 
	@rm -f scalar_shm_new$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_shm_new_OBJECTS) $(scalar_shm_new_LDADD) $(LIBS)

scalar_spawn$(EXEEXT): $(scalar_spawn_OBJECTS) $(scalar_spawn_DEPENDENCIES) $(EXTRA_scalar_spawn_DEPENDENCIES) 
	@rm -f scalar_spawn$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_spawn_OBJECTS) $(scalar_spawn_LDADD) $(LIBS)

scalar_system_stats$(EXEEXT): $(scalar_system_stats_OBJECTS) $(scalar_system_stats_DEPENDENCIES) $(EXTRA_scalar_system_stats_DEPENDENCIES) 
	@rm -f scalar_system_stats$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_system_stats_OBJECTS) $(scalar_system_stats_LDADD) $(LIBS)

scalar_tsol_clearance$(EXEEXT): $(scalar_tsol_clearance_OBJECTS) $(scalar_tsol_clearance_DEPENDENCIES) $(EXTRA_scalar_tsol_clearance_DEPENDENCIES) 
	@rm -f scalar_tsol_clearance$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_tsol_clearance_OBJECTS) $(scalar_tsol_clearance_LDADD) $(LIBS)

scalar_utimensat$(EXEEXT): $(scalar_utimensat_OBJECTS) $(scalar_utimensat_DEPENDENCIES) $(EXTRA_scalar_utimensat_DEPENDENCIES) 
	@rm -f scalar_utimensat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_utimensat_OBJECTS) $(scalar_utimensat_LDADD) $(LIBS)

scalar_utimesys$(EXEEXT): $(scalar_utimesys_OBJECTS) $(scalar_utimesys_DEPENDENCIES) $(EXTRA_scalar_utimesys_DEPENDENCIES) 
	@rm -f scalar_utimesys$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_utimesys_OBJECTS) $(scalar_utimesys_LDADD) $(LIBS)

scalar_uuidsys$(EXEEXT): $(scalar_uuidsys_OBJECTS) $(scalar_uuidsys_DEPENDENCIES) $(EXTRA_scalar_uuidsys_DEPENDENCIES) 
	@rm -f scalar_uuidsys$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_uuidsys_OBJECTS) $(scalar_uuidsys_LDADD) $(LIBS)

scalar_zone_defunct$(EXEEXT): $(scalar_zone_defunct_OBJECTS) $(scalar_zone_defunct_DEPENDENCIES) $(EXTRA_scalar_zone_defunct_DEPENDENCIES) 
	@rm -f scalar_zone_defunct$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scalar_zone_defunct_OBJECTS) $(scalar_zone_defunct_LDADD) $(LIBS)

sendfilev$(EXEEXT): $(sendfilev_OBJECTS) $(sendfilev_DEPENDENCIES) $(EXTRA_sendfilev_DEPENDENCIES) 
	@rm -f sendfilev$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(sendfilev_OBJECTS) $(sendfilev_LDADD) $(LIBS)

shmat$(EXEEXT): $(shmat_OBJECTS) $(shmat_DEPENDENCIES) $(EXTRA_shmat_DEPENDENCIES) 
	@rm -f shmat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(shmat_OBJECTS) $(shmat_LDADD) $(LIBS)

spawn$(EXEEXT): $(spawn_OBJECTS) $(spawn_DEPENDENCIES) $(EXTRA_spawn_DEPENDENCIES) 
	@rm -f spawn$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(spawn_OBJECTS) $(spawn_LDADD) $(LIBS)

strlcpy$(EXEEXT): $(strlcpy_OBJECTS) $(strlcpy_DEPENDENCIES) $(EXTRA_strlcpy_DEPENDENCIES) 
	@rm -f strlcpy$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(strlcpy_OBJECTS) $(strlcpy_LDADD) $(LIBS)

syscall_at$(EXEEXT): $(syscall_at_OBJECTS) $(syscall_at_DEPENDENCIES) $(EXTRA_syscall_at_DEPENDENCIES) 
	@rm -f syscall_at$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(syscall_at_OBJECTS) $(syscall_at_LDADD) $(LIBS)

thr_daemon_exit_libc$(EXEEXT): $(thr_daemon_exit_libc_OBJECTS) $(thr_daemon_exit_libc_DEPENDENCIES) $(EXTRA_thr_daemon_exit_libc_DEPENDENCIES) 
	@rm -f thr_daemon_exit_libc$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(thr_daemon_exit_libc_OBJECTS) $(thr_daemon_exit_libc_LDADD) $(LIBS)

thr_daemon_exit_standalone$(EXEEXT): $(thr_daemon_exit_standalone_OBJECTS) $(thr_daemon_exit_standalone_DEPENDENCIES) $(EXTRA_thr_daemon_exit_standalone_DEPENDENCIES) 
	@rm -f thr_daemon_exit_standalone$(EXEEXT)
	$(AM_V_CCLD)$(thr_daemon_exit_standalone_LINK) $(thr_daemon_exit_standalone_OBJECTS) $(thr_daemon_exit_standalone_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context_stack_die.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/door_data.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/door_kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethrtime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethrusec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getzoneoffset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inlinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inlinfo_nested_so-inlinfo_nested.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldynsym.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsframe1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsframe2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmapobj_bssonly.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmapobj_bssonly_so-mmapobj_bssonly_lib.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/name_service_door.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkcs11.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_auditon_stat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_frealpathat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_getrandom.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_lwp_kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_lwp_name.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_lwp_sigqueue.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_lwp_sigqueue_pid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_modctl_modnvl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_obsolete.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_shm_new.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_spawn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_system_stats.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_tsol_clearance.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_utimensat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_utimesys.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_uuidsys.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalar_zone_defunct.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfilev.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shmat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcpy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syscall_at.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thr_daemon_exit_libc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thr_daemon_exit_standalone.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) '$<'`

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

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

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

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

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) $(HEADERS)
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:
