1 # Makefile.in generated by automake 1.11.1 from Makefile.am. 2 # @configure_input@ 3 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 6 # Inc. 7 # This Makefile.in is free software; the Free Software Foundation 8 # gives unlimited permission to copy and/or distribute it, 9 # with or without modifications, as long as this notice is preserved. 10 11 # This program is distributed in the hope that it will be useful, 12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 14 # PARTICULAR PURPOSE. 15 16 @SET_MAKE@ 17 18 # This file is used for tool tests, and also in perf/Makefile.am. 19 20 # This file should be included (directly or indirectly) by every 21 # Makefile.am that builds programs. And also the top-level Makefile.am. 22 23 #---------------------------------------------------------------------------- 24 # Global stuff 25 #---------------------------------------------------------------------------- 26 27 VPATH = @srcdir@ 28 pkgdatadir = $(datadir)/@PACKAGE@ 29 pkgincludedir = $(includedir)/@PACKAGE@ 30 pkglibdir = $(libdir)/@PACKAGE@ 31 pkglibexecdir = $(libexecdir)/@PACKAGE@ 32 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 33 install_sh_DATA = $(install_sh) -c -m 644 34 install_sh_PROGRAM = $(install_sh) -c 35 install_sh_SCRIPT = $(install_sh) -c 36 INSTALL_HEADER = $(INSTALL_DATA) 37 transform = $(program_transform_name) 38 NORMAL_INSTALL = : 39 PRE_INSTALL = : 40 POST_INSTALL = : 41 NORMAL_UNINSTALL = : 42 PRE_UNINSTALL = : 43 POST_UNINSTALL = : 44 build_triplet = @build@ 45 host_triplet = @host@ 46 DIST_COMMON = $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \ 47 $(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \ 48 $(top_srcdir)/Makefile.tool-tests.am 49 50 # The Android toolchain includes all kinds of stdlib helpers present in 51 # bionic which is bad because we are not linking with it and the Android 52 # linker will panic. 53 @VGCONF_PLATVARIANT_IS_ANDROID_TRUE@am__append_1 = -nostdlib 54 @VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_2 = -DVGA_SEC_@VGCONF_ARCH_SEC@=1 \ 55 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 56 57 check_PROGRAMS = clreq$(EXEEXT) simwork$(EXEEXT) threads$(EXEEXT) 58 subdir = callgrind/tests 59 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 60 am__aclocal_m4_deps = $(top_srcdir)/configure.in 61 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 62 $(ACLOCAL_M4) 63 mkinstalldirs = $(install_sh) -d 64 CONFIG_HEADER = $(top_builddir)/config.h 65 CONFIG_CLEAN_FILES = 66 CONFIG_CLEAN_VPATH_FILES = 67 clreq_SOURCES = clreq.c 68 clreq_OBJECTS = clreq.$(OBJEXT) 69 clreq_LDADD = $(LDADD) 70 simwork_SOURCES = simwork.c 71 simwork_OBJECTS = simwork.$(OBJEXT) 72 simwork_LDADD = $(LDADD) 73 threads_SOURCES = threads.c 74 threads_OBJECTS = threads.$(OBJEXT) 75 threads_DEPENDENCIES = 76 SCRIPTS = $(dist_noinst_SCRIPTS) 77 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) 78 depcomp = $(SHELL) $(top_srcdir)/depcomp 79 am__depfiles_maybe = depfiles 80 am__mv = mv -f 81 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 82 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 83 CCLD = $(CC) 84 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 85 SOURCES = clreq.c simwork.c threads.c 86 DIST_SOURCES = clreq.c simwork.c threads.c 87 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ 88 html-recursive info-recursive install-data-recursive \ 89 install-dvi-recursive install-exec-recursive \ 90 install-html-recursive install-info-recursive \ 91 install-pdf-recursive install-ps-recursive install-recursive \ 92 installcheck-recursive installdirs-recursive pdf-recursive \ 93 ps-recursive uninstall-recursive 94 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ 95 distclean-recursive maintainer-clean-recursive 96 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ 97 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ 98 distdir 99 ETAGS = etags 100 CTAGS = ctags 101 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 102 am__relativize = \ 103 dir0=`pwd`; \ 104 sed_first='s,^\([^/]*\)/.*$$,\1,'; \ 105 sed_rest='s,^[^/]*/*,,'; \ 106 sed_last='s,^.*/\([^/]*\)$$,\1,'; \ 107 sed_butlast='s,/*[^/]*$$,,'; \ 108 while test -n "$$dir1"; do \ 109 first=`echo "$$dir1" | sed -e "$$sed_first"`; \ 110 if test "$$first" != "."; then \ 111 if test "$$first" = ".."; then \ 112 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ 113 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ 114 else \ 115 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ 116 if test "$$first2" = "$$first"; then \ 117 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ 118 else \ 119 dir2="../$$dir2"; \ 120 fi; \ 121 dir0="$$dir0"/"$$first"; \ 122 fi; \ 123 fi; \ 124 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ 125 done; \ 126 reldir="$$dir2" 127 ACLOCAL = @ACLOCAL@ 128 AMTAR = @AMTAR@ 129 AR = @AR@ 130 AUTOCONF = @AUTOCONF@ 131 AUTOHEADER = @AUTOHEADER@ 132 AUTOMAKE = @AUTOMAKE@ 133 AWK = @AWK@ 134 BOOST_CFLAGS = @BOOST_CFLAGS@ 135 BOOST_LIBS = @BOOST_LIBS@ 136 CC = @CC@ 137 CCAS = @CCAS@ 138 CCASDEPMODE = @CCASDEPMODE@ 139 CCASFLAGS = @CCASFLAGS@ 140 CCDEPMODE = @CCDEPMODE@ 141 CFLAGS = @CFLAGS@ 142 CFLAGS_MPI = @CFLAGS_MPI@ 143 CPP = @CPP@ 144 CPPFLAGS = @CPPFLAGS@ 145 CXX = @CXX@ 146 CXXDEPMODE = @CXXDEPMODE@ 147 CXXFLAGS = @CXXFLAGS@ 148 CYGPATH_W = @CYGPATH_W@ 149 DEFAULT_SUPP = @DEFAULT_SUPP@ 150 DEFS = @DEFS@ 151 DEPDIR = @DEPDIR@ 152 DIFF = @DIFF@ 153 ECHO_C = @ECHO_C@ 154 ECHO_N = @ECHO_N@ 155 ECHO_T = @ECHO_T@ 156 EGREP = @EGREP@ 157 EXEEXT = @EXEEXT@ 158 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@ 159 FLAG_M32 = @FLAG_M32@ 160 FLAG_M64 = @FLAG_M64@ 161 FLAG_MMMX = @FLAG_MMMX@ 162 FLAG_MSSE = @FLAG_MSSE@ 163 FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@ 164 FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ 165 FLAG_W_EXTRA = @FLAG_W_EXTRA@ 166 FLAG_W_NO_EMPTY_BODY = @FLAG_W_NO_EMPTY_BODY@ 167 FLAG_W_NO_FORMAT_ZERO_LENGTH = @FLAG_W_NO_FORMAT_ZERO_LENGTH@ 168 FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@ 169 FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@ 170 FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@ 171 GDB = @GDB@ 172 GLIBC_VERSION = @GLIBC_VERSION@ 173 GREP = @GREP@ 174 INSTALL = @INSTALL@ 175 INSTALL_DATA = @INSTALL_DATA@ 176 INSTALL_PROGRAM = @INSTALL_PROGRAM@ 177 INSTALL_SCRIPT = @INSTALL_SCRIPT@ 178 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 179 LDFLAGS = @LDFLAGS@ 180 LDFLAGS_MPI = @LDFLAGS_MPI@ 181 LIBOBJS = @LIBOBJS@ 182 LIBS = @LIBS@ 183 LN_S = @LN_S@ 184 LTLIBOBJS = @LTLIBOBJS@ 185 MAINT = @MAINT@ 186 MAKEINFO = @MAKEINFO@ 187 MKDIR_P = @MKDIR_P@ 188 MPI_CC = @MPI_CC@ 189 OBJEXT = @OBJEXT@ 190 PACKAGE = @PACKAGE@ 191 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 192 PACKAGE_NAME = @PACKAGE_NAME@ 193 PACKAGE_STRING = @PACKAGE_STRING@ 194 PACKAGE_TARNAME = @PACKAGE_TARNAME@ 195 PACKAGE_URL = @PACKAGE_URL@ 196 PACKAGE_VERSION = @PACKAGE_VERSION@ 197 PATH_SEPARATOR = @PATH_SEPARATOR@ 198 PERL = @PERL@ 199 PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@ 200 RANLIB = @RANLIB@ 201 SED = @SED@ 202 SET_MAKE = @SET_MAKE@ 203 SHELL = @SHELL@ 204 STRIP = @STRIP@ 205 VALT_LOAD_ADDRESS_PRI = @VALT_LOAD_ADDRESS_PRI@ 206 VALT_LOAD_ADDRESS_SEC = @VALT_LOAD_ADDRESS_SEC@ 207 VERSION = @VERSION@ 208 VGCONF_ARCH_PRI = @VGCONF_ARCH_PRI@ 209 VGCONF_ARCH_SEC = @VGCONF_ARCH_SEC@ 210 VGCONF_OS = @VGCONF_OS@ 211 VGCONF_PLATFORM_PRI_CAPS = @VGCONF_PLATFORM_PRI_CAPS@ 212 VGCONF_PLATFORM_SEC_CAPS = @VGCONF_PLATFORM_SEC_CAPS@ 213 VGCONF_PLATVARIANT = @VGCONF_PLATVARIANT@ 214 abs_builddir = @abs_builddir@ 215 abs_srcdir = @abs_srcdir@ 216 abs_top_builddir = @abs_top_builddir@ 217 abs_top_srcdir = @abs_top_srcdir@ 218 ac_ct_CC = @ac_ct_CC@ 219 ac_ct_CXX = @ac_ct_CXX@ 220 am__include = @am__include@ 221 am__leading_dot = @am__leading_dot@ 222 am__quote = @am__quote@ 223 am__tar = @am__tar@ 224 am__untar = @am__untar@ 225 bindir = @bindir@ 226 build = @build@ 227 build_alias = @build_alias@ 228 build_cpu = @build_cpu@ 229 build_os = @build_os@ 230 build_vendor = @build_vendor@ 231 builddir = @builddir@ 232 datadir = @datadir@ 233 datarootdir = @datarootdir@ 234 docdir = @docdir@ 235 dvidir = @dvidir@ 236 exec_prefix = @exec_prefix@ 237 host = @host@ 238 host_alias = @host_alias@ 239 host_cpu = @host_cpu@ 240 host_os = @host_os@ 241 host_vendor = @host_vendor@ 242 htmldir = @htmldir@ 243 includedir = @includedir@ 244 infodir = @infodir@ 245 install_sh = @install_sh@ 246 libdir = @libdir@ 247 libexecdir = @libexecdir@ 248 localedir = @localedir@ 249 localstatedir = @localstatedir@ 250 mandir = @mandir@ 251 mkdir_p = @mkdir_p@ 252 oldincludedir = @oldincludedir@ 253 pdfdir = @pdfdir@ 254 prefix = @prefix@ 255 program_transform_name = @program_transform_name@ 256 psdir = @psdir@ 257 sbindir = @sbindir@ 258 sharedstatedir = @sharedstatedir@ 259 srcdir = @srcdir@ 260 sysconfdir = @sysconfdir@ 261 target_alias = @target_alias@ 262 top_build_prefix = @top_build_prefix@ 263 top_builddir = @top_builddir@ 264 top_srcdir = @top_srcdir@ 265 inplacedir = $(top_builddir)/.in_place 266 267 #---------------------------------------------------------------------------- 268 # Flags 269 #---------------------------------------------------------------------------- 270 271 # Baseline flags for all compilations. Aim here is to maximise 272 # performance and get whatever useful warnings we can out of gcc. 273 # -fno-builtin is important for defeating LLVM's idiom recognition 274 # that somehow causes VG_(memset) to get into infinite recursion. 275 AM_CFLAGS_BASE = \ 276 -O2 -g \ 277 -Wall \ 278 -Wmissing-prototypes \ 279 -Wshadow \ 280 -Wpointer-arith \ 281 -Wstrict-prototypes \ 282 -Wmissing-declarations \ 283 @FLAG_W_NO_FORMAT_ZERO_LENGTH@ \ 284 -fno-strict-aliasing \ 285 -fno-builtin 286 287 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PIC = -fpic -O -g -fno-omit-frame-pointer -fno-strict-aliasing \ 288 @VGCONF_OS_IS_DARWIN_FALSE@ -fno-builtin 289 290 291 # These flags are used for building the preload shared objects. 292 # The aim is to give reasonable performance but also to have good 293 # stack traces, since users often see stack traces extending 294 # into (and through) the preloads. 295 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PIC = -dynamic -O -g -fno-omit-frame-pointer -fno-strict-aliasing \ 296 @VGCONF_OS_IS_DARWIN_TRUE@ -mno-dynamic-no-pic -fpic -fPIC \ 297 @VGCONF_OS_IS_DARWIN_TRUE@ -fno-builtin 298 299 300 # Flags for specific targets. 301 # 302 # Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs. 303 # For building the core, coregrind/Makefile.am files add some extra things. 304 AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \ 305 -I$(top_srcdir) \ 306 -I$(top_srcdir)/include \ 307 -I$(top_srcdir)/VEX/pub \ 308 -DVGA_@VGCONF_ARCH_PRI@=1 \ 309 -DVGO_@VGCONF_OS@=1 \ 310 -DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \ 311 -DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 312 313 @VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \ 314 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir) \ 315 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/include \ 316 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/VEX/pub \ 317 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGA_@VGCONF_ARCH_SEC@=1 \ 318 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGO_@VGCONF_OS@=1 \ 319 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 \ 320 @VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGPV_@VGCONF_ARCH_SEC@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 321 322 AM_FLAG_M3264_X86_LINUX = @FLAG_M32@ 323 AM_CFLAGS_X86_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ 324 $(AM_CFLAGS_BASE) -fomit-frame-pointer 325 326 AM_CCASFLAGS_X86_LINUX = @FLAG_M32@ -g 327 AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@ 328 AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ @PREFERRED_STACK_BOUNDARY@ \ 329 $(AM_CFLAGS_BASE) -fomit-frame-pointer 330 331 AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g 332 AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@ 333 AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) 334 AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g 335 AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@ 336 AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) 337 AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g 338 AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@ 339 AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ 340 $(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8 341 342 AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \ 343 -marm -mcpu=cortex-a8 -g 344 345 AM_FLAG_M3264_X86_DARWIN = -arch i386 346 AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \ 347 -mmacosx-version-min=10.5 \ 348 -fno-stack-protector -fno-pic -fno-PIC 349 350 AM_CCASFLAGS_X86_DARWIN = -arch i386 -g 351 AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64 352 AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \ 353 -mmacosx-version-min=10.5 -fno-stack-protector 354 355 AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g 356 AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@ 357 AM_CFLAGS_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer 358 AM_CCASFLAGS_S390X_LINUX = @FLAG_M64@ -g -mzarch -march=z900 359 AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@ 360 AM_CFLAGS_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) -mips32 361 AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -mips32 -g 362 363 # Flags for the primary target. These must be used to build the 364 # regtests and performance tests. In fact, these must be used to 365 # build anything which is built only once on a dual-arch build. 366 # 367 AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VGCONF_PLATFORM_PRI_CAPS@) 368 AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 369 AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 370 AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 371 @VGCONF_HAVE_PLATFORM_SEC_FALSE@AM_FLAG_M3264_SEC = 372 @VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@) 373 374 # Baseline link flags for making vgpreload shared objects. 375 # 376 PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \ 377 -Wl,-z,interpose,-z,initfirst $(am__append_1) 378 PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load 379 PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ 380 PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ 381 PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ 382 PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ 383 PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ 384 PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386 385 PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64 386 PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ 387 PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ 388 AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \ 389 -I$(top_srcdir)/coregrind -I$(top_builddir)/include \ 390 -I$(top_srcdir)/VEX/pub -DVGA_@VGCONF_ARCH_PRI@=1 \ 391 -DVGO_@VGCONF_OS@=1 -DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \ 392 -DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 \ 393 $(am__append_2) 394 395 # Nb: Tools need to augment these flags with an arch-selection option, such 396 # as $(AM_FLAG_M3264_PRI). 397 AM_CFLAGS = -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI) 398 AM_CXXFLAGS = -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI) 399 # Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of 400 # automake; see comments in Makefile.all.am for more detail. 401 AM_CCASFLAGS = $(AM_CPPFLAGS) 402 @VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS) 403 SUBDIRS = . 404 DIST_SUBDIRS = . 405 dist_noinst_SCRIPTS = filter_stderr 406 EXTRA_DIST = \ 407 clreq.vgtest clreq.stderr.exp \ 408 simwork1.vgtest simwork1.stdout.exp simwork1.stderr.exp \ 409 simwork2.vgtest simwork2.stdout.exp simwork2.stderr.exp \ 410 simwork3.vgtest simwork3.stdout.exp simwork3.stderr.exp \ 411 simwork-both.vgtest simwork-both.stdout.exp simwork-both.stderr.exp \ 412 simwork-branch.vgtest simwork-branch.stdout.exp simwork-branch.stderr.exp \ 413 simwork-cache.vgtest simwork-cache.stdout.exp simwork-cache.stderr.exp \ 414 notpower2.vgtest notpower2.stderr.exp \ 415 notpower2-wb.vgtest notpower2-wb.stderr.exp \ 416 notpower2-hwpref.vgtest notpower2-hwpref.stderr.exp \ 417 notpower2-use.vgtest notpower2-use.stderr.exp \ 418 threads.vgtest threads.stderr.exp \ 419 threads-use.vgtest threads-use.stderr.exp 420 421 threads_LDADD = -lpthread 422 all: all-recursive 423 424 .SUFFIXES: 425 .SUFFIXES: .c .o .obj 426 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps) 427 @for dep in $?; do \ 428 case '$(am__configure_deps)' in \ 429 *$$dep*) \ 430 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 431 && { if test -f $@; then exit 0; else break; fi; }; \ 432 exit 1;; \ 433 esac; \ 434 done; \ 435 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign callgrind/tests/Makefile'; \ 436 $(am__cd) $(top_srcdir) && \ 437 $(AUTOMAKE) --foreign callgrind/tests/Makefile 438 .PRECIOUS: Makefile 439 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 440 @case '$?' in \ 441 *config.status*) \ 442 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 443 *) \ 444 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 445 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 446 esac; 447 448 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 449 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 450 451 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 452 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 453 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 454 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 455 $(am__aclocal_m4_deps): 456 457 clean-checkPROGRAMS: 458 -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) 459 clreq$(EXEEXT): $(clreq_OBJECTS) $(clreq_DEPENDENCIES) 460 @rm -f clreq$(EXEEXT) 461 $(LINK) $(clreq_OBJECTS) $(clreq_LDADD) $(LIBS) 462 simwork$(EXEEXT): $(simwork_OBJECTS) $(simwork_DEPENDENCIES) 463 @rm -f simwork$(EXEEXT) 464 $(LINK) $(simwork_OBJECTS) $(simwork_LDADD) $(LIBS) 465 threads$(EXEEXT): $(threads_OBJECTS) $(threads_DEPENDENCIES) 466 @rm -f threads$(EXEEXT) 467 $(LINK) $(threads_OBJECTS) $(threads_LDADD) $(LIBS) 468 469 mostlyclean-compile: 470 -rm -f *.$(OBJEXT) 471 472 distclean-compile: 473 -rm -f *.tab.c 474 475 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clreq.Po@am__quote@ 476 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simwork.Po@am__quote@ 477 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads.Po@am__quote@ 478 479 .c.o: 480 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 481 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 482 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 483 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 484 @am__fastdepCC_FALSE@ $(COMPILE) -c $< 485 486 .c.obj: 487 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 488 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 489 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 490 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 491 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 492 493 # This directory's subdirectories are mostly independent; you can cd 494 # into them and run `make' without going through this Makefile. 495 # To change the values of `make' variables: instead of editing Makefiles, 496 # (1) if the variable is set in `config.status', edit `config.status' 497 # (which will cause the Makefiles to be regenerated when you run `make'); 498 # (2) otherwise, pass the desired values on the `make' command line. 499 $(RECURSIVE_TARGETS): 500 @fail= failcom='exit 1'; \ 501 for f in x $$MAKEFLAGS; do \ 502 case $$f in \ 503 *=* | --[!k]*);; \ 504 *k*) failcom='fail=yes';; \ 505 esac; \ 506 done; \ 507 dot_seen=no; \ 508 target=`echo $@ | sed s/-recursive//`; \ 509 list='$(SUBDIRS)'; for subdir in $$list; do \ 510 echo "Making $$target in $$subdir"; \ 511 if test "$$subdir" = "."; then \ 512 dot_seen=yes; \ 513 local_target="$$target-am"; \ 514 else \ 515 local_target="$$target"; \ 516 fi; \ 517 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 518 || eval $$failcom; \ 519 done; \ 520 if test "$$dot_seen" = "no"; then \ 521 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 522 fi; test -z "$$fail" 523 524 $(RECURSIVE_CLEAN_TARGETS): 525 @fail= failcom='exit 1'; \ 526 for f in x $$MAKEFLAGS; do \ 527 case $$f in \ 528 *=* | --[!k]*);; \ 529 *k*) failcom='fail=yes';; \ 530 esac; \ 531 done; \ 532 dot_seen=no; \ 533 case "$@" in \ 534 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ 535 *) list='$(SUBDIRS)' ;; \ 536 esac; \ 537 rev=''; for subdir in $$list; do \ 538 if test "$$subdir" = "."; then :; else \ 539 rev="$$subdir $$rev"; \ 540 fi; \ 541 done; \ 542 rev="$$rev ."; \ 543 target=`echo $@ | sed s/-recursive//`; \ 544 for subdir in $$rev; do \ 545 echo "Making $$target in $$subdir"; \ 546 if test "$$subdir" = "."; then \ 547 local_target="$$target-am"; \ 548 else \ 549 local_target="$$target"; \ 550 fi; \ 551 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 552 || eval $$failcom; \ 553 done && test -z "$$fail" 554 tags-recursive: 555 list='$(SUBDIRS)'; for subdir in $$list; do \ 556 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ 557 done 558 ctags-recursive: 559 list='$(SUBDIRS)'; for subdir in $$list; do \ 560 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ 561 done 562 563 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 564 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 565 unique=`for i in $$list; do \ 566 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 567 done | \ 568 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 569 END { if (nonempty) { for (i in files) print i; }; }'`; \ 570 mkid -fID $$unique 571 tags: TAGS 572 573 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 574 $(TAGS_FILES) $(LISP) 575 set x; \ 576 here=`pwd`; \ 577 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ 578 include_option=--etags-include; \ 579 empty_fix=.; \ 580 else \ 581 include_option=--include; \ 582 empty_fix=; \ 583 fi; \ 584 list='$(SUBDIRS)'; for subdir in $$list; do \ 585 if test "$$subdir" = .; then :; else \ 586 test ! -f $$subdir/TAGS || \ 587 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ 588 fi; \ 589 done; \ 590 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 591 unique=`for i in $$list; do \ 592 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 593 done | \ 594 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 595 END { if (nonempty) { for (i in files) print i; }; }'`; \ 596 shift; \ 597 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 598 test -n "$$unique" || unique=$$empty_fix; \ 599 if test $$# -gt 0; then \ 600 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 601 "$$@" $$unique; \ 602 else \ 603 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 604 $$unique; \ 605 fi; \ 606 fi 607 ctags: CTAGS 608 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 609 $(TAGS_FILES) $(LISP) 610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 611 unique=`for i in $$list; do \ 612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 613 done | \ 614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 615 END { if (nonempty) { for (i in files) print i; }; }'`; \ 616 test -z "$(CTAGS_ARGS)$$unique" \ 617 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 618 $$unique 619 620 GTAGS: 621 here=`$(am__cd) $(top_builddir) && pwd` \ 622 && $(am__cd) $(top_srcdir) \ 623 && gtags -i $(GTAGS_ARGS) "$$here" 624 625 distclean-tags: 626 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 627 628 distdir: $(DISTFILES) 629 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 630 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 631 list='$(DISTFILES)'; \ 632 dist_files=`for file in $$list; do echo $$file; done | \ 633 sed -e "s|^$$srcdirstrip/||;t" \ 634 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 635 case $$dist_files in \ 636 */*) $(MKDIR_P) `echo "$$dist_files" | \ 637 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 638 sort -u` ;; \ 639 esac; \ 640 for file in $$dist_files; do \ 641 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 642 if test -d $$d/$$file; then \ 643 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 644 if test -d "$(distdir)/$$file"; then \ 645 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 646 fi; \ 647 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 648 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 649 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 650 fi; \ 651 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 652 else \ 653 test -f "$(distdir)/$$file" \ 654 || cp -p $$d/$$file "$(distdir)/$$file" \ 655 || exit 1; \ 656 fi; \ 657 done 658 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 659 if test "$$subdir" = .; then :; else \ 660 test -d "$(distdir)/$$subdir" \ 661 || $(MKDIR_P) "$(distdir)/$$subdir" \ 662 || exit 1; \ 663 fi; \ 664 done 665 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 666 if test "$$subdir" = .; then :; else \ 667 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ 668 $(am__relativize); \ 669 new_distdir=$$reldir; \ 670 dir1=$$subdir; dir2="$(top_distdir)"; \ 671 $(am__relativize); \ 672 new_top_distdir=$$reldir; \ 673 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ 674 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ 675 ($(am__cd) $$subdir && \ 676 $(MAKE) $(AM_MAKEFLAGS) \ 677 top_distdir="$$new_top_distdir" \ 678 distdir="$$new_distdir" \ 679 am__remove_distdir=: \ 680 am__skip_length_check=: \ 681 am__skip_mode_fix=: \ 682 distdir) \ 683 || exit 1; \ 684 fi; \ 685 done 686 check-am: all-am 687 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) 688 $(MAKE) $(AM_MAKEFLAGS) check-local 689 check: check-recursive 690 all-am: Makefile $(SCRIPTS) 691 installdirs: installdirs-recursive 692 installdirs-am: 693 install: install-recursive 694 install-exec: install-exec-recursive 695 install-data: install-data-recursive 696 uninstall: uninstall-recursive 697 698 install-am: all-am 699 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 700 701 installcheck: installcheck-recursive 702 install-strip: 703 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 704 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 705 `test -z '$(STRIP)' || \ 706 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 707 mostlyclean-generic: 708 709 clean-generic: 710 711 distclean-generic: 712 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 713 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 714 715 maintainer-clean-generic: 716 @echo "This command is intended for maintainers to use" 717 @echo "it deletes files that may require special tools to rebuild." 718 clean: clean-recursive 719 720 clean-am: clean-checkPROGRAMS clean-generic clean-local mostlyclean-am 721 722 distclean: distclean-recursive 723 -rm -rf ./$(DEPDIR) 724 -rm -f Makefile 725 distclean-am: clean-am distclean-compile distclean-generic \ 726 distclean-tags 727 728 dvi: dvi-recursive 729 730 dvi-am: 731 732 html: html-recursive 733 734 html-am: 735 736 info: info-recursive 737 738 info-am: 739 740 install-data-am: 741 742 install-dvi: install-dvi-recursive 743 744 install-dvi-am: 745 746 install-exec-am: 747 748 install-html: install-html-recursive 749 750 install-html-am: 751 752 install-info: install-info-recursive 753 754 install-info-am: 755 756 install-man: 757 758 install-pdf: install-pdf-recursive 759 760 install-pdf-am: 761 762 install-ps: install-ps-recursive 763 764 install-ps-am: 765 766 installcheck-am: 767 768 maintainer-clean: maintainer-clean-recursive 769 -rm -rf ./$(DEPDIR) 770 -rm -f Makefile 771 maintainer-clean-am: distclean-am maintainer-clean-generic 772 773 mostlyclean: mostlyclean-recursive 774 775 mostlyclean-am: mostlyclean-compile mostlyclean-generic 776 777 pdf: pdf-recursive 778 779 pdf-am: 780 781 ps: ps-recursive 782 783 ps-am: 784 785 uninstall-am: 786 787 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ 788 ctags-recursive install-am install-strip tags-recursive 789 790 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ 791 all all-am check check-am check-local clean \ 792 clean-checkPROGRAMS clean-generic clean-local ctags \ 793 ctags-recursive distclean distclean-compile distclean-generic \ 794 distclean-tags distdir dvi dvi-am html html-am info info-am \ 795 install install-am install-data install-data-am install-dvi \ 796 install-dvi-am install-exec install-exec-am install-html \ 797 install-html-am install-info install-info-am install-man \ 798 install-pdf install-pdf-am install-ps install-ps-am \ 799 install-strip installcheck installcheck-am installdirs \ 800 installdirs-am maintainer-clean maintainer-clean-generic \ 801 mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ 802 ps ps-am tags tags-recursive uninstall uninstall-am 803 804 805 # This used to be required when Vex had a handwritten Makefile. It 806 # shouldn't be needed any more, though. 807 808 #---------------------------------------------------------------------------- 809 # noinst_PROGRAMS and noinst_DSYMS targets 810 #---------------------------------------------------------------------------- 811 812 # On Darwin, for a program 'p', the DWARF debug info is stored in the 813 # directory 'p.dSYM'. This must be generated after the executable is 814 # created, with 'dsymutil p'. We could redefine LINK with a script that 815 # executes 'dsymutil' after linking, but that's a pain. Instead we use this 816 # hook so that every time "make check" is run, we subsequently invoke 817 # 'dsymutil' on all the executables that lack a .dSYM directory, or that are 818 # newer than their corresponding .dSYM directory. 819 build-noinst_DSYMS: $(noinst_DSYMS) 820 for f in $(noinst_DSYMS); do \ 821 if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \ 822 echo "dsymutil $$f"; \ 823 dsymutil $$f; \ 824 fi; \ 825 done 826 827 # This is used by coregrind/Makefile.am and Makefile.tool.am for doing 828 # "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir. 829 # It needs to be depended on by an 'all-local' rule. 830 inplace-noinst_PROGRAMS: $(noinst_PROGRAMS) 831 mkdir -p $(inplacedir); \ 832 for f in $(noinst_PROGRAMS) ; do \ 833 rm -f $(inplacedir)/$$f; \ 834 ln -f -s ../$(subdir)/$$f $(inplacedir); \ 835 done 836 837 # Similar to inplace-noinst_PROGRAMS 838 inplace-noinst_DSYMS: build-noinst_DSYMS 839 mkdir -p $(inplacedir); \ 840 for f in $(noinst_DSYMS); do \ 841 rm -f $(inplacedir)/$$f.dSYM; \ 842 ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \ 843 done 844 845 # This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing 846 # "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/. 847 # It needs to be depended on by an 'install-exec-local' rule. 848 install-noinst_PROGRAMS: $(noinst_PROGRAMS) 849 $(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ 850 for f in $(noinst_PROGRAMS); do \ 851 $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \ 852 done 853 854 # Similar to install-noinst_PROGRAMS. 855 # Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with 856 # directories. XXX: not sure whether the resulting permissions will be 857 # correct when using 'cp -R'... 858 install-noinst_DSYMS: build-noinst_DSYMS 859 $(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ 860 for f in $(noinst_DSYMS); do \ 861 cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \ 862 done 863 864 # This needs to be depended on by a 'clean-local' rule. 865 clean-noinst_DSYMS: 866 for f in $(noinst_DSYMS); do \ 867 rm -rf $$f.dSYM; \ 868 done 869 870 check-local: build-noinst_DSYMS 871 872 clean-local: clean-noinst_DSYMS 873 874 # Tell versions [3.59,3.63) of GNU make to not export all variables. 875 # Otherwise a system limit (for SysV at least) may be exceeded. 876 .NOEXPORT: 877