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

include $(top_srcdir)/Makefile.all.am

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

if VGCONF_HAVE_PLATFORM_SEC
AM_CPPFLAGS +=	-DVGA_SEC_@VGCONF_ARCH_SEC@=1  \
		-DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1
endif

# 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_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
              @FLAG_FNO_STACK_PROTECTOR@
# 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)

if VGCONF_OS_IS_SOLARIS
# Make sure that all test programs have threaded errno.
# Disable largefile support as there are test cases explictly enabling it.
AM_CFLAGS  += -D_REENTRANT @SOLARIS_UNDEF_LARGESOURCE@
endif

if VGCONF_OS_IS_DARWIN
noinst_DSYMS = $(check_PROGRAMS)
endif

if COMPILER_IS_CLANG
AM_CFLAGS   += -Wno-format-extra-args       # perf/tinycc.c
AM_CFLAGS   += -Wno-literal-range           # none/tests/amd64/fxtract.c
AM_CFLAGS   += -Wno-tautological-constant-out-of-range-compare # ...../aes.c
AM_CFLAGS   += -Wno-self-assign             # memcheck/tests/unit_libcbase.c
AM_CFLAGS   += -Wno-string-plus-int         # drd/tests/annotate_ignore_rw.c
AM_CFLAGS   += -Wno-uninitialized           # clang 3.4.2 and earlier
AM_CFLAGS   += -Wno-unused-value            # clang 3.0.0
AM_CXXFLAGS += -Wno-unused-private-field    # drd/tests/tsan_unittest.cpp
endif

check-local: build-noinst_DSYMS

clean-local: clean-noinst_DSYMS
