# 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 explictly 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_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_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_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_CFLAGS_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
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_TILEGX_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:
