#****************************************************************************
#*			TAU Portable Profiling Package			   **
#*			http://www.cs.uoregon.edu/research/tau	           **
#****************************************************************************
#*    Copyright 1997-2002        				   	   **
#*    Department of Computer and Information Science, University of Oregon **
#*    Advanced Computing Laboratory, Los Alamos National Laboratory        **
#****************************************************************************
#######################################################################
##                  pC++/Sage++  Copyright (C) 1993,1995             ##
##  Indiana University  University of Oregon  University of Rennes   ##
#######################################################################

#######################################################################
# This is a sample Makefile that contains the Profiling and Tracing
# options. Makefiles of other applications and libraries (not included
# in this distribution) should include this Makefile.
# It defines the following variables that should be added to CFLAGS
# TAU_INCLUDE  	-  Include path for tau headers
# TAU_DEFS      -  Defines that are needed for tracing and profiling only.
# And for linking add to LIBS
# TAU_LIBS	-  TAU Tracing and Profiling library libprof.a
#
# When the user needs to turn off tracing and profiling and run the
# application without any runtime overhead of instrumentation, simply
# remove TAUDEFS and TAULIBS from CFLAGS and LIBS respectively but keep
# TAUINC.
#######################################################################

# See this file for a record of the configuration environment
CONF_ENV_FILE=/usr/lib/hpc/gnu9/openmpi1/tau//rpmbuild/BUILD/tau-2.26.1/.configure_env/b16a5ca6c9f18d4b0bf8ca6aae99a97f

########### Automatically modified by the configure script ############
CONFIG_ARCH=
TAU_ARCH=x86_64
CONFIG_CC=gcc
CONFIG_CXX=g++
TAU_CC_FE=$(CONFIG_CC)
TAU_CXX_FE=$(CONFIG_CXX)

TAU_CUDA_CXX=g++
#PGI#TAU_CUDA_CXX=$(CONFIG_CXX)  #ENDIF#


# Name prefix for cross compiler. E.g. `arm-linux-gnueabi-'.
CROSS_PREFIX=#FixMakefile#

TAU_BUILD_CC=
TAU_BUILD_CXX=
TAU_SPECIAL_CC=gcc
# LinuxTimers.c is compiled with TAU_SPECIAL_CC
# For CRAY_TARGET_KNC it is cc in the path from
# the craype-intel-knc module
#
#CRAY_MIC#TAU_SPECIAL_CC=cc #ENDIF#
# Front end C/C++ Compilers
#BGL#TAU_CC_FE=gcc #ENDIF#
#BGL#TAU_CXX_FE=g++ #ENDIF#
#BGP#TAU_CC_FE=gcc #ENDIF#
#BGP#TAU_CXX_FE=g++ #ENDIF#
#BGQ#TAU_CC_FE=gcc #ENDIF#
#BGQ#TAU_CXX_FE=g++ #ENDIF#
#MMIC#TAU_CXX_FE=g++ #ENDIF#
#MMIC#TAU_CC_FE=gcc #ENDIF#
#CATAMOUNT#TAU_CC_FE=gcc #ENDIF#
#CATAMOUNT#TAU_CC_FE=gcc #ENDIF#
#CATAMOUNT#TAU_CXX_FE=g++ #ENDIF#
#CRAYCNL#TAU_CC_FE=gcc #ENDIF#
#CRAYCNL#TAU_CXX_FE=g++ #ENDIF#
#CRAYXMT#TAU_CC_FE=/usr/bin/gcc #ENDIF#
#CRAYXMT#TAU_CXX_FE=/usr/bin/g++ #ENDIF#
#FX#TAU_CC_FE=/usr/bin/gcc #ENDIF#
#FX#TAU_CXX_FE=/usr/bin/g++ #ENDIF#
##SC_GFORTRAN#TAU_CC_FE=gcc #ENDIF#
##SC_GFORTRAN#TAU_CXX_FE=g++ #ENDIF#
##SC_PATHSCALE#TAU_CC_FE=gcc #ENDIF#
##SC_PATHSCALE#TAU_CXX_FE=g++ #ENDIF#

#ARCH_WIDTH_32#TAU_LIBEX=lib #ENDIF#
TAU_LIBEX=lib64 #ENDIF##ARCH_WIDTH_64#


USER_OPT=-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -flto=8 -g -fno-strict-aliasing -I/usr/lib/hpc/gnu9/openmpi1/tau//rpmbuild/BUILD/tau-2.26.1/include
EXTRADIR=
EXTRADIRCXX=
TAUROOT=/usr/lib/hpc/gnu9/openmpi1/tau//rpmbuild/BUILD/tau-2.26.1
TULIPDIR=
TAUEXTRASHLIBOPTS=-fPIC -L -lmpi -L//usr/lib/hpc/gnu9/openmpi1/tau//lib -L//usr/lib/hpc/gnu9/openmpi1/tau//lib
TAUGCCLIBOPTS=
TAUGCCLIBDIR=/usr/lib64/gcc/x86_64-suse-linux/9/
TAUGCCSTDCXXLIBDIR=/usr/lib64/gcc/x86_64-suse-linux/9/
IFORTLIBDIR=
PERFSUITELINK=
TAUGFORTRANLIBDIR=/usr/lib64/gcc/x86_64-suse-linux/9/
PAPIDIR=
BEACONDIR=
GPIDIR=
PAPISUBDIR=
CHARMDIR=
PDTDIR=${PDTOOLKIT_DIR}
PDTCOMPDIR=
DYNINSTDIR=
BOOSTDIR=
TAU_BOOSTINC=
TAU_BOOSTLIB=
JDKDIR=
ANDROID_SDK=
ANDROID_VERSION=
ANDROID_PLATFORM=
OPARIDIR=
SCOREP_OPARI_BIN_DIR=
OPARIINCDIR=-I/include
ARMCIDIR=
DARSHANDIR=
EPILOGDIR=
EPILOGBINDIR=
EPILOGINCDIR=
EPILOGLIBDIR=
EPILOGEXTRALINKCMD=
SICORTEXLINK=
VAMPIRTRACEDIR=
VAMPIRTRACEINCS=
VAMPIRTRACELIBS=
VAMPIRTRACEMPILIBS=
SCOREPDIR=
SCOREPINCS=
SCOREPLIBS=
SCOREPMPILIBS=
KTAU_INCDIR=
KTAU_INCUSERDIR=
KTAU_LIB=
KTAU_KALLSYMS_PATH=
PYTHON_INCDIR=
PYTHON_LIBDIR=
PYTHON_LIB_SO=
TAU_BFD_DIR=
PERFINCDIR=
PERFLIBDIR=
PERFLIBRARY=
UPCNETWORK=
TAU_SHMEM_DIR=
TAU_SHMEM_INC=
TAU_SHMEM_LIB=
TAU_SHMEMMPI_INC=
TAU_CONFIG=-callpath-param-mpi-pdt-openmp-opari-profile-trace
TAU_MPI_INC=-I${MPI_DIR}/include -I${MPI_DIR}/include/openmpi -I${MPI_DIR}/include/openmpi/ompi -I${MPI_DIR}/lib64
TAU_MPI_LIB=-L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -I${MPI_DIR}/include -pthread -L/usr/lib64 -L${MPI_DIR}/lib64 -lmpi_cxx -lmpi -L${MPI_DIR}/lib64 -lmpi -lmpi_cxx -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPI_FLIB=-L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -I${MPI_DIR}/include -pthread -I${MPI_DIR}/lib64 -L/usr/lib64 -L${MPI_DIR}/lib64 -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -L${MPI_DIR}/lib64 -lmpi -lmpi_cxx -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPILIB_DIR=${MPI_DIR}/lib64
TAU_MPILIB_DIRLIB=-L${MPI_DIR}/lib64
TAU_MPI_NOWRAP_LIB= -L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -I${MPI_DIR}/include -pthread -L/usr/lib64 -L${MPI_DIR}/lib64 -lmpi_cxx -lmpi -L${MPI_DIR}/lib64 -lmpi -lmpi_cxx -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPI_NOWRAP_FLIB= -I${MPI_DIR}/include -pthread -I${MPI_DIR}/lib64 -L/usr/lib64 -L${MPI_DIR}/lib64 -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -L/usr/lib/hpc/gnu9/openmpi1/tau//lib -lTauMpi$(TAU_CONFIG) -L${MPI_DIR}/lib64 -lmpi -lmpi_cxx -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_GASNET_DIR=
FULL_CXX=g++
FULL_CC=gcc
LOMPINC=
LOMPLIB=
#MPC#TAU_CC_FE=$(FULL_CC)#ENDIF#
#MPC#CONFIG_CC=$(FULL_CC)#ENDIF#
#MPC#TAU_CXX_FE=$(FULL_CXX)#ENDIF#
#MPC#CONFIG_CXX=$(FULL_CXX)#ENDIF#
TAU_PREFIX_INSTALL_DIR=/usr/lib/hpc/gnu9/openmpi1/tau/

TAU_BIN_DIR=$(TAU_PREFIX_INSTALL_DIR)/$(CONFIG_ARCH)/bin
TAU_INC_DIR=$(TAU_PREFIX_INSTALL_DIR)/include
TAU_LIB_DIR=$(TAU_PREFIX_INSTALL_DIR)/$(CONFIG_ARCH)/lib

UNWIND_FLAG=
UNWIND_INC=
UNWIND_LIB=
UNWIND_LIB_FLAG=
UNWIND_EXTRAS=

HOST_SYSROOT=

#######################################################################

#OPARI#TAU_OPARI_TOOL=$(TAU_BIN_DIR)/opari        #ENDIF#
TAU_OPARI2_TOOL=$(TAU_BIN_DIR)/opari2        #ENDIF##OPARI2#
TAU_OPARI_CONFIG_TOOL=$(TAU_BIN_DIR)/opari2-config        #ENDIF##OPARI2#
#SCOREPOPARI2#TAU_OPARI2_TOOL=$(SCOREP_OPARI_BIN_DIR)/opari2 #ENDIF#
#SCOREPOPARI2#TAU_OPARI2_CONFIG=$(SCOREP_OPARI_BIN_DIR)/opari2-config #ENDIF#
#IBM64#TAU_IBM64= -X 64 		  #ENDIF#
#ENABLE64BIT#ABI 	     = -mabi=64		  #ENDIF#
#ENABLEN32BIT#ABI 	     = -mabi=n32	  #ENDIF#
#ENABLE32BIT#ABI 	     = -mabi=32		  #ENDIF#

#######################################################################
#SP1#IBM_XLC_ABI	     = -q32 		  #ENDIF#
#SP1#IBM_GNU_ABI	     = -maix32 		  #ENDIF#
#IBM64#IBM_XLC_ABI	     = -q64 		  #ENDIF#
#IBM64#IBM_GNU_ABI	     = -maix64 		  #ENDIF#
#IBM64LINUX#IBM_XLC_ABI	     = -q64 		  #ENDIF#
#IBM64LINUX#IBM_GNU_ABI	     = -m64 		  #ENDIF#
#SUNX86_64#SUN_GNU_ABI       = -m64		  #ENDIF#
#SUNX86_64#SUN_CC_ABI        = -xarch=amd64       #ENDIF#
#SUNX86_64#SUN_CC_ABI        = -m64       #ENDIF#
#MIPS32LINUX#SC_GNU_ABI	     = -mabi=n32 	  #ENDIF#
#MIPS32LINUX#SC_PATH_ABI     = -mabi=n32          #ENDIF#
#MIPS64LINUX#SC_GNU_ABI	     = -mabi=64 	  #ENDIF#
#MIPS64LINUX#SC_PATH_ABI     = -mabi=64           #ENDIF#
SC_ABI     	     = $(SC_GNU_ABI) 	  #ENDIF##GNU#
#USE_PATHCC#SC_ABI     	     = $(SC_PATH_ABI) 	  #ENDIF#
#MIPS32#ABI                  = $(SC_ABI) 	  #ENDIF#
#MIPS64#ABI                  = $(SC_ABI) 	  #ENDIF#

#USE_IBMXLC#IBM_ABI    	     = $(IBM_XLC_ABI) 	  #ENDIF#
IBM_ABI	     	     = $(IBM_GNU_ABI) 	  #ENDIF##GNU#
#SP1# ABI		     = $(IBM_ABI)	  #ENDIF#
#PPC64# ABI		     = $(IBM_ABI)	  #ENDIF#
#SOLARIS64#SUN_GNU_ABI	     = -mcpu=v9 -m64	  #ENDIF#
#SOLARIS64#SUN_CC_ABI	     = -xarch=v9 -xcode=pic32	  #ENDIF#
#SOL2CC#SUN_ABI	     	     = $(SUN_CC_ABI)	  #ENDIF#
SUN_ABI	     	     = $(SUN_GNU_ABI)	  #ENDIF##GNU#
#SOL2#ABI	     	     = $(SUN_ABI)	  #ENDIF#
#SUNX86_64#ABI		     = $(SUN_ABI)	  #ENDIF#
#FORCEIA32#ABI               = -m32#ENDIF#
#######################################################################
F90_ABI	= $(ABI)
#IBM64_FORTRAN#F90_ABI	     = -q64 		  #ENDIF#
#MMIC#F90_ABI	     = -mmic #ENDIF#
#######################################################################

##############################################
# UPC Flags
##############################################

#BUPC#UPCC_C_PREFIX=-Wc,#ENDIF#
#BUPC#UPCC_LINK_PREFIX=-Wl,#ENDIF#
#BUPC#TAU_UPCC=upcc -inst-toolname=gasp-tau -inst -network=$(UPCNETWORK) $(UPCC_C_PREFIX)-fPIC -DTAU_UNIFY  #ENDIF#
#BUPC#TAU_GASP_O=TauGASP.o #ENDIF#
#BUPC#TAU_GASPU_UPC=$(TAU_INC_DIR)/Profile/TauGASPU.upc #ENDIF#

#GUPC#UPCC_C_PREFIX= #ENDIF#
#GUPC#UPCC_LINK_PREFIX=-Wl,#ENDIF#
#GUPC#TAU_UPCC=upc -fupc-instrument -fupc-debug -fPIC -DTAU_UNIFY  #ENDIF#
#GUPC#TAU_GASP_O=TauGASP.o #ENDIF#
#####GUPC#TAU_GASPU_UPC=$(TAU_INC_DIR)/Profile/TauGASPU.upc #ENDIF#

############# Standard Defines ##############
TAU_CC = $(CONFIG_CC) $(ABI) $(ISA)
TAU_CXX = $(CONFIG_CXX) $(ABI) $(ISA)
TAU_RUN_CC = $(FULL_CC) $(ABI) $(ISA)
BUILD_CC  = $(CONFIG_CC) $(ABI) $(ISA)
HOST_CC   = $(CROSS_PREFIX)$(BUILD_CC) $(ABI) $(ISA)
CC        = $(HOST_CC)
BUILD_CXX = $(CONFIG_CXX) $(ABI) $(ISA)
HOST_CXX  = $(CROSS_PREFIX)$(BUILD_CXX) $(ABI) $(ISA)
CXX       = $(HOST_CXX)

#HOSTUTILS#TAU_CC_FE  = $(CROSS_PREFIX)$(BUILD_CC)  #ENDIF
#HOSTUTILS#TAU_CXX_FE = $(CROSS_PREFIX)$(BUILD_CXX) #ENDIF

#MPC#TAU_RUN_CC = mpc_cc #ENDIF#
#MPCINTEL#TAU_RUN_CC = mpc_icc #ENDIF#
#XLUPC#TAU_RUN_CC = xlupc $(ABI) $(ISA) #ENDIF#
#BUPC#TAU_RUN_CC = $(TAU_UPCC) #ENDIF#
#GUPC#TAU_RUN_CC = $(TAU_UPCC) #ENDIF#
TAU_RUN_CXX = $(FULL_CXX) $(ABI) $(ISA)
#IBMOMPT#TAU_RUN_CXX = CXX=$(EXTRADIRCXX)/bin/bgxlc++_r $(FULL_CXX) $(ABI) $(ISA) #ENDIF#
#IBMOMPT#TAU_RUN_CC = CC=$(EXTRADIRCXX)/bin/bgxlc_r $(FULL_CC) $(ABI) $(ISA) #ENDIF#
#MPC#TAU_RUN_CXX = mpc_cxx #ENDIF#
#MPCINTEL#TAU_RUN_CXX = mpc_icpc #ENDIF#
TAU_INSTALL = /bin/cp
TAU_SHELL = /bin/sh
LSX = .a
#############################################
# JAVA DEFAULT ARCH
#############################################
JDKARCH                 = linux
#COMPAQ_ALPHA#JDKARCH   = alpha      #ENDIF#
#SOL2#JDKARCH           = solaris    #ENDIF#
#SGIMP#JDKARCH          = irix       #ENDIF#
#SP1#JDKARCH            = aix        #ENDIF#
#T3E#JDKARCH            = cray       #ENDIF#
#############################################
# JAVA OBJECTS
#############################################
#ANDROID#TAU_ADB_O = adb.o #ENDIF#
#JAVA#TAU_JAVA_O 	= TauJAPI.o agent_util.o java_crw_demo.o TauJVMTI.o $(TAU_ADB_O) jdwp.o ddm.o #ENDIF#
#JAVA#TAUJAPI 	= Profile.class        #ENDIF#

#############################################
# Fortran MPI OBJECTS
#############################################
MPI_FORTRAN_INIT = TauFInit.o
#NOFORTRAN#MPI_FORTRAN_INIT = #ENDIF#
#SP1#MPI_FORTRAN_INIT = #ENDIF#


#############################################
# OpenMP OBJECTS
#############################################
OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPI.o #ENDIF##OPENMP#
#OPARI#OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPIDisable.o #ENDIF#
OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPIDisable.o #ENDIF##OPARI2#
#PGS_AVAILABLE#OPENMP_PGS_O 	= TauPthreadGlobal.o  #ENDIF#

#############################################
# Score-P Adapter Init OBJECTS
#SCOREP_ADAPTER_INIT#TAU_SCOREP_ADAPTER_O = TauScorePAdapterInit.o  #ENDIF#
#SCOREP_ADAPTER_INIT#TAU_SCOREP_EXTRA_FLAGS = "`ar x $(TAU_LIB_DIR)/libtau$(TAU_CONFIG).a TauScorePAdapterInit.o`" TauScorePAdapterInit.o  #ENDIF#

#############################################
# OpenMP extra libraries for collector API
#############################################
TAU_LINKER_OPT19=-ldl#ENDIF##OPENMP#

OMPTLIB=
#TAU_OMPT#TAU_LINKER_OPT20=$(OMPTLIB) #ENDIF#
#IBMOMPT#TAU_LINKER_OPT20=-L$(LOMPLIB) -lxllomp #ENDIF#
#COMPINST_CRAYCC#TAU_LINKER_OPT21=$(TAU_LIBDL) #ENDIF#
#TAU_USELM#TAU_LINKER_OPT22=-lm #ENDIF#
#INTEL_CRAY_MIC_KNL_OMPT#TAU_CRAY_KNL_INTEL_OMPT_FLAGS=-optShared -optLinking=-dynamic -optSharedLinking=-dynamic #ENDIF#

#############################################
# Opari OBJECTS
#############################################
OPARI_O 	= TauKojakOpariDisable.o #ENDIF#
#OPARI#OPARI_O 	= TauOpari.o #ENDIF#
#KOJAKOPARI#OPARI_O 	= TauKojakOpari.o#ENDIF#
OPARI_O 	= pomp2_lib.o pomp2_region_info.o pomp2_fwrapper.o pomp2_fwrapper_base.o#ENDIF##OPARI2#
#SCOREP#OPARI_O 	= #ENDIF#
#EPILOG#OPARI_O 	=  #ENDIF#
#VAMPIRTRACE#OPARI_O 	=  #ENDIF#

#############################################
# CallPath OBJECTS
#############################################
PARAM_O  = ProfileParam.o #ENDIF##PROFILEPARAM#


#############################################
# DYNINST DEFAULT ARCH
#############################################
DYNINST_PLATFORM 	= $(PLATFORM)

############# OpenMP Fortran Option ########
TAU_OPENMP_OPTION =
#MPC#TAU_OPENMP_OPTION= -fopenmp #ENDIF#
#CLANG_OPENMP#TAU_OPENMP_OPTION= -fopenmp #ENDIF#
#MPCINTEL#TAU_OPENMP_OPTION= -openmp #ENDIF#
#COMPINST_CRAYCC#TAU_OPENMP_OPTION= -h omp #ENDIF#
#SOL2CC_OPENMP#TAU_OPENMP_OPTION = -xopenmp #ENDIF#
#SUNCC_OPENMP#TAU_OPENMP_OPTION = -xopenmp=parallel #ENDIF#
#HITACHI_OPENMP#TAU_OPENMP_OPTION = #ENDIF#
#COMPAQCXX_OPENMP#TAU_OPENMP_OPTION = -omp #ENDIF#
#IBMXLC_OPENMP#TAU_OPENMP_OPTION = -qsmp=omp -qthreaded #ENDIF#
#OPEN64_OPENMP#TAU_OPENMP_OPTION = -mp #ENDIF#
#OPEN64_OPENMP#TAU_OPARI2_OPTION = --nodecl #ENDIF#
#GUIDE#TAU_OPENMP_OPTION = #ENDIF#
#PGIOPENMP#TAU_OPENMP_OPTION = -mp #ENDIF#
#INTELOPENMP#TAU_OPENMP_OPTION = -qopenmp #ENDIF#
#INTEL_FOPENMP#TAU_OPENMP_OPTION = -fopenmp #ENDIF#
PROFILEOPT27 = #ENDIF##GNU#
TAU_OPENMP_OPTION = -fopenmp #ENDIF##GNUOPENMP#
#FX#TAU_OPENMP_OPTION = -Kopenmp #ENDIF#

TAUCOMPILER_OMP_OPTS = -optCPPOpts="-D_OPENMP" -optPdtCxxOpts="-D_OPENMP" -optPdtCOpts="-D_OPENMP" -optPdtF95Opts="-D_OPENMP -fopenmp" $(TAU_CRAY_KNL_INTEL_OMPT_FLAGS) #ENDIF##OPENMP#

TAU_F90_OPT = $(TAU_OPENMP_OPTION) $(TAU_FORTRAN_OPENMP_OPT) #ENDIF##OPENMP#

#ZEPTO_GFORTRAN#TAU_F90_OPT = -fno-underscoring     #ENDIF#

#THREADSAFE_COMPILERS#TAU_R         =_r     #ENDIF#
#BGP#TAU_R         =_r     #ENDIF#
#BGQ#TAU_R         =_r     #ENDIF#

############# Fortran Compiler #############
#GNU_FORTRAN#TAU_F90         = g77              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
TAU_F90         = gfortran              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF##GNU_GFORTRAN#
#GNU_GFORTRAN4#TAU_F90        = gfortran4             $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#G95_FORTRAN#TAU_F90         = g95              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#SC_GFORTRAN#TAU_F90         = scgfortran              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#SGI_FORTRAN#TAU_F90         = f90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#IBM_FORTRAN#TAU_F90         = xlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#IBM64LINUX_XLF#TAU_F90         = xlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#XLFLANG#TAU_F90         = xlflang    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGP#TAU_F90         = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGP_GFORTRAN#TAU_F90         = mpif90    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGQ#TAU_F90         = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#IBMOMPT#TAU_F90         = F77=$(EXTRADIR)/bin/bgxlf90_r /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGQ_GFORTRAN#TAU_F90         = /bgsys/drivers/ppcfloor/comm/gcc/bin/mpif90    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGL#TAU_F90         = blrts_xlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#IBM64_FORTRAN#TAU_F90       = xlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#IBMXLFAPPLE#TAU_F90       = xlf90$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#CRAY_FORTRAN#TAU_F90        = f90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#CRAY_X1_FORTRAN#TAU_F90     = ftn              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#OPENSHMEM#TAU_F90     = oshfort              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#OPENSHMEM_PSHMEM#TAU_F90     = oshfort              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#PGI_FORTRAN#TAU_F90         = pgf90            $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#PGI_FORTRAN_OTHER#TAU_F90         = pgfortran            $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#PGI_CATAMOUNT#TAU_F90         = qk-pgf90         $(F90_ABI) $(TAU_F90_OPT) #ENDIF#
#PGI#PGIFLAG=                  -c89                                         #ENDIF#
#CATAMOUNT#TAU_F90         = ftn         $(F90_ABI) $(TAU_F90_OPT) #ENDIF#
#ABSOFT_FORTRAN#TAU_F90      = f90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#LAHEY_FORTRAN#TAU_F90      = lf95              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#LAHEY64_FORTRAN#TAU_F90      = lf95              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#NAGWARE_FORTRAN#TAU_F90      = f95              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#NAGWARE_FORTRAN#TAU_F90      = nagfor              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#FUJITSU_FORTRAN#TAU_F90     = F90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#FUJITSU_SOLARIS#TAU_F90     = f90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#SUN_FORTRAN#TAU_F90         = f90              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#COMPAQ_FORTRAN#TAU_F90      = f90              $(F90_ABI)  $(TAU_F90_OPT)  #ENDIF#
#KAI_FORTRAN#TAU_F90         = guidef90         $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#HP_FORTRAN#TAU_F90          = f90 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#HITACHI_FORTRAN#TAU_F90     = f90 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#INTEL_FORTRAN#TAU_F90       = ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#INTEL32_FORTRAN#TAU_F90     = ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#INTELIFORT#TAU_F90     = ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPIIFORT#TAU_F90       = mpiifort $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPIF90#TAU_F90       = mpiifort $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#FX#TAU_F90       = mpifrtpx $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#PATHSCALE_FORTRAN#TAU_F90     = pathf90         $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#SC_PATHSCALE#TAU_F90     = scpathf95         $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#OPEN64ORC_FORTRAN#TAU_F90     = orf90         $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#OPEN64ORC_FORTRAN#TAU_F90     = openf90         $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#NEC_FORTRAN#TAU_F90         = f90 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#CRAYCNL#TAU_F90         = ftn            $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#ZEPTO_GFORTRAN#TAU_F90         = /bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gfortran    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#ZEPTO_GFORTRAN#TAU_F90         = /bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc64-bgq-linux-gfortran    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPC#TAU_F90     = mpc_f77 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPC#TAU_F77     = mpc_f77 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPCINTEL#TAU_F90     = mpc_ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#MPCINTEL#TAU_F77     = mpc_ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#

TAU_F77 = $(TAU_F90)
#IBM_FORTRAN#TAU_F77         = xlf$(TAU_R)    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGP#TAU_F77         = mpixlf77_r    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#BGQ#TAU_F77         = mpixlf77_r    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#



############# Portable F90 Options #############
#IBM64_FORTRAN#TAU_F90_FIXED      = -qfixed  #ENDIF#
#IBM_FORTRAN#TAU_F90_FIXED      = -qfixed  #ENDIF#
#IBM_FORTRAN#TAU_F90_SUFFIX     = -qsuffix=f=f90  #ENDIF#
#IBMXLFAPPLE#TAU_F90_FIXED      = -qfixed  #ENDIF#
#IBMXLFAPPLE#TAU_F90_SUFFIX     = -qsuffix=f=f90  #ENDIF#
#IBM64_FORTRAN#TAU_F90_SUFFIX     = -qsuffix=f=f90  #ENDIF#

############# Profiling Options #############
PROFILEOPT1           = -DPROFILING_ON        #ENDIF##PROFILE#
#PAPI#PROFILEOPT3              = -DTAU_PAPI -I$(PAPIDIR)/src -I$(PAPIDIR)/include #ENDIF#
#PAPINOINC#PROFILEOPT3              = -DTAU_PAPI #ENDIF#
#PAPI#PAPI_O       	       = PapiLayer.o 	       #ENDIF#
#PROFILEOPT4
#PROFILESTATS#PROFILEOPT5      = -DPROFILE_STATS       #ENDIF#
#DEBUGPROF#PROFILEOPT6         = -DDEBUG_PROF          #ENDIF#
#STDCXXLIB#PROFILEOPT7         = -DTAU_STDCXXLIB       #ENDIF#
#CRAYX1CC#PROFILEOPT7          = #ENDIF#
#CRAYCC#PROFILEOPT7            = #ENDIF#
#INTELTFLOP#PROFILEOPT8        = -DPOOMA_TFLOP         #ENDIF#
#NORTTI#PROFILEOPT9            = -DNO_RTTI             #ENDIF#
#RTTI#PROFILEOPT9              = -DRTTI                #ENDIF#
#USE_CC#PROFILEOPT10           = -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#CLANG#PROFILEOPT10           = -DTAU_CLANG -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#BGCLANG#PROFILEOPT10           = -O2 -DMPICH2_CONST= -DTAU_CLANG -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#CRAYCNL_SHARED#PROFILEOPT10           = -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
PROFILEOPT10              = -DTAU_GNU -DTAU_DOT_H_LESS_HEADERS #ENDIF##GNU#
#MPC#PROFILEOPT10              = -DTAU_MPC -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#INTEL12FIX#PROFILEOPT10              = -DTAU_INTEL12 -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#CRAYXMT#PROFILEOPT10              = -DTAU_CRAYXMT -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#APPLECXX#PROFILEOPT10         = -DTAU_GNU  -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#SOL2CC#PROFILEOPT10           = -DTAU_SOL2CC  -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#SUNCC#PROFILEOPT10            = -DTAU_SOL2CC  -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#USE_PATHCC#PROFILEOPT10       = -DTAU_DOT_H_LESS_HEADERS -DTAU_PATHSCALE #ENDIF#
#OPEN64ORC#PROFILEOPT10        = -DTAU_DOT_H_LESS_HEADERS -DTAU_OPEN64ORC -fpic  #ENDIF#
#MERCURIUM#PROFILEOPT10           = -DMERCURIUM_EXTRA -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#DMAPP#PROFILEOPT11=-DTAU_DMAPP #ENDIF#
#PGI1.7#PROFILEOPT12	       = -DPGI 		       #ENDIF#
#PGI_OPENACC#PROFILEOPT12      = -DTAU_PGI_OPENACC #ENDIF#
#PGI_OPENACC_15x#PROFILEOPT12      = -DTAU_PGI_OPENACC -DTAU_PGI_OPENACC_15 #ENDIF#
#CRAYKAI#PROFILEOPT12	       = -DCRAYKAI	       #ENDIF#
#HP_FORTRAN#PROFILEOPT12       = -DHP_FORTRAN	       #ENDIF#
#CRAYCC#PROFILEOPT13	       = -h instantiate=used -DCRAYCC -DTAU_DOT_H_LESS_HEADERS  #ENDIF#
#MINGW#PROFILEOPT13	       = -DTAU_WINDOWS -DTAU_DISABLE_SIGUSR -DTAU_MINGW -DTAU_ENABLE  -DTAU_GNU #ENDIF#
#COMPINST_CRAYCC#PROFILEOPT13          =  -DCRAYCC -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#CRAYX1CC#PROFILEOPT13	       = -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#SGICC#TAU_CXX = $(CONFIG_CXX) $(ABI) $(ISA) $(USER_OPT) -LANG:std  #ENDIF#
#INTELCXXLIBICC#TAU_CXX = $(CONFIG_CXX) $(ABI) $(ISA) $(USER_OPT) -cxxlib-icc #ENDIF#
#PTHREAD_AVAILABLE#PROFILEOPT15 = -DPTHREADS -DTAU_PTHREAD_PRELOAD -DTAU_UNIFY #ENDIF#
#TBB_AVAILABLE#PROFILEOPT15 = -DPTHREADS -DTAU_PTHREAD_PRELOAD -DTAU_TBB_SUPPORT -DTAU_UNIFY #ENDIF#
#COMPAQCXX_PTHREAD#PROFILEOPT15 = -DPTHREADS -pthread -DTAU_PTHREAD_PRELOAD #ENDIF#
#TAU_SPROC#PROFILEOPT15 	= -DTAU_SPROC  	       #ENDIF#
#TAU_PAPI_THREADS#PROFILEOPT15 	= -DTAU_PAPI_THREADS  	       #ENDIF#
#TULIPTHREADS#PROFILEOPT16 = -DTULIPTHREADS            #ENDIF#
TRACEOPT		       = -DTRACING_ON 	       #ENDIF##TRACE#
#KTAU#KTAU_O			= TauKtau.o KtauProfiler.o KtauSymbols.o  #ENDIF#
#KTAU_MERGE#KTAU_MERGE_O      	= KtauFuncInfo.o KtauMergeInfo.o ktau_syscall.o  #ENDIF#
#KTAU_SHCTR#KTAU_SHCTR_O      	= KtauCounters.o  #ENDIF#
#MPITRACE#TRACEOPT	 = -DTAU_MPITRACE -DTRACING_ON #ENDIF#
#PTHREAD_AVAILABLE#THR_O       = PthreadLayer.o TauWrapSyscalls.o        #ENDIF#
#MPC#THR_O       = MPCThreadLayer.o #ENDIF#
#TAU_PAPI_THREADS#THR_O       = PapiThreadLayer.o        #ENDIF#
#TAU_SPROC#THR_O       	       = SprocLayer.o        #ENDIF#
#JAVA#THR_O       	       = JNIThreadLayer.o JVMTIThreadLayer.o     #ENDIF#
#JVMTI_BLANK_THR_O#THR_O       	       = #ENDIF#
#TULIPTHREADS#THR_O       = TulipThreadLayer.o         #ENDIF#
PLATFORM_O       = TauLinuxTimers.o       #ENDIF##LINUXTIMERS#
#TULIPTHREADS#PROFILEOPT17  = -I$(TULIPDIR)/include -I$(TULIPDIR)/Tuliplib   #ENDIF#
#SMARTS#PROFILEOPT17  = -I$(TULIPDIR)/include -I$(TULIPDIR)/lib -I$(TULIPDIR)/machine-specific/$(HOSTTYPE)  #ENDIF#
#SMARTS#PROFILEOPT18  = -DSMARTS   #ENDIF#
#KAI#PROFILEOPT19  	       = -DKAI  -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#USE_DECCXX#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#SGICC#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#USE_INTELCXX#PROFILEOPT19     = -DTAU_DOT_H_LESS_HEADERS  #ENDIF#
#USE_NECCXX#PROFILEOPT19     = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#PGI#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#APPLEPGI#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS   -DTAU_APPLE_PGI #ENDIF#
#ACC#PROFILEOPT19  	       = -AA +z -DTAU_DOT_H_LESS_HEADERS -DTAU_HPUX #ENDIF#
#FUJITSU#PROFILEOPT19  	       = -DTAU_FUJITSU -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#FX#PROFILEOPT19  	       = -Xg -DTAU_FUJITSU -DTAU_DOT_H_LESS_HEADERS -fPIC  #ENDIF#
#KAINOEX#PROFILEOPT20  	       = --no_exceptions   #ENDIF#
#SGICCNOEX#PROFILEOPT20  	       = -LANG:exceptions=off  #ENDIF#
#HPGNU#PROFILEOPT21	       = -fPIC #ENDIF#
#HITACHI#PROFILEOPT21	       = -DTAU_HITACHI #ENDIF#
#SP1#PROFILEOPT21	       = -D_POSIX_SOURCE -DTAU_AIX #ENDIF#
#SP1#PROFILEOPT21_SP1       = -D_POSIX_SOURCE -DTAU_AIX #ENDIF#
PROFILEOPT21_SP1	       = -DTAU_AIX #ENDIF##GNU#
#SP1#PROFILEOPT21       = $(PROFILEOPT21_SP1) #ENDIF#
#PPC64#TAU_PIC_PROFILEOPT21           = -qpic=large #ENDIF#
#BGL#TAU_PIC_PROFILEOPT21           = #ENDIF#
#USE_IBMXLC#PROFILEOPT21	       = -DTAU_DOT_H_LESS_HEADERS -DTAU_XLC $(TAU_PIC_PROFILEOPT21) #ENDIF#
#IBMXLCAPPLE#PROFILEOPT21	       = -DTAU_DOT_H_LESS_HEADERS -DTAU_XLC -DTAU_APPLE_XLC #ENDIF#
#JAVA#PROFILEOPT23	       = -DJAVA 		#ENDIF#
#JVMTI#PROFILEOPT23	       = -DJAVA -DTAU_JVMTI     #ENDIF#
PROFILEOPT24 =
#JAVA#PROFILEOPT25 = -I$(JDKDIR)/include -I$(JDKDIR)/include/$(JDKARCH) -I$(JDKDIR)/Headers#ENDIF#
PROFILEOPT26 = -DTAU_MPI -DTAU_UNIFY #ENDIF##MPI#
TAU_NON_MPI_MERGE_OBJS = TauProfileMerge.o TauMetaDataMerge.o
TAU_NON_MPI_MERGE_OBJS = #ENDIF##MPI#
PROFILEOPT26 = -DTAU_MPI -DTAU_UNIFY -DTAU_MPI_THREADED #ENDIF##MPI_THREADED#
JDKBINDIR = $(JDKDIR)/bin
#APPLECXX#JDKBINDIR = $(JDKDIR)/Commands#ENDIF#

#PGIOPENMP#TAU_OPENMP_EXTRA_DEFS = -U_RWSTD_MULTI_THREAD -U_REENTRANT #ENDIF#
OPENMPOPTS = $(TAU_OPENMP_OPTION) $(TAU_OPENMP_EXTRA_DEFS) -DTAU_OPENMP -DTAU_UNIFY #ENDIF##OPENMP#
#OPARI#PROFILEOPT28 = #ENDIF#
#OPARI_REGION#PROFILEOPT28 = -DTAU_OPARI_REGION #ENDIF#
#OPARI_CONSTRUCT#PROFILEOPT28 = -DTAU_OPARI_CONSTRUCT #ENDIF#
#SGITIMERS#PROFILEOPT30         = -DSGI_TIMERS          #ENDIF#
#BGLTIMERS#PROFILEOPT30         = -DBGL_TIMERS -I/bgl/BlueLight/ppcfloor/bglsys/include #ENDIF#
#BGPTIMERS#PROFILEOPT30         = -DBGP_TIMERS -I/bgsys/drivers/ppcfloor/arch/include/common -I/bgsys/drivers/ppcfloor/arch/include -I/bgsys/drivers/ppcfloor/arch/include/spi #ENDIF#
#BGQTIMERS#PROFILEOPT30         = -DBGQ_TIMERS #ENDIF#
#CRAYTIMERS#PROFILEOPT30         = -DCRAY_TIMERS          #ENDIF#
PROFILEOPT31       = -DTAU_LINUX_TIMERS    #ENDIF##LINUXTIMERS#
#ALPHATIMERS#PROFILEOPT31       = -DTAU_ALPHA_TIMERS    #ENDIF#
PROFILEOPT32           = -DCPU_TIME          #ENDIF##CPUTIME#
#PAPIWALLCLOCK#PROFILEOPT33     = -DTAU_PAPI_WALLCLOCKTIME    #ENDIF#
#PAPIVIRTUAL#PROFILEOPT34       = -DTAU_PAPI_VIRTUAL    #ENDIF#
#SGICOUNTERS#PROFILEOPT35      = -DSGI_HW_COUNTERS     #ENDIF#
#EPILOG#PROFILEOPT36	       = -DTAU_EPILOG -I$(EPILOGINCDIR)	#ENDIF#
#SCALASCA#PROFILEOPT36	       = -DTAU_SCALASCA -DTAU_EPILOG -I$(EPILOGINCDIR)	#ENDIF#
#VAMPIRTRACEINTS#TAU_VAMPIRTRACEOPTS = -DTAU_64BITTYPES_NEEDED -DHAVE_INTTYPES_H #ENDIF#
#VAMPIRTRACE#PROFILEOPT36	       = -DTAU_VAMPIRTRACE $(VAMPIRTRACEINCS) $(TAU_VAMPIRTRACEOPTS)#ENDIF#
PROFILEOPT36  = -DTAU_CALLPATH #ENDIF##PROFILECALLPATH#
#PROFILEPHASE#PROFILEOPT36  = -DTAU_CALLPATH -DTAU_PROFILEPHASE#ENDIF#
#PROFILEPHASE#SCOREPPROFILE= -DTAU_CALLPATH -DTAU_PROFILEPHASE#ENDIF#
#SCOREPMETADATA#TAU_SCOREP_METADATA_OPTION=-DTAU_SCOREP_METADATA#ENDIF#
#SCOREP#PROFILEOPT36	       = -DTAU_SILC -DTAU_SCOREP $(SCOREPINCS) $(SCOREPPROFILE) $(TAU_SCOREP_METADATA_OPTION) #ENDIF#
#PYTHON#PROFILEOPT37  = -I$(PYTHON_INCDIR) #ENDIF#
#NOCOMM#PROFILEOPT38  = -DTAU_NOCOMM #ENDIF#
#SETNODE0#PROFILEOPT40  = -DTAU_SETNODE0 #ENDIF#
#COMPENSATE#PROFILEOPT41  = -DTAU_COMPENSATE #ENDIF#
#DYNINST41##PROFILEOPT44  = -DTAU_DYNINST41BUGFIX #ENDIF#
# DyninstAPI v4.2.1 fixes the bug, so we don't need OPT44 anymore
#PROFILEMEMORY#PROFILEOPT45  = -DTAU_PROFILEMEMORY   #ENDIF#
PROFILEOPT46  = -DTAU_MPIGREQUEST   #ENDIF##MPIGREQUEST#
#MPIOREQUEST#PROFILEOPT47  = -DTAU_MPIOREQUEST   #ENDIF#
PROFILEOPT48  = -DTAU_MPIDATAREP   #ENDIF##MPIDATAREP#
PROFILEOPT49  = -DTAU_MPIERRHANDLER  #ENDIF##MPIERRHANDLER#
#CATAMOUNT#PROFILEOPT50  = -DTAU_CATAMOUNT  #ENDIF#
#CRAYCNL#PROFILEOPT50  = -DTAU_CRAYCNL  -DTAU_AT_FORK #ENDIF#
PROFILEOPT51  = -DTAU_MPICONSTCHAR  #ENDIF##MPICONSTCHAR#
PROFILEOPT52  = -DTAU_MPIATTRFUNCTION   #ENDIF##MPIATTR#
PROFILEOPT53  = -DTAU_MPITYPEEX   #ENDIF##MPITYPEEX#
PROFILEOPT54  = -DTAU_MPIADDERROR   #ENDIF##MPIADDERROR#
#MPINEEDSTATUSCONV#PROFILEOPT55  = -DTAU_MPI_NEEDS_STATUS   #ENDIF#

#DEPTHLIMIT#PROFILEOPT56      = -DTAU_DEPTH_LIMIT       #ENDIF#
#TAU_CHARM#PROFILEOPT57 = -DTAU_CHARM -I$(CHARMDIR)/include #ENDIF#
#PROFILEHEADROOM#PROFILEOPT58  = -DTAU_PROFILEHEADROOM   #ENDIF#
PROFILEOPT60           = -DTAU_LARGEFILE -D_LARGEFILE64_SOURCE     #ENDIF##TAU_LARGEFILE#
#BGP#PROFILEOPT60           = -DTAU_LARGEFILE -D_LARGEFILE64_SOURCE #ENDIF#
#BGQ#PROFILEOPT60           = -DTAU_LARGEFILE -D_LARGEFILE64_SOURCE #ENDIF#
# Omit the -D_LARGETFILE64_SOURCE till we can check the IBM crash
#SHMEM#PROFILEOPT61           = -DTAU_SHMEM -DTAU_UNIFY  #ENDIF#
#OPENSHMEM#PROFILEOPT61           = $(TAU_SHMEM_INC) -DTAU_OPENSHMEM -DTAU_SHMEM -DHAVE_SHMEMX_H -DTAU_UNIFY #ENDIF#
#OPENSHMEM_PSHMEM#PROFILEOPT61           = $(TAU_SHMEM_INC) -DTAU_OPENSHMEM -DTAU_SHMEM #ENDIF#
#SGI_MPT_SHMEM#PROFILEOPT61           = -DTAU_SHMEM -DTAU_SGI_MPT_SHMEM #ENDIF#
#SGI_MPT_PSHMEM#PROFILEOPT61           = -DTAU_SHMEM -DTAU_PSHMEM_SGI_MPT #ENDIF#
#KTAU#PROFILEOPT62  = -DTAUKTAU -DKTAU_USER_SRC_COMPILE -I$(KTAU_INCDIR) -I$(KTAU_INCUSERDIR) -DKTAU_INCUSERDIR=\"$(KTAU_INCUSERDIR)\" -DKTAU_KALLSYMS_PATH=\"$(KTAU_KALLSYMS_PATH)\" #ENDIF#
#KTAU_MERGE#PROFILEOPT63  = -DTAUKTAU_MERGE -DKTAU_USER_SRC_COMPILE -I$(KTAU_INCDIR) -DKTAU_INCUSERDIR=\"$(KTAU_INCUSERDIR)\" -DKTAU_KALLSYMS_PATH=\"$(KTAU_KALLSYMS_PATH)\" #ENDIF#
#FREEBSD#PROFILEOPT64  = -DTAU_FREEBSD #ENDIF#
PROFILEOPT65  = -DTAU_PROFILEPARAM #ENDIF##PROFILEPARAM#
#PROFILECOMMUNICATORS#PROFILEOPT65  = -DTAU_PROFILEPARAM -DTAU_EXP_TRACK_COMM #ENDIF#
#IBMMPI#PROFILEOPT66  = -DTAU_IBM_MPI #ENDIF#
#WEAKMPIINIT##CWL_DEPRECATE#PROFILEOPT67  = -DTAU_WEAK_MPI_INIT   #ENDIF#
# Deprecating option. Historically applied to Infiniband but the XT5s exhibit the same symptoms.
#LAMPI#PROFILEOPT68 = -DTAU_LAMPI #ENDIF#
#MPICH_IGNORE_CXX_SEEK#PROFILEOPT68 = -DMPICH_IGNORE_CXX_SEEK #ENDIF#
#MPICH2_MPI_INPLACE#PROFILEOPT73 = -DTAU_MPICH2_MPI_IN_PLACE #ENDIF#

#MIPS32LINUX#PROFILEOPT74 = -DTAU_SICORTEX #ENDIF#
#MIPS64LINUX#PROFILEOPT74 = -DTAU_SICORTEX #ENDIF#
PROFILEOPT75 = -DTAU_BFD #ENDIF##TAU_BFD#

PROFILEOPT76  = -DTAU_MPIFILE   #ENDIF##MPIFILE#
PROFILEOPT77 = -DHAVE_GNU_DEMANGLE #ENDIF##TAU_DEMANGLE#

#VAMPIRTRACE_5_7_API#PROFILEOPT78 = -DTAU_VAMPIRTRACE_5_7_API #ENDIF#
#VAMPIRTRACE_5_12_API#PROFILEOPT78 = -DTAU_VAMPIRTRACE_5_12_API #ENDIF#

PROFILEOPT79 = -DHAVE_TR1_HASH_MAP #ENDIF##TAU_TR1_HASH_MAP#
#DARSHAN#PROFILEOPT80 = -DTAU_DARSHAN #ENDIF#
#MMIC#PROFILEOPT87 = -DTAU_MIC_LINUX -mmic #ENDIF#
#CRAY_MIC#PROFILEOPT87 = -DTAU_MIC_LINUX -DTAU_CRAY_MIC #ENDIF#

MRNET_ROOT=
MRNET_LW_OPTS=
MRNET_INCLUDE=
MRNET_LIBS=
#MRNET#PROFILEOPT80 = -DTAU_UNIFY -DTAU_MONITORING -DTAU_MON_MRNET ${MRNET_LW_OPTS} #ENDIF#
#MON_MPI# PROFILEOPT81 = -DTAU_UNIFY -DTAU_MONITORING -DTAU_MON_MPI #ENDIF#

############# RENCI Scalable Trace Lib Options #############
STFF_DIR=
SDDF_DIR=
#RENCI_STFF#PROFILEOPT69 = -DRENCI_STFF -I$(STFF_DIR)/include #ENDIF#
#RENCI_STFF#TAU_LINKER_OPT11 = -L$(STFF_DIR)/lib -lstff -L$(SDDF_DIR)/lib -lPablo $(TAU_MPI_LIB) #ENDIF#
#RENCI_STFF#RENCI_STFF_O = RenciSTFF.o    #ENDIF#

############# KTAU (again) #############
#KTAU_SHCTR#PROFILEOPT70  = -DTAUKTAU_SHCTR -DKTAU_USER_SRC_COMPILE -I$(KTAU_INCDIR) -DKTAU_INCUSERDIR=\"$(KTAU_INCUSERDIR)\" -DKTAU_KALLSYMS_PATH=\"$(KTAU_KALLSYMS_PATH)\" #ENDIF#
#KTAU#TAU_LINKER_OPT12 = -L$(KTAU_LIB) -lktau #ENDIF#

#MIPS32LINUX#PROFILEOPT71 =  -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 #ENDIF#

#BGL#PROFILEOPT72 = -DTAU_BGL -I/bgl/BlueLight/ppcfloor/bglsys/include #ENDIF#
#BGP#PROFILEOPT72 = -DTAU_BGP -I/bgsys/drivers/ppcfloor/arch/include/common -I/bgsys/drivers/ppcfloor/arch/include -I/bgsys/drivers/ppcfloor/arch/include/spi #ENDIF#
#BGQ#PROFILEOPT72 = -DTAU_BGQ -I/bgsys/drivers/ppcfloor -I/bgsys/drivers/ppcfloor/comm/sys/include -I/bgsys/drivers/ppcfloor/spi/include -I/bgsys/drivers/ppcfloor/spi/include/kernel/cnk #ENDIF#

#For F90 support for all platforms
FWRAPPER	       = TauFMpi.o
MPI2EXTENSIONS	       = TauMpiExtensions.o       #ENDIF##MPI2#
#MPC#MPI2EXTENSIONS	       =        #ENDIF#
#APPLECXX#MPI2EXTENSIONS	       =  #ENDIF#
#CRAYX1CC#MPI2EXTENSIONS	       =        #ENDIF#

#SGICOUNTERS#LEXTRA	       = -lperfex 	       #ENDIF#
#ALPHATIMERS#LEXTRA	       = -lrt 	       #ENDIF#
#PAPI#LEXTRA	       	       = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF#
#IA64PAPI#LEXTRA	       = -L$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#
#PAPIPFM##LEXTRA	       = -L$(PAPIDIR)/$(PAPISUBDIR) -lpfm -lpapi -lpfm #ENDIF#
#X86_64PAPI#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -lpapi -lperfctr #ENDIF#
#X86_64PAPI_NEW#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -lpapi #ENDIF#
#PAPI_WITHOUT_LIB_INC#LEXTRA  = -lpapi #ENDIF#
#PAPI#PAPI_LEXTRA_MIC  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -lpapi #ENDIF#
#MIC_LINUX#LEXTRA  = $(PAPI_LEXTRA_MIC) #ENDIF#
#PAPIPFMPERFCTR#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -lpapi -lpfm -lperfctr #ENDIF#
#PAPI#TAU_CNL_PAPI_FLAGS =  $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF#
#PAPI#TAU_CNL_PAPI_CRAYCC_FLAGS  = -L$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#
#COMPINST_CRAYCC#TAU_CNL_PAPI_FLAGS  = $(TAU_CNL_PAPI_CRAYCC_FLAGS) #ENDIF#
#CRAYCNL_PAPI_SHARED#TAU_CNL_PAPI_FLAGS  = $(TAU_CNL_PAPI_CRAYCC_FLAGS) #ENDIF#
#CRAYCNL#LEXTRA  = $(TAU_CNL_PAPI_FLAGS) #ENDIF#
#SOL2PAPI#LEXTRA	       = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a -lcpc #ENDIF#
#IBMPAPI#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a -L/usr/lpp/pmtoolkit/lib -L/usr/pmapi/lib -lpmapi#ENDIF#
#PPC64PAPI#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF#
#BGLPAPI_RTS#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.rts.a -L/bgl/BlueLight/ppcfloor/bglsys/lib -lbgl_perfctr.rts -lrts.rts -ldevices.rts #ENDIF#
#BGLPAPI#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a -L/bgl/BlueLight/ppcfloor/bglsys/lib -lbgl_perfctr.rts -lrts.rts -ldevices.rts #ENDIF#
#BGPPAPI#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a  -L/bgsys/drivers/ppcfloor/runtime/SPI -lSPI.cna #ENDIF#
#BGQPAPI#LEXTRA  = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a  -L/bgsys/drivers/ppcfloor/spi/lib -lSPI #ENDIF#
#IBM64PAPI#LEXTRA = $(PAPIDIR)/$(PAPISUBDIR)/libpapi64.a -L/usr/lpp/pmtoolkit/lib  -L/usr/pmapi/lib -lpmapi #ENDIF#
#IBM64PAPI#LEXTRA = $(PAPIDIR)/$(PAPISUBDIR)/libpapi64.a -L/usr/pmapi/lib -lpmapi #ENDIF#
#IBM64PAPILINUX#LEXTRA = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF#
#ARMLINUXPAPI#LEXTRA   = -L$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#
#SGI64PAPI#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR) -lpapi64 #ENDIF#
#ALPHAPAPI#LEXTRA	       	       = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a /usr/lib/dcpi/dadd.a -lclu -lrt #ENDIF#

TAU_PAPI_EXTRA_FLAGS	       = $(LEXTRA)
#IA64PAPI#TAU_PAPI_EXTRA_FLAGS	       = -L$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#

#SICORTEX#TAU_PAPI_EXTRA_FLAGS = -L$(PAPIDIR)/lib -L$(PAPIDIR)/lib64 -lpapi #ENDIF#

# By default make TAU_PAPI_RPATH null. Support it on a compiler by compiler basis.
#PAPI###TAU_PAPI_RPATH	= -rpath $(PAPIDIR)/$(PAPISUBDIR) #ENDIF#
#PAPI##TAU_PAPI_RPATH	=  #ENDIF#
#PPC64PAPI#TAU_PAPI_RPATH = #ENDIF#
#BGLPAPI#TAU_PAPI_RPATH = #ENDIF#
#BGPPAPI#TAU_PAPI_RPATH = #ENDIF#
#BGQPAPI#TAU_PAPI_RPATH = #ENDIF#
#USE_INTELCXX#TAU_PAPI_RPATH	= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR)  #ENDIF#
#CRAYX1CC#TAU_PAPI_RPATH = #ENDIF#
#PGI#TAU_PAPI_RPATH	= -R$(PAPIDIR)/$(PAPISUBDIR) #ENDIF#
TAU_PAPI_RPATH	= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) #ENDIF##GNU#
#USE_PATHCC#TAU_PAPI_RPATH	= #ENDIF#
#PAPINOINC#TAU_PAPI_RPATH	= #ENDIF#

# if the user has specified -cc=gcc -c++=g++ -fortran=intel, we shouldn't use -rpath
# because they are likely going to link with ifort. Using -Wl,-rpath instead.
#INTEL32_FORTRAN##TAU_PAPI_RPATH	=  #ENDIF#
#SOL2PAPI#TAU_PAPI_RPATH	= #ENDIF#
#IBMPAPI#TAU_PAPI_RPATH	= #ENDIF#
#IBM64PAPI#TAU_PAPI_RPATH	= #ENDIF#
#PAPI#TAU_LINKER_OPT1 = $(TAU_PAPI_RPATH) #ENDIF#

#PTHREAD_AVAILABLE#LEXTRA1     = -lpthread -ldl	       #ENDIF#
#TULIPTHREADS#LEXTRA1     = -L$(TULIPDIR)/Tuliplib  -ltulip	       #ENDIF#
#SMARTS##include $(TAU_INC_DIR)/makefiles/GNUmakefile-$(HOSTTYPE)  #ENDIF#
#SMARTS#LEXTRA1	    = $(LSMARTS)	#ENDIF#

TAU_GCCLIB	= -lgcc_s
#INTEL32_ON_64#TAU_GCCLIB	= -lgcc #ENDIF#
#FREEBSD#TAU_GCCLIB	= -lgcc #ENDIF#
#BGL#TAU_GCCLIB	= -lgcc #ENDIF#
#BGQ#TAU_GCCLIB	= -lgcc #ENDIF#
#ANDROID#TAU_GCCLIB = #ENDIF#
TAU_FORTRANLIBS       = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF##GNU#
#OPEN64ORC_FORTRAN#TAU_FORTRANLIBS       = -lfortran -lffio #ENDIF#
#PATHSCALE_FORTRAN#TAU_FORTRANLIBS       = -lpathfstart -lpathfortran #ENDIF#
#SC_PATHSCALE#TAU_FORTRANLIBS       = -lpathfstart -lpathfortran #ENDIF#
#NAGWARE_FORTRAN#TAU_FORTRANLIBS		= $(EXTRADIR)/lib/quickfit.o $(EXTRADIR)/lib/f90_init.o $(EXTRADIR)/lib/libf??.so $(EXTRADIR)/lib/libf??.a -lm -Wl,-rpath,$(EXTRADIR)/lib  #ENDIF#
#G95_FORTRAN#TAU_FORTRANLIBS	       = -L$(EXTRADIR) -lf95 #ENDIF#
#GNU_FORTRAN#TAU_FORTRANLIBS	       = -lg2c       #ENDIF#
TAU_FORTRANLIBS	       = -L$(TAUGFORTRANLIBDIR) -lgfortran -lgfortranbegin       #ENDIF##GNU_GFORTRAN#
#SC_GFORTRAN#TAU_FORTRANLIBS	       = -lgfortran -lgfortranbegin       #ENDIF#
#SGI_FORTRAN#TAU_FORTRANLIBS	       = -lfortran -lftn       #ENDIF#
#USE_IBMXLC#TAU_IBM_FORTRANLIBS	       =  -bh:4 -bpT:0x10000000 -bpD:0x20000000 /lib/crt0.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
TAU_IBM_FORTRANLIBS	       =  -Wl,-bh:4 -Wl,-bpT:0x10000000 -Wl,-bpD:0x20000000 /lib/crt0.o -lxlf90$(TAU_R) -lm -lc #ENDIF##GNU#
#KAI#TAU_IBM_FORTRANLIBS	       =  --backend -bh:4 --backend -bpT:0x10000000 --backend -bpD:0x20000000 /lib/crt0.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
#FX#TAU_FORTRANLIBS       = -Ntl_notrt -lmpi_f90 -lmpi_f77 #ENDIF#
#IBM_FORTRAN#TAU_FORTRANLIBS = $(TAU_IBM_FORTRANLIBS) #ENDIF#

#USE_IBMXLC#TAU_IBM64_FORTRANLIBS      =  -bh:4 -bpT:0x10000000 -bpD:0x20000000 -b64 /lib/crt0_64.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
TAU_IBM64_FORTRANLIBS      =  -Wl,-bh:4 -Wl,-bpT:0x10000000 -Wl,-bpD:0x20000000 -Wl,-b64 /lib/crt0_64.o -lxlf90$(TAU_R) -lm -lc #ENDIF##GNU#
#KAI#TAU_IBM64_FORTRANLIBS      =  --backend -bh:4 --backend -bpT:0x10000000 --backend -bpD:0x20000000 --backend -b64 /lib/crt0_64.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
#IBM64_FORTRAN#TAU_FORTRANLIBS = $(TAU_IBM64_FORTRANLIBS) #ENDIF#
#IBM64_FORTRAN#TAU_FORLIBDIR=lib64 #ENDIF#
#IBM_FORTRAN#TAU_FORLIBDIR=lib #ENDIF#
#BGL#TAU_FORLIBDIR=blrts_dev_lib #ENDIF#
#BGP#TAU_FORLIBDIR=bglib #ENDIF#
#BGQ#TAU_FORLIBDIR=bglib64 #ENDIF#
#PPC64XLF#TAU_FORTRANLIBS = -L$(EXTRADIR)/$(TAU_FORLIBDIR) -lxlf90$(TAU_R) -lxlfmath -lxl -lxlomp_ser #ENDIF#
#IBM64LINUX_XLF#TAU_FORTRANLIBS = -L$(EXTRADIR)/$(TAU_FORLIBDIR) -lxlf90$(TAU_R) -lxlfmath -lxl -lxlomp_ser #ENDIF#
#BGL#TAU_FORTRANLIBS = -L$(EXTRADIR)/$(TAU_FORLIBDIR) -L$(EXTRADIR)/blrts_lib -lxlf90$(TAU_R) -lxlfmath -lxl #ENDIF#
#BGP#TAU_IBM_FORTRANLIBS             =  -L/bgsys/drivers/ppcfloor/comm/xl/lib -lxlf90$(TAU_R) -lm -lc #ENDIF#
#BGQ#TAU_IBM_FORTRANLIBS             =  -L/bgsys/drivers/ppcfloor/comm/xl/lib -lxlf90$(TAU_R) -lm -lc #ENDIF#


#BGP#TAU_BGL_OMP_SERIAL= -lxlomp_ser #ENDIF#
TAU_BGL_OMP_SERIAL= #ENDIF##OPENMP#
#BGP#TAU_OMP_SERIAL=$(TAU_BGL_OMP_SERIAL) #ENDIF#
#BGP#TAU_FORTRANLIBS = -L$(EXTRADIR)/$(TAU_FORLIBDIR) -lxlf90$(TAU_R) -lxlfmath $(TAU_OMP_SERIAL) #ENDIF#
#BGP_GFORTRAN#TAU_FORTRANLIBS = -lgfortran -lgfortranbegin -lm #ENDIF#

#IBMXLFAPPLE#TAU_FORTRANLIBS	       = -L$(EXTRADIR)/lib -lxlf90 -lxlfmath -lxl      #ENDIF#

#ZEPTO_GFORTRAN#TAU_FORTRANLIBS = -lgfortran -lgfortranbegin -lm #ENDIF#
#CRAY_FORTRAN#TAU_FORTRANLIBS	       =        #ENDIF#
#CRAY_X1_FORTRAN#TAU_FORTRANLIBS	       =        #ENDIF#
#PGI_FORTRAN#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/f90main.o -lpgf90 -lpgf90rtl -lpgf90_rpm1 -lpgf902 -lpgftnrtl -lrt #ENDIF#
#APPLEPGI#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/f90main.o -lpgf90 -lpgf90rtl -lpgf90_rpm1 -lpgf902 -lpgftnrtl #ENDIF#
#HP_FORTRAN#TAU_FORTRANLIBS	       = -L$(EXTRADIR)/lib/pa2.0 -lF90 -lcl        #ENDIF#
#INTEL_FORTRAN#TAU_FORTRANLIBS         = -lcprts -lPEPCF90   #ENDIF#
#INTEL32_FORTRAN#TAU_FORTRANLIBS       = -lcprts -lCEPCF90 -lF90 #ENDIF#
#INTELIFORT#TAU_FORTRANLIBS       = -lcprts #ENDIF#
#CRAYCNL#TAU_FORTRANLIBS = #ENDIF#
#INTEL81FIX#TAU_FORTRANLIBS       = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) -lcxa -lunwind -L$(EXTRADIR)/lib -lifcore $(EXTRADIR)/lib/for_main.o #ENDIF#
#INTEL10FIX#TAU_FORTRANLIBS       = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) -L$(IFORTLIBDIR) -lifcore $(IFORTLIBDIR)/for_main.o #ENDIF#
#INTELCXXLIBICC#TAU_FORTRANLIBS       = -lcprts -L$(EXTRADIR)/lib -lifcore $(EXTRADIR)/lib/for_main.o #ENDIF#
#PGI1.7#LEXTRA = -lstd -lstrm#ENDIF#
#PGI1.7#TAUHELPER = $(TAUROOT)/src/Profile/TauPGIHelper.cpp #ENDIF#
# LINKER OPTIONS
TAU_LINKER_OPT2 = $(LEXTRA)


#ACC#TAUHELPER = -AA #ENDIF#
#FUJITSU_FORTRAN#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/fj90rt0.o -L$(EXTRADIR)/lib -lfj9i6 -lfj9f6 -lfj9e6        #ENDIF#
#FUJITSU_SOLARIS#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/fj90rt0.o -L$(EXTRADIR)/lib -lfj90l -lfj90f #ENDIF#
#SUN_FORTRAN#TAU_FORTRANLIBS	       = -lfui -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfsu -lsunmath        #ENDIF#
#SUN_FORTRAN#TAU_FORTRANLIBS_SUN_OPTERON   = -lfsu -lsunmath #ENDIF#
#SUN_FORTRAN#TAU_FORTRANLIBS_SUNCC   = -lfsu -lsunmath #ENDIF#
#SUN386I#TAU_FORTRANLIBS	       = $(TAU_FORTRANLIBS_SUN_OPTERON) #ENDIF#
#SUNX86_64#TAU_FORTRANLIBS	       = $(TAU_FORTRANLIBS_SUN_OPTERON) #ENDIF#
#SUNCC#TAU_FORTRANLIBS	       = $(TAU_FORTRANLIBS_SUNCC) #ENDIF#
#SOL2#EXTRALIBS = -lsocket -lnsl      #ENDIF#
#SUN386I#EXTRALIBS = -lsocket -lnsl -lrt     #ENDIF#
#SUNX86_64#EXTRALIBS = -lsocket -lnsl -lrt     #ENDIF#
#COMPAQ_FORTRAN#TAU_FORTRANLIBS =  $(EXTRADIR)/lib/cmplrs/fort90/for_main.o -L$(EXTRADIR)/lib -L$(EXTRADIR)/lib/cmplrs/fort90 -L$(EXTRADIR)/lib/cmplrs/fort90 -lUfor -lfor -lFutil -lm -lmld -lexc -lc #ENDIF#
#ABSOFT_FORTRAN#TAU_FORTRANLIBS =  -L$(EXTRADIR)/lib -lfio -lf90math -lU77 -lf77math -lfio #ENDIF#
#LAHEY_FORTRAN#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/fj90rt0.o -L$(EXTRADIR)/lib -lfj9i6 -lfj9f6 -lfj9e6 -lfccx86_6a #ENDIF#
#LAHEY64_FORTRAN#TAU_FORTRANLIBS             = $(EXTRADIR)/lib64/fj90rt0.o -L$(EXTRADIR)/lib64  -lfj90f -lfj90i -lelf #ENDIF#
#HITACHI_FORTRAN#TAU_FORTRANLIBS =  -lf90 -lhf90math #ENDIF#
#NEC_FORTRAN#TAU_FORTRANLIBS =  -f90lib #ENDIF#
#COMPAQ_GUIDEF90#TAU_FORTRANLIBS = $(EXTRADIR)/lib/cmplrs/fort90/for_main.o -lfor #ENDIF#


#HITACHI#TAU_HITACHI_EXTRA 	=  -L/usr/local/lib -llrz32 #ENDIF#

## To use the standard F90 linker instead of TAU_LINKER + TAU_FORTRANLIBS, add
TAU_CXXLIBS		= -L$(TAUGCCLIBDIR)  $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF##GNU#
TAU_GNUCXXLIBS		= -L$(TAUGCCLIBDIR) -L$(TAUGCCSTDCXXLIBDIR) -lstdc++ $(TAU_GCCLIB) #ENDIF##GNU#
#OPEN64ORC#TAU_CXXLIBS		= -lstdc++ #ENDIF#
#PATHSCALE_FORTRAN#TAU_CXXLIBS		= -lstdc++ #ENDIF#
#LAHEY_FORTRAN#TAU_CXXLIBS		= $(TAU_GNUCXXLIBS) -lc #ENDIF#
#NAGWARE_FORTRAN#TAU_CXXLIBS		= $(TAUGCCSTDCXXLIBDIR)/libstdc++.a #ENDIF#
#CLANG#TAU_CXXLIBS		= -lstdc++ -ldl #ENDIF#
#BGCLANG#TAU_CXXLIBS		= -lstdc++ -ldl -lc -lnss_files -lnss_dns -lresolv -lm #ENDIF#
#PGI#TAU_PGI_STD_LIB = -lstd -lC #ENDIF#
#PGI_NO_LIBSTD#TAU_PGI_STD_LIB = #ENDIF#
#PGI#TAU_CXXLIBS        	= $(TAU_PGI_STD_LIB)        #ENDIF#
#APPLEPGI#TAU_CXXLIBS        	=  -lstd -lcpp       #ENDIF#
#PGI_FORTRAN#TAU_CXXLIBS_PGI_CNL       	= -L$(EXTRADIR)/lib $(TAU_PGI_STD_LIB) -lC -lstdc++     #ENDIF#
#PGI_FORTRAN#TAU_CXXLIBS       	= -L$(EXTRADIR)/lib $(TAU_PGI_STD_LIB) -lstdc++     #ENDIF#
#PATHSCALE_FORTRAN#TAU_CXXLIBS_PATHSCALE_CNL      	= -L$(EXTRADIR)/lib -lstdc++     #ENDIF#
TAU_CXXLIBS_GNU_CNL      	= -L$(EXTRADIR)/lib -lstdc++ -lgcc_eh    #ENDIF##GNU_GFORTRAN#
#INTELIFORT#TAU_CXXLIBS_INTEL_CNL      	= -lstdc++   #ENDIF#
TAU_MPICHCXX_CNL_SHARED_LIB = -lmpichcxx
#CRAYCNL_CCE#TAU_MPICHCXX_CNL_SHARED_LIB = -lmpichcxx_cray #ENDIF#
TAU_MPICHCXX_CRAY_CNL_LIBS = $(TAU_MPILIB_DIRLIB) $(TAU_MPICHCXX_CNL_SHARED_LIB) #ENDIF##MPI#
#CRAY_FORTRAN#TAU_CXXLIBS_CRAY_CNL = -L$(EXTRADIR) -lcray-c++-rts -lgcc_eh $(TAU_MPICHCXX_CRAY_CNL_LIBS) #ENDIF#
#CRAYCNL#TAU_CXXLIBS       	= $(TAU_CXXLIBS_PGI_CNL) $(TAU_CXXLIBS_PATHSCALE_CNL) $(TAU_CXXLIBS_GNU_CNL) $(TAU_CXXLIBS_INTEL_CNL) $(TAU_CXXLIBS_CRAY_CNL) #ENDIF#
#CATAMOUNT#TAU_CXXLIBS       	= $(TAU_CXXLIBS_PGI_CNL) $(TAU_CXXLIBS_PATHSCALE_CNL) $(TAU_CXXLIBS_GNU_CNL)   #ENDIF#
#CRAYX1CC#TAU_CXXLIBS        	= -L/opt/ctl/CC/CC/lib -lC       #ENDIF#
#MPC#TAU_CXXLIBS        	= -lstdc++ #ENDIF#

## Set the gfortran options on BGP
#BGP_GFORTRAN#TAU_CXXLIBS		= -lstdc++ -lm #ENDIF#
#BGP_GFORTRAN#TAU_GNULIBS		= -lstdc++ -lm #ENDIF#
#BGP_GFORTRAN#TAU_CXXLIBS_GNU_CNL	= -lstdc++ -lm #ENDIF#

## Set the gfortran options on Zepto BGP
#ZEPTO_GFORTRAN#TAU_CXXLIBS		= -lstdc++ #ENDIF#

TAU_SGI_INIT = /usr/lib32/c++init.o
#ENABLE64BIT#TAU_SGI_INIT  = /usr/lib64/c++init.o #ENDIF#
#ENABLEN32BIT#TAU_SGI_INIT = /usr/lib32/c++init.o #ENDIF#
#ENABLE32BIT#TAU_SGI_INIT  = /usr/lib/c++init.o   #ENDIF#

#SGICC#TAU_CXXLIBS      	= $(TAU_SGI_INIT) -lC #ENDIF#
#APPLECXX#TAU_CXXLIBS 		= -lstd -lC #ENDIF#
#SOL2CC#TAU_CXXLIBS               = -lCstd -lCrun #ENDIF#
#SOL2CC#TAU_CXXLIBS_SUN_OPTERON   = -lCstd -lCrun -lm #ENDIF#
#SUNCC#TAU_CXXLIBS_SUNCC   = -lCstd -lCrun #ENDIF#
#SUN386I#TAU_CXXLIBS   = $(TAU_CXXLIBS_SUN_OPTERON) #ENDIF#
#SUNCC#TAU_CXXLIBS   = $(TAU_CXXLIBS_SUNCC) #ENDIF#
#SUNX86_64#TAU_CXXLIBS   = $(TAU_CXXLIBS_SUN_OPTERON) #ENDIF#
#FUJITSU_SOLARIS#TAU_CXXLIBS               = -lstd -lstdm #ENDIF#
#FX#TAU_CXXLIBS               = -lmpi_cxx -lstdc++ -lstd_mt -lm #ENDIF#
#FX#TAU_CXXLIBS               = -lmpi_cxx -Ntl_notrt -lmpi_f90 -lmpi_f77 --linkfortran #ENDIF#

#FX#TAU_CXXLIBS               = -Ntl_notrt #ENDIF#
#FX#TAU_CXXLIBS               = -Ntl_notrt -lmpi_f90 -lmpi_f77 #ENDIF#
# NOTE:  No -lmpi_cxx, -lmpi_f90, -lmpi_f77, and --linkfortran for Fujitsu
# by default. See tau_compiler.sh $optFujitsu==true
# Please add manually if needed

#PPC64XLC#TAU_PPC64_LIBS         = -L$(EXTRADIRCXX)/$(TAU_FORLIBDIR) -libmc++ -lstdc++       #ENDIF#
#IBM64LINUX_XLC#TAU_IBM64LINUX_LIBS         = -L$(EXTRADIRCXX)/$(TAU_FORLIBDIR) -libmc++ -lstdc++       #ENDIF#
#USE_IBMXLC#TAU_XLCLIBS         = $(TAU_IBM64LINUX_LIBS) $(TAU_PPC64_LIBS)     #ENDIF#
#IBMXLCAPPLE#TAU_FORLIBDIR =lib       #ENDIF#
#IBMXLCAPPLE#TAU_XLCLIBS         = -L$(EXTRADIRCXX)/$(TAU_FORLIBDIR) -libmc++ -lstdc++       #ENDIF#
#BGL#TAU_XLCLIBS         = -L$(EXTRADIRCXX)/blrts_dev_lib -L$(EXTRADIRCXX)/blrts_lib -libmc++ -L/bgl/BlueLight/ppcfloor/blrts-gnu/powerpc-bgl-blrts-gnu/lib -lstdc++      #ENDIF#
#BGP#TAU_XLCLIBS         = -L$(EXTRADIRCXX)/bglib -libmc++ -lstdc++ -L$(EXTRADIR)/bglib -lxlf90$(TAU_R) -lxlfmath   $(TAU_OMP_SERIAL)  #ENDIF#
#BGQ#TAU_XLCLIBS         = -L$(EXTRADIRCXX)/bglib64 -libmc++ -lstdc++  -L$(EXTRADIR)/bglib64 -lxlf90_r  -lxlfmath     #ENDIF#
#SP1#TAU_XLCLIBS         = -lC  -lm            #ENDIF#
#USE_IBMXLC#TAU_CXXLIBS         = $(TAU_XLCLIBS) #ENDIF#
#USE_DECCXX#TAU_CXXLIBS         = -lcxxstd -lcxx #ENDIF#
#USE_INTELCXX#TAU_CXXLIBS_INTEL        = -lcprts -lPEPCF90 #ENDIF#
#USE_INTELCXX#TAU_CXXLIBS_INTEL        = -lcprts #ENDIF#
#INTELIFORT#TAU_CXXLIBS_INTEL        = -lcprts #ENDIF#
#INTEL81FIX#TAU_CXXLIBS_INTEL        = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) -lcxa -lunwind#ENDIF#
#INTEL10FIX#TAU_CXXLIBS_INTEL        = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF#
#INTELCXXLIBICC#TAU_CXXLIBS_INTEL        = -lcprts #ENDIF#
#USE_INTELCXX#TAU_CXXLIBS        = $(TAU_CXXLIBS_INTEL) #ENDIF#
#APPLECXX#TAU_CXXLIBS 		= -lstdc++ -L$(TAUGCCLIBDIR)  $(TAUGCCLIBOPTS) -lgcc_s.1 #ENDIF#
#APPLEINTEL#TAU_CXXLIBS 		= -lstdc++ $(TAUGCCLIBOPTS) -lgcc_s.1 #ENDIF#

# EXTERNAL PACKAGES: EPILOG
#SCALASCA#TAU_ELG_SERIAL_SUFFIX =.ser #ENDIF#
#EPILOG#TAU_LINKER_OPT3 	=  -L$(EPILOGLIBDIR) -lelg$(TAU_ELG_SERIAL_SUFFIX) $(EPILOGEXTRALINKCMD) $(TAU_HITACHI_EXTRA) #ENDIF#
#CRAYCNL#TAU_FORTRAN_MPICH_OPT = -lfmpich #ENDIF#
#EPILOGMPI#TAU_LINKER_OPT3 	=  -L$(EPILOGLIBDIR) $(TAU_FORTRAN_MPICH_OPT) -lelg.mpi $(EPILOGEXTRALINKCMD) $(TAU_HITACHI_EXTRA) #ENDIF#
#EPILOGOMPI#TAU_LINKER_OPT3 	=  -L$(EPILOGLIBDIR) -lelg.ompi $(EPILOGEXTRALINKCMD) $(TAU_HITACHI_EXTRA) #ENDIF#
#EPILOGOMP#TAU_LINKER_OPT3 	=  -L$(EPILOGLIBDIR) -lelg.omp $(EPILOGEXTRALINKCMD) $(TAU_HITACHI_EXTRA) #ENDIF#

#USE_IBMXLC#TAU_IBM_NOCOMPINST   	     = -optNoCompInst 	  #ENDIF#
#COMPINST_CRAYCC#TAU_SHLIB_EXTRA_CXXLIBS   	     = $(TAU_CXXLIBS) #ENDIF#



# When using shared, we don't want -lelg.mpi or -lvt.mpi showing up
#FORCESHARED#TAU_LINKER_OPT3=#ENDIF#


TAU_LINKER_OPT4 = $(LEXTRA1)
#HITACHI_OPENMP#TAU_LINKER_OPT4 = -lcompas -lpthreads -lc_r #ENDIF#

# MALLINFO needs -lmalloc on sgi, sun
#SGIMP#TAU_LINKER_OPT6 = -lmalloc #ENDIF#
#SOL2#TAU_LINKER_OPT6 = #ENDIF#
#SUN386I#TAU_LINKER_OPT6 = -lmalloc #ENDIF#
#SUNX86_64#TAU_LINKER_OPT6 = -lmalloc #ENDIF#

# We need -lCio with SGI CC 7.4+
#SGICC#TAU_LINKER_OPT7 = -lCio #ENDIF#

# charm
#TAU_CHARM#TAU_LINKER_OPT8 = -lconv-core #ENDIF#

# extra libs
#SUN386I#TAU_LINKER_OPT9 = $(EXTRALIBS) #ENDIF#
#SUNX86_64#TAU_LINKER_OPT9 = $(EXTRALIBS) #ENDIF#
#SOL2#TAU_LINKER_OPT9 = $(EXTRALIBS)    #ENDIF#

#BGL#TAU_LINKER_OPT10 = -L/bgl/BlueLight/ppcfloor/bglsys/lib -lrts.rts #ENDIF#

#USE_IBMXLC#TAU_IBM_PYTHON_SHFLAG = -Wl,-bI:$(PYTHON_LIBDIR)/config/python.exp -Wl,-einitpytau#ENDIF#
TAU_IBM_PYTHON_SHFLAG = -Wl,-bI:$(PYTHON_LIBDIR)/config/python.exp -Wl,-einitpytau#ENDIF##GNU#
#KAI#TAU_IBM_PYTHON_SHFLAG = --backend -Wl,-bI:$(PYTHON_LIBDIR)/config/python.exp --backend -Wl,-einitpytau#ENDIF#
#ACC#TAU_HPUX_PYTHON_SHFLAG = -lstd_v2 -lCsup_v2 -lm -lcl -lc #ENDIF#

#USE_IBMXLC#TAU_IBM_LD_FLAGS = -binitfini:poe_remote_main #ENDIF#
TAU_IBM_LD_FLAGS = -Wl,-binitfini:poe_remote_main #ENDIF##GNU#
#MPICH2_MPI_INPLACE#TAU_IBM_LD_FLAGS = #ENDIF#
#KAI#TAU_IBM_LD_FLAGS = --backend -binitfini:poe_remote_main #ENDIF#


#PYTHON#TAU_IBM_SHFLAGS = $(TAU_IBM_PYTHON_SHFLAG) #ENDIF#
#PYTHON#TAU_HPUX_SHFLAGS = $(TAU_HPUX_PYTHON_SHFLAG) #ENDIF#
#SP1#TAU_EXTRA_LIBRARY_FLAGS = $(TAU_IBM_SHFLAGS)  #ENDIF#
#SOL2#TAU_EXTRA_LIBRARY_FLAGS = #ENDIF#
#SGIMP#TAU_EXTRA_LIBRARY_FLAGS = -lmalloc  #ENDIF#
#HP#TAU_EXTRA_LIBRARY_FLAGS  = $(TAU_HPUX_SHFLAGS) #ENDIF#

TAU_MPI_WRAPPER_LIB= -L$(TAU_LIB_DIR) -lTauMpi$(TAU_CONFIG) #ENDIF##MPI#
#EPILOGMPI#TAU_MPI_WRAPPER_LIB= #ENDIF#
#EPILOGOMPI#TAU_MPI_WRAPPER_LIB= #ENDIF#

#PYTHON#TAU_PYTHON_LINKER_OPTS= -L$(PYTHON_LIBDIR) -l$(PYTHON_LIB_SO) #ENDIF#


##############################################
# Build TAU_LINKER_SHOPTS
TAU_IBM_LINKER_SHOPTS=-Wl,-brtl -Wl,-bexpall #ENDIF##GNU#
#USE_IBMXLC#TAU_IBM_LINKER_SHOPTS= -brtl -bexpall #ENDIF#
TAU_BGP_GNU_LINKER_SHOPTS=-Xlinker -export-dynamic -dynamic #ENDIF##GNU#
#USE_IBMXLC#TAU_BGP_XLC_LINKER_SHOPTS=-qnostaticlink #ENDIF#
#KAI#TAU_IBM_LINKER_SHOPTS= --backend -brtl #ENDIF#
#SP1#TAU_LINKER_SHOPTS= $(TAU_IBM_LINKER_SHOPTS) #ENDIF#
#BGP#TAU_LINKER_SHOPTS= $(TAU_BGP_GNU_LINKER_SHOPTS) $(TAU_BGP_XLC_LINKER_SHOPTS) #ENDIF#
#BGQ#TAU_LINKER_SHOPTS= $(TAU_BGP_GNU_LINKER_SHOPTS) $(TAU_BGP_XLC_LINKER_SHOPTS) #ENDIF#

##############################################
# RPATH for -lTAU
TAU_LINKER_RPATH_OPT= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) #ENDIF##GNU#
#USE_INTELCXX#TAU_LINKER_RPATH_OPT= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) #ENDIF#
#PGI#TAU_LINKER_RPATH_OPT= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) #ENDIF#
##############################################
# MPI _r suffix check (as in libmpi_r)
TAU_MPI_R_SUFFIX=_r    #ENDIF##MPI_R_SUFFIX#

##############################################
# Flags to build a shared object: TAU_SHFLAGS
AR_SHFLAGS 		= -shared  	        #ENDIF##GNU#
#CLANG#AR_SHFLAGS 		= -shared  	        #ENDIF#
#USE_PATHCC#AR_SHFLAGS 		= -shared -fPIC  	#ENDIF#
#PGI#AR_SHFLAGS 		= -shared -fPIC 	#ENDIF#
#APPLEPGI#AR_SHFLAGS 		= -shared               #ENDIF#
#SGICC#AR_SHFLAGS 		= -shared  	        #ENDIF#
#OPEN64ORC#AR_SHFLAGS 		= -shared -fpic 	#ENDIF#
#MPC#AR_SHFLAGS 		= -shared -fPIC 	#ENDIF#
#APPLECXX#TAU_APPLE_SHFLAGS = -dynamiclib -flat_namespace -undefined suppress #ENDIF#
#USE_INTELCXX#AR_SHFLAGS  	= -shared -fPIC 	#ENDIF#
#MMIC#AR_SHFLAGS  	= -shared -mmic #ENDIF#
#APPLECXX#AR_SHFLAGS = $(TAU_APPLE_SHFLAGS)             #ENDIF#
#SOL2#AR_SHFLAGS  		= -G 		        #ENDIF#
#SUNCC#AR_SHFLAGS  		= -G 		        #ENDIF#
#SOL2CC#AR_SHFLAGS  		= -G 		        #ENDIF#
#CRAYCNL#AR_SHFLAGS  		= -shared -fPIC 		#ENDIF#
#FX#AR_SHFLAGS  		= -shared 		#ENDIF#
TAU_BGP_AR_SHFLAGS = -shared
#USE_IBMXLC#AR_SHFLAGS          = -G 		        #ENDIF#
#USE_IBMXLC#TAU_BGP_AR_SHFLAGS          = -qmkshrobj    #ENDIF#
#BGP#AR_SHFLAGS          = $(TAU_BGP_AR_SHFLAGS)        #ENDIF#
TAU_BGQ_AR_SHFLAGS = -shared
#USE_IBMXLC#TAU_BGQ_AR_SHFLAGS          = -qmkshrobj    #ENDIF#
#BGQ#AR_SHFLAGS          = $(TAU_BGQ_AR_SHFLAGS)        #ENDIF#
#USE_DECCXX#AR_SHFLAGS  	= -shared 		#ENDIF#
#ACC#AR_SHFLAGS  		= -b 		        #ENDIF#
#MERCURIUM#AR_SHFLAGS  = -shared #ENDIF#
TAU_ARFLAGS			= $(AR_SHFLAGS) -o
TAU_SHFLAGS = $(AR_SHFLAGS) -o

############# RANLIB Options #############
TAU_RANLIB = echo "Built"
TAU_RANLIB_FE = echo "Built"
#APPLECXX#TAU_RANLIB      = ranlib  #ENDIF#
#IBMXLCAPPLE#TAU_RANLIB      = ranlib  #ENDIF#
#APPLECXX#TAU_RANLIB_FE      = ranlib  #ENDIF#
#IBMXLCAPPLE#TAU_RANLIB_FE      = ranlib  #ENDIF#
#CRAYXMT#TAU_RANLIB      = ranlib  #ENDIF#
#CRAYXMT#TAU_RANLIB_FE   = /usr/bin/ranlib   #ENDIF#

##############################################
TAU_AR                 = ar
#MINGW#TAU_AR          = x86_64-w64-mingw32-ar #ENDIF#
#SP1#TAU_AR            = ar -X32        #ENDIF#
#IBM64#TAU_AR          = ar -X64        #ENDIF#
#FX#TAU_AR             = $(EXTRADIR)/util/bin/sparc64-unknown-linux-gnu-ar        #ENDIF#
#PPC64#TAU_AR          = ar 		#ENDIF#
#IBM64LINUX#TAU_AR     = ar             #ENDIF#


##############################################
# PDT OPTIONS
# You can specify -pdtcompdir=intel -pdtarchdir=x86_64
# If nothing is specified, PDTARCHDIR uses TAU_ARCH
PDTARCHDIRORIG=$(TAU_ARCH)
PDTARCHITECTURE=
PDTARCHDIRFINAL=$(PDTARCHDIRORIG)
#PDTARCHITECTURE#PDTARCHDIRFINAL=$(PDTARCHITECTURE)#ENDIF#
PDTARCHDIR=$(PDTARCHDIRFINAL)
#PDTARCH#PDTARCHDIR=$(PDTARCHDIRFINAL)/$(PDTCOMPDIR)#ENDIF#


HPCTOOLKIT_LINK=


##############################################
# Extra linker args (e.g. -Wl,-export-dynamic)
##############################################
# *CWL* NOTE: The extra space between EXTRA_LINKER_ARGS and "=" in the
#       case of APPLECXX is necessary so FixMakefile.sed.default will not
#       blow that entry away. It does so currently and I believe it may
#       be because the order of the sed commands are not being respected
#       by Mac OS X. Given the order, all ENDIF replacements should have
#       been taken care of before any restoration attempts are taken for
#       other variables like EXTRA_LINKER_ARGS. We are going to have to
#       continually keep an eye on similar situations for Mac OS X until
#       we can find a permanent fix.
EXTRA_LINKER_ARGS= -Wl,--export-dynamic
TAU_LINKER_OPT14=$(EXTRA_LINKER_ARGS)

##############################################
# Compiler Instrumentation
##############################################

BFDLINK=
BFDLIBS=-lbfd -liberty -lz
BFDINCLUDE=

TAU_BFDLIB=$(BFDLINK) $(BFDLIBS) #ENDIF##TAU_BFD#
#PTHREAD_AVAILABLE#TAU_COMPINST_PTHREAD_OPTIONS= -Dpthread_create=tau_pthread_create -Dpthread_exit=tau_pthread_exit#ENDIF#
#COMPINST_INTEL9#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#COMPINST_INTEL9#TAU_COMPINST_LINKING= #ENDIF#
TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions -finstrument-functions-exclude-file-list=/usr/include #ENDIF##COMPINST_GNU#
#APPLECXX#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#OPEN64ORC#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#CLANG#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#BUPC#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#MINGW#TAU_COMPINST_OPTION=-gstabs3 -finstrument-functions #ENDIF#
TAU_LINKER_OPT13=$(TAU_BFDLIB) #ENDIF##TAU_BFD#
#COMPINST_PGI#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-Mprof=func #ENDIF#
#COMPINST_PGI#TAU_COMPINST_LINKING=$(UPCC_LINK_PREFIX)-Mprof=func #ENDIF#
#COMPINST_PGI#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-Minstrument #ENDIF#
#COMPINST_PGI#TAU_COMPINST_LINKING=$(UPCC_LINK_PREFIX)-Minstrument #ENDIF#
#COMPINST_CRAYCC#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-h func_trace $(UPCC_C_PREFIX)-h ipa0 #ENDIF#
#COMPINST_XL#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-qdebug=function_trace #ENDIF#

#COMPINST_PGI#TAU_COMPINST_CRAY_HACK=$(UPCC_LINK_PREFIX)-Mprof=func $(EXTRADIR)/lib/libpgnod_prof.a #ENDIF#
#COMPINST_CRAYCC#TAU_COMPINST_CRAY_HACK="`ar x $(TAU_LIB_DIR)/libtau$(TAU_CONFIG).a Comp_gnu.o`" Comp_gnu.o #ENDIF#
#CRAYCNL#TAU_COMPINST_LINKING=$(TAU_COMPINST_CRAY_HACK) #ENDIF#
#COMPINST_XL#TAU_COMPINST_LINKING=$(UPCC_C_PREFIX)-qdebug=function_trace #ENDIF#
#MRNET#TAU_LINKER_OPT15=$(MRNET_LIBS) #ENDIF#
TAU_FORTRAN_COMPINST_OPTION=$(TAU_COMPINST_OPTION)
#NAGWARE_FORTRAN#TAU_FORTRAN_COMPINST_OPTION=-Wc,-finstrument-functions#ENDIF#

TAU_LINKER_OPT16= -lrt#ENDIF##TAU_LINKS_RT#

##############################################
# Various Sampling Support Options
##############################################
PROFILEOPT82 = -DTAU_SS_ALLOC_SUPPORT #ENDIF##TAU_SS_ALLOC_SUPPORT#
# *CWL* - Watch out for potential snafus for this. Right now, if EBS_HAS_RT
#         is set, EBS_CLOCK_RES must have a valid value.
EBS_CLOCK_RES=1
PROFILEOPT83 = -DEBS_CLOCK_RES=$(EBS_CLOCK_RES) #ENDIF##EBS_HAS_RT#

##############################################
# Support for non-portable features
##############################################
PROFILEOPT84 = -DTAU_STRSIGNAL_OK#ENDIF##TAU_STRSIGNAL_OK#
#HOST_SYSROOT#PROFILEOPT84 = --sysroot=$(HOST_SYSROOT)#ENDIF#

##############################################
# TAU Unwinder flags
##############################################
#TAU_UNWIND#PROFILEOPT85 = -DTAU_UNWIND $(UNWIND_FLAG) -I$(UNWIND_INC) #ENDIF#
#TAU_UNWIND#TAU_LINKER_OPT17 = -L$(UNWIND_LIB) $(UNWIND_LIB_FLAG) $(UNWIND_EXTRAS)#ENDIF#
#MMIC#TAU_LINKER_OPT18=-mmic #ENDIF#

##############################################
# KTAU-NG!!
##############################################
#KTAU_NG#PROFILEOPT86 = -DKTAU_NG #ENDIF#

##############################################
# DL_AUDITOR
##############################################
PROFILEOPT88 = -DTAU_TRACK_LD_LOADER #ENDIF##LD_AUDITOR_AVAILABLE#


##############################################
# DL_AUDITOR
##############################################
#BUPC#PROFILEOPT89= -DTAU_UPC -DTAU_BUPC #ENDIF#
#GUPC#PROFILEOPT89= -DTAU_UPC -DTAU_GPUC #ENDIF#
#CRAY_UPC#PROFILEOPT89= -DTAU_UPC -DTAU_CRAY_UPC#ENDIF#


##############################################
#SGI_MPT_MPI#PROFILEOPT90= -DTAU_SGI_MPT_MPI #ENDIF#
#GPI#PROFILEOPT91 = -DTAU_GPI -I$(GPIDIR)/include #ENDIF#
#GPI#TAU_EXTRA_WRAPPER_OPTIONS=-optTauWrapFile=$(TAU_LIB_DIR)/wrappers/gpi/link_options.tau #ENDIF#
#MPC#TAU_EXTRA_WRAPPER_OPTIONS=-optTauWrapFile=$(TAU_LIB_DIR)/wrappers/mpc_mpi/link_options.tau #ENDIF#
#SHMEM#TAU_EXTRA_WRAPPER_OPTIONS=-optTauWrapFile=$(TAU_LIB_DIR)/wrappers/shmem/link_options.tau #ENDIF#

PROFILEOPT92=-DTAU_OPENMP_NESTED#ENDIF##TAU_OPENMP_NESTED#

#IBMOMPT#PROFILEOPT93=-DTAU_IBM_OMPT -DTAU_USE_OMPT -I$(LOMPINC) -qdebug=lompinterface #ENDIF#
#TAU_OMPT#PROFILEOPT94=-DTAU_USE_OMPT #ENDIF#
PROFILEOPT95=-DTAU_USE_TLS #ENDIF##TLS_AVAILABLE#
#DTLS_AVAILABLE#PROFILEOPT95=-DTAU_USE_DTLS #ENDIF#
#PGS_AVAILABLE#PROFILEOPT95=-DTAU_USE_PGS #ENDIF#
PROFILEOPT96 = -DTAU_MPICH3 #ENDIF##MPICH3_CONST#
#OPENMPI3_CONST#PROFILEOPT97 = -DTAU_OPENMPI3 #ENDIF#
#MPI_F_STATUSES_IGNORE_ABSENT#PROFILEOPT98=-DTAU_MPI_F_STATUSES_IGNORE_ABSENT#ENDIF#
#NOFORTRAN#PROFILEOPT98=-DTAU_NO_FORTRAN#ENDIF#
#PAPI_PERF_RAPL#PROFILEOPT99 = -DTAU_PAPI_PERF_RAPL #ENDIF#
#TAU_MPI_HINDEX_CONST#PROFILEOPT100 = -DTAU_MPI_HINDEX_CONST #ENDIF#
PROFILEOPT101 = -DTAU_MPI_EXTENSIONS #ENDIF##MPI2#
#BEACON#PROFILEOPT102 = -DTAU_BEACON -I$(BEACONDIR)/include #ENDIF#
#MPI_T#PROFILEOPT103  = -DTAU_MPI_T   #ENDIF#
#MPI_T#TAU_MPIT  = TauMpiT.o #ENDIF#
#BEACON#BEACON_O       	       = TauBeacon.o 	       #ENDIF#



PROFILEOPTS = $(PROFILEOPT1)  $(PROFILEOPT2)  $(PROFILEOPT3)  $(PROFILEOPT4)  \
              $(PROFILEOPT5)  $(PROFILEOPT6)  $(PROFILEOPT7)  $(PROFILEOPT8)  \
	      $(PROFILEOPT9)  $(PROFILEOPT10) $(PROFILEOPT11) $(PROFILEOPT12) \
	      $(PROFILEOPT13) $(PROFILEOPT14) $(PROFILEOPT15) $(PROFILEOPT16) \
	      $(PROFILEOPT17) $(PROFILEOPT18) $(PROFILEOPT19) $(PROFILEOPT20) \
	      $(PROFILEOPT21) $(PROFILEOPT22) $(PROFILEOPT23) $(PROFILEOPT24) \
	      $(PROFILEOPT25) $(PROFILEOPT26) $(PROFILEOPT28) \
	      $(PROFILEOPT29) $(PROFILEOPT30) $(PROFILEOPT31) $(PROFILEOPT32) \
	      $(PROFILEOPT33) $(PROFILEOPT34) $(PROFILEOPT35) $(PROFILEOPT36) \
              $(PROFILEOPT37) $(PROFILEOPT38) $(PROFILEOPT39) $(PROFILEOPT40) \
              $(PROFILEOPT41) $(PROFILEOPT42) $(PROFILEOPT43) $(PROFILEOPT44) \
              $(PROFILEOPT45) $(PROFILEOPT46) $(PROFILEOPT47) $(PROFILEOPT48) \
              $(PROFILEOPT49) $(PROFILEOPT50) $(PROFILEOPT51) $(PROFILEOPT52) \
              $(PROFILEOPT53) $(PROFILEOPT54) $(PROFILEOPT55) $(PROFILEOPT56) \
	      $(PROFILEOPT57) $(PROFILEOPT58) $(PROFILEOPT59) $(PROFILEOPT60) \
	      $(PROFILEOPT61) $(PROFILEOPT62) $(PROFILEOPT63) $(PROFILEOPT64) \
	      $(PROFILEOPT65) $(PROFILEOPT66) $(PROFILEOPT67) $(PROFILEOPT68) \
	      $(PROFILEOPT69) $(PROFILEOPT70) $(PROFILEOPT71) $(PROFILEOPT72) \
	      $(PROFILEOPT73) $(PROFILEOPT74) $(PROFILEOPT75) $(PROFILEOPT76) \
	      $(PROFILEOPT77) $(PROFILEOPT78) $(PROFILEOPT79) $(PROFILEOPT80) \
              $(PROFILEOPT81) $(PROFILEOPT82) $(PROFILEOPT83) $(PROFILEOPT84) \
              $(PROFILEOPT85) $(PROFILEOPT86) $(PROFILEOPT87) $(PROFILEOPT88) \
              $(PROFILEOPT89) $(PROFILEOPT90) $(PROFILEOPT91) $(PROFILEOPT92) \
              $(PROFILEOPT93) $(PROFILEOPT94) $(PROFILEOPT95) $(PROFILEOPT96) \
              $(PROFILEOPT97) $(PROFILEOPT98) $(PROFILEOPT99) $(PROFILEOPT100) \
	      $(PROFILEOPT101) $(PROFILEOPT102) $(PROFILEOPT103) $(TRACEOPT)


##############################################
# These flags will only be used for the TAU library, not the users's code

# Removed -qpic=large from below, it causes the static XLC to fail with undefined CONSTANT_AREA
#USE_IBMXLC#TAU_BGP_INTERNAL_FLAG1    = -qpic -DTAU_IBM_XLC_BGP #ENDIF#
#USE_IBMXLC#TAU_BGP_INTERNAL_FLAG2    = -DTAU_IBM_XLC_BGP #ENDIF#
#BGP#TAU_INTERNAL_FLAG1    = $(TAU_BGP_INTERNAL_FLAG1) #ENDIF#
#BGPTIMERS#TAU_INTERNAL_FLAG1    = $(TAU_BGP_INTERNAL_FLAG2) #ENDIF#
#USE_IBMXLC#TAU_BGQ_INTERNAL_FLAG1    = -qpic -DTAU_IBM_XLC_BGQ #ENDIF#
#USE_IBMXLC#TAU_BGQ_INTERNAL_FLAG2    = -DTAU_IBM_XLC_BGQ #ENDIF#
#BGQ#TAU_INTERNAL_FLAG1    = $(TAU_BGQ_INTERNAL_FLAG1) #ENDIF#
#MMIC#TAU_INTERNAL_FLAG1    = -mmic #ENDIF#
#BGQTIMERS#TAU_INTERNAL_FLAG1    = $(TAU_BGQ_INTERNAL_FLAG2) #ENDIF#
TAU_INTERNAL_FLAG1             = -fPIC #ENDIF##GNU#
#CRAYXMT#TAU_INTERNAL_FLAG1             = #ENDIF#

#USE_PATHCC#TAU_INTERNAL_FLAG1      = -fPIC #ENDIF#
#USE_INTELCXX#TAU_INTERNAL_FLAG1    = -fPIC #ENDIF#
#PGI#TAU_INTERNAL_FLAG1    = -fPIC #ENDIF#

#############################################
# TAU GPU LIBRARIES
#############################################
TAU_CUDA_INC=
TAU_OPENCL_INC=
TAU_CUPTI_INC=
#OPENCL#TAU_OPENCL_INCLUDE=-I$(TAU_OPENCL_INC)#ENDIF#
#APPLECXX#TAU_OPENCL_INCLUDE=#ENDIF#
#CUDA#TAU_CUDA_INCLUDE=-I$(TAU_CUDA_INC)#ENDIF#
#CUPTI#TAU_CUPTI_INCLUDE=-I$(TAU_CUPTI_INC)#ENDIF#
#CUPTI#TAU_CUDA_LINKER_OPTS=-L$(subst include,,$(TAU_CUPTI_INC))/$(TAU_LIBEX) $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUPTI_INC))/$(TAU_LIBEX) -lcupti  -lcuda -L$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)  $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)#ENDIF#
#CUPTI_NOCUDA#TAU_CUDA_LINKER_OPTS=-L$(subst include,,$(TAU_CUPTI_INC))/$(TAU_LIBEX) $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUPTI_INC))/$(TAU_LIBEX) -lcupti  -L$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)  $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)#ENDIF#
TAU_CUDA_LIBRARY=
#CUDA#TAU_CUDA_STATIC_LIBS=-lcudart_static #ENDIF#
#############################################
############# TAU fpermissive flag used for CUDA code ########
TAU_PERMISSIVE_FLAG=-fpermissive 
#PGI#TAU_PERMISSIVE_FLAG= #ENDIF#

#CUPTI#TAU_INTERNAL_FLAG2=-DCUPTI #ENDIF#
TAU_INTERNAL_FLAGS = $(TAU_INTERNAL_FLAG1) $(TAU_INTERNAL_FLAG2)

#ANDROID#TAU_ANDROID_LINKER_OPTS=-llog #ENDIF#
#BEACON#TAU_BEACON_LINKER_OPTS=-L$(BEACONDIR)/lib -lbeacon -lpthread -Wl,-rpath,$(BEACONDIR)/lib #ENDIF#

##############################################

TAU_LINKER_OPTS = $(TAU_LINKER_OPT1) $(TAU_LINKER_OPT2) $(TAU_LINKER_OPT3) \
                  $(TAU_LINKER_OPT4) $(TAU_LINKER_OPT5) $(TAU_LINKER_OPT6) \
                  $(TAU_LINKER_OPT7) $(TAU_LINKER_OPT8) $(TAU_LINKER_OPT9) \
                  $(TAU_LINKER_OPT10) $(TAU_LINKER_OPT11) $(TAU_LINKER_OPT12) \
		  $(TAU_LINKER_OPT13) $(PERFSUITELINK) $(VAMPIRTRACELIBS) $(SCOREPLIBS) $(HPCTOOLKIT_LINK) \
		  $(TAU_LINKER_OPT14) $(TAU_LINKER_OPT15) $(TAU_LINKER_OPT16) \
                  $(TAU_LINKER_OPT17) $(TAU_LINKER_OPT18) $(TAU_LINKER_OPT19) \
                  $(TAU_LINKER_OPT20) $(TAU_LINKER_OPT21) $(TAU_LINKER_OPT22) \
                  $(TAU_CUDA_LINKER_OPTS) $(TAU_PYTHON_LINKER_OPTS)  \
                  $(TAU_ANDROID_LINKER_OPTS) $(TAU_BEACON_LINKER_OPTS)

##############################################

############# TAU Fortran ####################
TAU_LINKER=$(TAU_CXX)
#INTEL_FORTRAN##TAU_LINKER=$(TAU_F90) #ENDIF#
#INTEL32_FORTRAN##TAU_LINKER=$(TAU_F90) #ENDIF#
# Intel efc compiler acts as a linker - NO. Let C++ be the linker.

##############################################
############# TAU Options ####################
TAUDEFS 	= $(PROFILEOPTS) $(OPENMPOPTS)

TAUINC        	= -I$(TAU_INC_DIR)

TAULIBS		= $(TAUHELPER) -L$(TAU_LIB_DIR) -ltau$(TAU_CONFIG)  $(TAU_LINKER_OPTS)

TAUMPILIBS	= $(TAU_MPI_LIB)

TAUMPIFLIBS	= $(TAU_MPI_FLIB)

### ACL S/W requirement
TAU_DEFS	= $(TAUDEFS)

TAU_INCLUDE 	= -I$(TAU_INC_DIR)
#GPI#TAU_GPI_INC=-I$(GPIDIR)/include #ENDIF#
#PERFLIB#TAU_INCLUDE = -I$(PERFINCDIR) #ENDIF#
#PERFLIB#TAU_DEFS = #ENDIF#
#PERFLIB#TAU_COMPILER_EXTRA_OPTIONS1=-optTau=-p #ENDIF#

#FX#TAU_COMPILER_EXTRA_OPTIONS1=-optFujitsu #ENDIF#

#PTHREAD_AVAILABLE#TAU_COMPILER_EXTRA_OPTIONS2=-optTrackPthread #ENDIF#
#SCOREP#TAU_COMPILER_EXTRA_OPTIONS2= #ENDIF#
#MPC#TAU_COMPILER_EXTRA_OPTIONS2=-optTrackMPCThread #ENDIF#
#GOMP_AVAILABLE#TAU_COMPILER_EXTRA_OPTIONS2=-optTrackGOMP #ENDIF#

#SCOREP#TAU_COMPILER_EXTRA_OPTIONS3=-optOpari2Opts=--tpd #ENDIF#
TAU_COMPILER_SUITE_USED=gnu
TAU_COMPILER_SUITE_USED=gnu #ENDIF##GNU#
#USE_IBMXLC#TAU_COMPILER_SUITE_USED=ibm #ENDIF#
#USE_INTELCXX#TAU_COMPILER_SUITE_USED=intel #ENDIF#
#SOL2CC#TAU_COMPILER_SUITE_USED=sun #ENDIF#
#PGI#TAU_COMPILER_SUITE_USED=pgi #ENDIF#
#COMPINST_CRAYCC#TAU_COMPILER_SUITE_USED=cray #ENDIF#
#SCOREP_ADAPTER_INIT#TAU_COMPILER_EXTRA_OPTIONS3=-optOpari2Opts="--tpd --tpd-mangling=$(TAU_COMPILER_SUITE_USED)" #ENDIF#

#SHMEM#TAU_CRAY_SHMEM_EXTRA_DEFS=-D__float128=float #ENDIF#
#SHMEM#TAU_CRAY_SHMEM_EXTRA_OPTS=-optPdtCOpts=-D__float128=float  -optPdtCxxOpts=-D__float128=float #ENDIF#
#CRAYCNL#TAU_COMPILER_EXTRA_OPTIONS4=$(TAU_CRAY_SHMEM_EXTRA_OPTS) #ENDIF#
TAU_COMPILER_EXTRA_OPTIONS=$(TAU_COMPILER_EXTRA_OPTIONS1) $(TAU_COMPILER_EXTRA_OPTIONS2) $(TAU_COMPILER_EXTRA_OPTIONS3) $(TAU_COMPILER_EXTRA_OPTIONS4)

TAU_INCLUDE_MEMORY = -I$(TAU_INC_DIR)/TauMemory

#TAU_LIBS	= $(TAUHELPER) -L$(TAU_LIB_DIR) -ltau$(TAU_CONFIG) $(TAU_LINKER_OPTS) -L/usr/local/packages/sw1.2beta1/x86_64-unknown-linux2.4/lib -lstackwalk -lsymtabAPI -lcommon -L/usr/local/packages/libdwarf-20091230/lib -ldwarf -lelf -liberty -ldlmalloc

TAU_LIBDL=-ldl
#TAU_WINDOWS#TAU_LIBDL=  #ENDIF#

#SCOREP#TAU_MPI_NOWRAP_LIB	= #ENDIF#
TAU_EXTRA_MPI_LIBRARIES_FOR_GCC=$(TAU_MPI_NOWRAP_LIB) $(TAU_LIBDL) -lm #ENDIF##GNU46PLUS#
TAU_LIBS	= $(TAUHELPER) -L$(TAU_LIB_DIR) -ltau$(TAU_CONFIG) $(TAU_LINKER_OPTS) $(TAU_EXTRA_MPI_LIBRARIES_FOR_GCC)

#PERFLIB#TAU_LIBS = #ENDIF#

TAU_SHLIBS	= $(TAUHELPER) -L$(TAU_LIB_DIR) -lTAUsh$(TAU_CONFIG) $(TAU_LINKER_OPTS) $(TAU_LINKER_SHOPTS) $(TAU_MPI_LIB) $(TAU_LIBDL)
#PERFLIB#TAU_SHLIBS = #ENDIF#
TAU_EXLIBS	= $(TAUHELPER) $(TAU_LINKER_OPTS) $(TAU_LINKER_SHOPTS) $(TAU_MPI_LIB)

TAU_SHLIBS_NOSHOPTS = $(TAUHELPER) -L$(TAU_LIB_DIR) -lTAUsh$(TAU_CONFIG) $(TAU_LINKER_OPTS) -ldl

TAU_DISABLE	= $(TAUHELPER) -L$(TAU_LIB_DIR) -lTauDisable

TAU_MPI_INCLUDE	= $(TAU_MPI_INC)

TAU_MPI_LIBS	= $(TAU_MPI_LIB)

TAU_MPI_FLIBS	= $(TAU_MPI_FLIB)

## TAU TRACE INPUT LIBRARY (can build a trace converter using TAU TIL)
TAU_TRACE_INPUT_LIB = -L$(TAU_LIB_DIR) -lTAU_traceinput$(TAU_CONFIG)

TAU_OPENMP_LDFLAGS = $(TAU_OPENMP_OPTION) #ENDIF##OPENMP#

## Don't include -lpthread or -lsmarts. Let app. do that.
#############################################
## IBM SPECIFIC CHANGES TO TAU_MPI_LIBS
#SP1#TAU_MPI_LDFLAGS  = $(TAU_IBM_LD_FLAGS) #ENDIF#
#SP1#TAU_IBM_MPI_LIBS    = $(TAU_MPI_LIB)  -L$(TAU_MPILIB_DIR)/ip  -lvtd$(TAU_MPI_R_SUFFIX) #ENDIF#
#SP1#TAU_IBM_FMPI_LIBS    = $(TAU_MPI_FLIB)  -L$(TAU_MPILIB_DIR)/ip  -lvtd$(TAU_MPI_R_SUFFIX) #ENDIF#
#SP1#TAU_MPI_LIBS_FLAGS= $(TAU_IBM_MPI_LIBS) #ENDIF#
#SP1#TAU_MPI_FLIBS_FLAGS   = $(TAU_IBM_MPI_FLIBS) #ENDIF#
TAU_MPI_LIBS_FLAGS = $(TAU_MPI_LIB) #ENDIF##MPI#
TAU_MPI_FLIBS_FLAGS  = $(TAU_MPI_FLIB) #ENDIF##MPI#
TAU_MPI_LIBS = $(TAU_MPI_LIBS_FLAGS) #ENDIF##MPI#
TAU_MPI_FLIBS  = $(TAU_MPI_FLIBS_FLAGS) #ENDIF##MPI#
TAU_LDFLAGS = $(TAU_MPI_LDFLAGS) $(TAU_OPENMP_LDFLAGS)

#SP1#TAUMPILIBS      = $(TAU_MPI_LIBS) 	#ENDIF#
#SP1#TAUMPIFLIBS     = $(TAU_MPI_FLIBS)	#ENDIF#
#############################################
#SHMEM#SHMEM_OBJS		     = TauShmemCray.o	  #ENDIF#
#OPENSHMEM#SHMEM_OBJS		     =   #ENDIF#
#OPENSHMEM_PSHMEM#SHMEM_OBJS		     = TauShmemOpenShmemC.o TauShmemOpenShmemF.o  #ENDIF#
#CRAYCNL#SHMEM_OBJS		     =   #ENDIF#
#CRAYCNL_PSHMEM#SHMEM_OBJS		     = TauShmemCrayC.o TauShmemCrayF.o  #ENDIF#
#SGI_MPT_SHMEM#SHMEM_OBJS	= TauShmemSgiC.o TauShmemSgiF.o     #ENDIF#
#SGI_MPT_PSHMEM#SHMEM_OBJS	= TauPShmemSgiC.o TauShmemSgiF.o     #ENDIF#
#SP1#SHMEM_OBJS		     = TauShmemTurbo.o	  #ENDIF#
#GPSHMEM_PSHMEM#SHMEM_OBJS		     = TauShmemGpshmem.o  #ENDIF#
#GPSHMEM#SHMEM_OBJS		     = #ENDIF#
#OPENMPI_SHMEM#SHMEM_OBJS		     = TauOpenShmemOpenMPIC.o  #ENDIF#

TAU_CCOMPILER     = $(TAU_CC)
#BUPC##TAU_CCOMPILER     = $(TAU_UPCC)  #ENDIF#
#GUPC#TAU_CCOMPILER     = $(TAU_UPCC)  #ENDIF#
#CRAY_UPC#TAU_UPC_COMPILER_OPTIONS  = -h upc #ENDIF#


#SHMEM#TAU_SHMEM_INCLUDE	= $(TAU_SHMEM_INC) $(TAU_SHMEMMPI_INC) #ENDIF#

#SHMEM#TAU_SHMEM_LIBS	= -L$(TAU_PREFIX_INSTALL_DIR)/$(CONFIG_ARCH)/lib -lTauShmem$(TAU_CONFIG) $(TAU_SHMEM_LIB) #ENDIF#
#CRAYCNL#TAU_SHMEM_LIBS	= $(TAU_SHMEM_LIB) #ENDIF#
#SGI_MPT_SHMEM#TAU_SHMEM_LIBS	= $(TAU_SHMEM_LIB) #ENDIF#

#MIC_OFFLOAD_FLAGS=-offload-build
MIC_OFFLOAD_LINKING_PREFIX=-offload-option,mic,ld,

MIC_OFFLOAD_LINKING=$(TAUHELPER) $(MIC_OFFLOAD_FLAGS) $(MIC_OFFLOAD_LINKING_PREFIX)'-L$(TAU_PREFIX_INSTALL_DIR)/mic_linux/lib -ltau$(TAU_CONFIG)' -L$(TAU_PREFIX_INSTALL_DIR)/lib -ltau$(TAU_CONFIG) $(TAU_LINKER_OPTS) $(TAU_EXTRA_MPI_LIBRARIES_FOR_GCC)

MIC_OFFLOAD_SHARED_LINKING=$(TAUHELPER) $(MIC_OFFLOAD_FLAGS) $(MIC_OFFLOAD_LINKING_PREFIX)='-L$(TAU_PREFIX_INSTALL_DIR)/mic_linux/lib -lTAUsh$(TAU_CONFIG)' -L$(TAU_PREFIX_INSTALL_DIR)/lib -lTAUsh$(TAU_CONFIG) $(TAU_LINKER_OPTS) $(TAU_LINKER_SHOPTS) $(TAU_MPI_LIB) $(TAU_LIBDL)

TAU_MPI_COMPILE_INCLUDE=$(TAU_MPI_INCLUDE)
#COMPINST_CRAYCC#TAU_MPI_COMPILE_INCLUDE= #ENDIF#
#FX#TAU_MPI_COMPILE_INCLUDE= #ENDIF#
# Fujitsu doesn't want TAU_MPI_INC to propagate to the command line

TAU_LINK=$(TAU_MPI_FLIBS) $(TAU_LIBS) $(TAU_LDFLAGS) $(TAU_CXXLIBS) $(TAU_SHMEM_LIBS)
TAU_SHARED_LINK=-L$(TAU_LIB_DIR)/shared$(TAU_CONFIG) -lTAUsh$(TAU_CONFIG) $(TAU_MPI_FLIBS)  $(TAU_SHMEM_LIBS) $(TAU_EXLIBS) $(TAU_LDFLAGS) $(TAU_LINKER_RPATH_OPT) $(TAU_CUDA_LIBRARY)

TAU_STATICDIR=$(TAU_LIB_DIR)/static$(TAU_CONFIG)
TAU_STATIC_WRAPPERS=-L$(TAU_STATICDIR)

TAU_STATIC_INSTALL_CMD=\
		if [ "X$?" != "X" ]; then mkdir -p $(TAU_STATICDIR) && cp $? $(TAU_STATICDIR); fi

TAU_SHAREDDIR=$(TAU_LIB_DIR)/shared$(TAU_CONFIG)

TAU_SHARED_INSTALL_CMD=\
		if [ "X$?" != "X" ]; then mkdir -p $(TAU_SHAREDDIR) && cp $? $(TAU_SHAREDDIR); fi

#CRAYXMT#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#BGL#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#CATAMOUNT#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#CRAYX1CC#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#SUNCC#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#APPLEPGI#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#HITACHI#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#CRAYXMT#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#CRAYCC#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#USE_NECCXX#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#NOSHARED#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#
#TAU_WINDOWS#TAU_SHARED_INSTALL_CMD=@echo "NOTE: Not building TAU's DSOs" #ENDIF#

#NOSHARED#TOM_EXTRA_DEF=-DTOM_NO_SHARED #ENDIF#
#############################################
# TAU COMPILER SHELL SCRIPT OPTIONS
TAUCOMPILEROPTS=  -optPdtDir="$(PDTDIR)/${PDTARCHDIR}"\
        -optPdtCOpts="$(OPARIINCDIR) $(TAU_INCLUDE) $(TAU_DEFS) $(TAU_MPI_INCLUDE) $(TAU_SHMEM_INCLUDE) "\
        -optPdtCxxOpts="$(OPARIINCDIR) $(TAU_INCLUDE) $(TAU_DEFS) $(TAU_MPI_INCLUDE) $(TAU_SHMEM_INCLUDE) "\
        -optTauInstr="$(TAU_BIN_DIR)/tau_instrumentor" \
        -optNoMpi \
	-optOpari2Tool="$(TAU_OPARI2_TOOL)" -optOpari2ConfigTool="$(TAU_OPARI_CONFIG_TOOL)" -optOpari2Dir="$(OPARIDIR)" \
	-optIBM64="$(TAU_IBM64)" -optOpari2Opts="$(TAU_OPARI2_OPTION)" \
	-optOpariTool="$(TAU_OPARI_TOOL)"  \
	-optTauCC="$(TAU_CCOMPILER)" \
	-optTauIncludes="$(OPARIINCDIR) $(TAU_INCLUDE) $(TAU_MPI_COMPILE_INCLUDE) $(TAU_SHMEM_INCLUDE) " \
	-optTauDefs="$(TAU_DEFS)" $(TAU_IBM_NOCOMPINST) \
        -optLinking="-lTAU $(TAU_SCOREP_EXTRA_FLAGS) $(TAU_MPI_FLIBS) $(TAU_LIBS) $(TAU_CXXLIBS) $(TAU_SHMEM_LIBS) $(TAU_STATIC_WRAPPERS) $(TAU_LDFLAGS) $(TAU_CUDA_STATIC_LIBS) "\
        -optSharedLinking="-L$(TAU_LIB_DIR)/shared$(TAU_CONFIG) -lTAU $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) $(TAU_MPI_FLIBS)  $(TAU_SHMEM_LIBS) $(TAU_EXLIBS) $(TAU_CXXLIBS) $(TAU_STATIC_WRAPPERS) $(TAU_LINKER_RPATH_OPT) \
				 $(TAU_LDFLAGS)"\
				-optMICOffloadLinking="$(MIC_OFFLOAD_LINKING)"\
	$(TAUCOMPILER_OMP_OPTS)			-optMICOffloadSharedLinking="$(MIC_OFFLOAD_SHARED_LINKING)"\
        -optIncludeMemory="$(TAU_INCLUDE_MEMORY)"\
	-optCompInstOption="$(TAU_COMPINST_OPTION) $(TAU_COMPINST_PTHREAD_OPTIONS)"\
	-optCompInstFortranOption="$(TAU_FORTRAN_COMPINST_OPTION) $(TAU_COMPINST_PTHREAD_OPTIONS)"\
	-optCompInstLinking="$(TAU_COMPINST_LINKING)"\
	-optVerbose $(TAU_COMPILER_EXTRA_OPTIONS) \
	-optWrappersDir="$(TAU_LIB_DIR)/wrappers" $(TAU_EXTRA_WRAPPER_OPTIONS)
#############################################

TAU_SHAREDLIBS=$(TAUHELPER) -L$(TAU_LIB_DIR) -lTAU $(TAU_LINKER_OPTS) $(TAU_LINKER_SHOPTS)
SHAREDEXTRAS=
#FORCESHARED#SHAREDEXTRAS=-optSharedLinkReset="$(TAU_LDFLAGS) $(TAU_CXXLIBS) $(TAU_MPI_FLIB) $(TAU_SHAREDLIBS)" -optShared #ENDIF#
TAU_COMPILER=$(TAU_BIN_DIR)/tau_compiler.sh $(TAUCOMPILEROPTS) $(SHAREDEXTRAS)
#############################################
# These options could be included in the application Makefile as
#CFLAGS        	= $(TAUDEFS) $(TAUINC)
#
#LIBS 	      	= $(TAULIBS)
#
# To run the application without Profiling/Tracing use
#CFLAGS		= $(TAUINC)
# Don't use TAUDEFS but do include TAUINC
# Also ignore TAULIBS when Profiling/Tracing is not used.
#############################################

##############################################
# For making libTAU.so Dynamic Shared Object
##############################################
TAU_SHLIBX              = .so
#HP#TAU_SHLIBX          = .sl                   #ENDIF#
#APPLECXX#TAU_APPLE_SHLIBX  = .dylib            #ENDIF#
#APPLECXX#TAU_SHLIBX    = $(TAU_APPLE_SHLIBX)   #ENDIF#

# For loading the collector API on Apple
#APPLECXX#TAU_USE_DYLIB = -DTAU_USE_DYLIB            #ENDIF#

#############################################

# I had to comment the following out, with IBM make, this becomes the default
# make target, so it will screw up any makefile that includes the TAU stub makefile
#print-%:; @echo $($*)
