# 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 \
		-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 -g
AM_CXXFLAGS = -Winline -Wall -Wshadow -g
# 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_DARWIN
noinst_DSYMS = $(check_PROGRAMS)
endif

if HAS_WRITE_STRINGS_WARNING
CFLAGS += -Wno-write-strings
endif

check-local: build-noinst_DSYMS

clean-local: clean-noinst_DSYMS
