
# Baseline flags for all compilations.  Aim here is to maximise
# performance and get whatever useful warnings we can out of gcc.
AM_CFLAGS_BASE = -O2 -g -Wmissing-prototypes -Wall -Wshadow \
                 -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
		 @FLAG_W_NO_FORMAT_ZERO_LENGTH@ \
                 -fno-strict-aliasing

# These flags are used for building the preload shared objects.
# 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.
AM_CFLAGS_PIC = -O -g -fpic -fno-omit-frame-pointer -fno-strict-aliasing

# 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_COMMON = \
		-I$(top_srcdir)/include \
		-I@VEX_DIR@/pub

AM_FLAG_M3264_X86_LINUX   = @FLAG_M32@
AM_CPPFLAGS_X86_LINUX 	  = $(AM_CPPFLAGS_COMMON) \
			    -DVGA_x86=1 \
			    -DVGO_linux=1 \
			    -DVGP_x86_linux=1
AM_CFLAGS_X86_LINUX       = $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
			 	$(AM_CFLAGS_BASE)
AM_CCASFLAGS_X86_LINUX    = @FLAG_M32@ -g

AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@
AM_CPPFLAGS_AMD64_LINUX   = $(AM_CPPFLAGS_COMMON) \
			    -DVGA_amd64=1 \
			    -DVGO_linux=1 \
			    -DVGP_amd64_linux=1
AM_CFLAGS_AMD64_LINUX     = $(WERROR) @FLAG_M64@ -fomit-frame-pointer \
				@PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_AMD64_LINUX  = @FLAG_M64@ -g

AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
AM_CPPFLAGS_PPC32_LINUX = $(AM_CPPFLAGS_COMMON) \
		-DVGA_ppc32=1 \
		-DVGO_linux=1 \
		-DVGP_ppc32_linux=1
AM_CFLAGS_PPC32_LINUX     = $(WERROR) @FLAG_M32@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC32_LINUX  = @FLAG_M32@ -g

AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CPPFLAGS_PPC64_LINUX   = $(AM_CPPFLAGS_COMMON) \
			    -DVGA_ppc64=1 \
			    -DVGO_linux=1 \
			    -DVGP_ppc64_linux=1
AM_CFLAGS_PPC64_LINUX     = $(WERROR) @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX  = @FLAG_M64@ -g

AM_FLAG_M3264_PPC32_AIX5  = @FLAG_MAIX32@
AM_CPPFLAGS_PPC32_AIX5 	  = $(AM_CPPFLAGS_COMMON) \
			    -DVGA_ppc32=1 \
			    -DVGO_aix5=1 \
			    -DVGP_ppc32_aix5=1
AM_CFLAGS_PPC32_AIX5      = $(WERROR) @FLAG_MAIX32@ -mcpu=powerpc $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC32_AIX5   = @FLAG_MAIX32@ -mcpu=powerpc -g

AM_FLAG_M3264_PPC64_AIX5  = @FLAG_MAIX64@
AM_CPPFLAGS_PPC64_AIX5    = $(AM_CPPFLAGS_COMMON) \
			    -DVGA_ppc64=1 \
			    -DVGO_aix5=1 \
			    -DVGP_ppc64_aix5=1
AM_CFLAGS_PPC64_AIX5      = $(WERROR) @FLAG_MAIX64@ -mcpu=powerpc64 $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_AIX5   = @FLAG_MAIX64@ -mcpu=powerpc64 -g

# 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@)

if VGCONF_HAVE_PLATFORM_SEC_CAPS
 AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@)
else
 AM_FLAG_M3264_SEC = 
endif


# Baseline link flags for making dynamic shared objects.
#
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared -Wl,-z,interpose,-z,initfirst
PRELOAD_LDFLAGS_COMMON_AIX5  = -nodefaultlibs -shared -Wl,-G -Wl,-bnogc
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_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_AIX5  = $(PRELOAD_LDFLAGS_COMMON_AIX5)  @FLAG_MAIX32@
PRELOAD_LDFLAGS_PPC64_AIX5  = $(PRELOAD_LDFLAGS_COMMON_AIX5)  @FLAG_MAIX64@
