#****************************************************************************
#*			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.
#######################################################################

#######################################################################
# Just in case the user didn't set the TAU_MAKEFILE environment variable...
TAU_MAKEFILE:=$(realpath $(lastword $(MAKEFILE_LIST)))
# # set it now!
export TAU_MAKEFILE
# # optionally, echo it.
# $(info $$TAU_MAKEFILE is ${TAU_MAKEFILE})
#######################################################################

# See this file for a record of the configuration environment
CONF_ENV_FILE=/usr/src/packages/BUILD/tau-2.35.1/.configure_env/acc2278257978551eee44f2aef85c482

########### Automatically modified by the configure script ############
CONFIG_ARCH=x86_64
TAU_ARCH=x86_64
CONFIG_CC=mpicc
CONFIG_CXX=mpicxx
TAU_CC_FE=$(CONFIG_CC)
TAU_CXX_FE=$(CONFIG_CXX)

TAU_CUDA_CXX=g++
#PGI#TAU_CUDA_CXX=$(CONFIG_CXX)  #ENDIF#
#USE_IBMXLC#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
#PIN#TAU_SPECIAL_CC=g++ #ENDIF#
# 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#
#FX_AARCH64#TAU_CC_FE=/usr/bin/gcc #ENDIF#
#FX_AARCH64#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 -g
EXTRADIR=
EXTRADIRCXX=
TAUROOT=/usr/src/packages/BUILD/tau-2.35.1
TULIPDIR=
TAUEXTRASHLIBOPTS=
TAUGCCLIBOPTS=
TAUGCCLIBDIR=
TAUGCCSTDCXXLIBDIR=
IFORTLIBDIR=
PERFSUITELINK=
TAUGFORTRANLIBDIR=
PAPIDIR=/opt/ohpc/pub/libs/papi/7.2.0
SLURMDIR=
LIKWIDDIR=
BEACONDIR=
GPIDIR=
PAPISUBDIR=lib
CHARMDIR=
PDTDIR=/opt/ohpc/pub/libs/intel/pdtoolkit/3.25.1
PDTCOMPDIR=
DYNINSTDIR=
BOOSTDIR=
ELFDIR=
TBBDIR=
TAU_BOOSTINC=
TAU_BOOSTLIB=
SOSDIR=
ADIOSDIR=
ADIOS2DIR=
SQLITE3DIR=
MOCHIINCLUDES=
MOCHILIBS=
ADIOS2_CXXFLAGS=
ADIOS2_LIBS=
CALIPERDIR=
JDKDIR=
ANDROID_SDK=
ANDROID_VERSION=
ANDROID_PLATFORM=
OPARIDIR=
SCOREP_OPARI_BIN_DIR=
OPARIINCDIR=
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=-papi-mpi-pdt-openmp
TAU_MPI_INC=-I/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/include
TAU_MPI_LIB=-L/usr/src/packages/BUILD/tau-2.35.1/TAUBUILD/x86_64/lib -lTauMpi$(TAU_CONFIG) -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPI_FLIB=-g -L/usr/src/packages/BUILD/tau-2.35.1/TAUBUILD/x86_64/lib -lTauMpi$(TAU_CONFIG) -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPILIB_DIR=/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib
TAU_MPILIB_DIRLIB=-L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib
TAU_MPI_NOWRAP_LIB= -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_MPI_NOWRAP_FLIB=-g  -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -L/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi5-intel/5.0.10/lib -Wl,--enable-new-dtags -lmpi -Wl,-rpath,$(TAU_MPILIB_DIR)
TAU_L0_DIR=
TAU_L0_LIB_DIR=
TAU_MDISC_DIR=
TAU_ROCM_DIR=
TAU_ROCPROFILER=
TAU_ROCPROFILER_INC=
TAU_ROCPROFILER_LIBRARY=
TAUROCPROFSDK_DIR=
TAU_ROCTRACER=
TAU_ROCTRACER_LIB_DIR=$(TAU_ROCTRACER)/lib
TAU_ROCM_SMI_DIR=
TAU_ROCM_SMI_INC=$(TAU_ROCM_SMI_DIR)/include/
TAU_ROCM_SMI_LIB_DIR=$(TAU_ROCM_SMI_DIR)/lib
TAU_CMAKE=
TAU_HIP=
PIN_ROOT=
TAU_GASNET_DIR=
FULL_CXX=icpx
FULL_CC=icx
FULL_FORTRAN=/opt/intel/oneapi/compiler/2025.0/bin/ifx
LOMPINC=
LOMPLIB=
TAU_LLVM_SRC_DIR=
TAU_LLVM_CXX=
TAU_LLVM_CC=
TAU_STARPU_DIR=
TAU_OPENCL_LIBRARY=
#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/src/packages/BUILD/tau-2.35.1/TAUBUILD
ELFUTILS_LIB_DIR=
ELFUTILS_INC_DIR=
TAUROCCOMGR_DIR=

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=

FPIC=-fPIC
#NVIDIA#FPIC=-Xcompiler -fPIC #ENDIF#

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

#OPARI#TAU_OPARI_TOOL=$(TAU_BIN_DIR)/opari        #ENDIF#
#OPARI2#TAU_OPARI2_TOOL=$(TAU_BIN_DIR)/opari2        #ENDIF#
#OPARI2#TAU_OPARI_CONFIG_TOOL=$(TAU_BIN_DIR)/opari2-config        #ENDIF#
#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#
#GNU#SC_ABI     	     = $(SC_GNU_ABI) 	  #ENDIF#
#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#
#GNU#IBM_ABI	     	     = $(IBM_GNU_ABI) 	  #ENDIF#
#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#
#GNU#SUN_ABI	     	     = $(SUN_GNU_ABI)	  #ENDIF#
#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#
#HCC#TAU_CC_SPECIAL_OPTS=-x c #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#
#CRAYCNL#TAU_DYNAMIC = -dynamic #ENDIF#
#PGI#TAU_DYNAMIC =  #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#


#############################################
# SOS OBJECTS and libs
#############################################
#SOS#SOS_O = TauSOS.o #ENDIF#
#SOS#TAU_SOS_INCLUDE_OPTS=-I$(SOSDIR)/include -I$(SOSDIR) -DTAU_SOS #ENDIF#
#SOS#TAU_SOS_LIBS=-L$(SOSDIR)/lib -Wl,-rpath,$(SOSDIR)/lib -lsos -fPIC #ENDIF#
#SOS#TAU_SOS_LINKER_OPTS=$(TAU_SOS_LIBS) #ENDIF#

#############################################
# ADIOS OBJECTS and libs
#############################################
#ADIOS#ADIOS_O = TauADIOS.o #ENDIF#
#ADIOS#TAU_ADIOS_INCLUDE_OPTS=-I$(ADIOSDIR)/include -DTAU_ADIOS #ENDIF#
#ADIOS#TAU_ADIOS_LIBS=-L$(ADIOSDIR)/lib -Wl,-rpath,$(ADIOSDIR)/lib -fPIC #ENDIF#
#ADIOS#TAU_ADIOS_LINKER_OPTS=$(TAU_ADIOS_LIBS) #ENDIF#

#############################################
# ADIOS2 OBJECTS and libs
#############################################
#ADIOS2#TAU_ADIOS2_INCLUDE_OPTS=$(ADIOS2_CXXFLAGS) -DTAU_ADIOS2 #ENDIF#
#ADIOS2#TAU_ADIOS2_LIBS=$(ADIOS2_LIBS) #ENDIF#
#ADIOS2#TAU_ADIOS2_LINKER_OPTS=$(TAU_ADIOS2_LIBS) #ENDIF#

#############################################
# SQLITE3 OBJECTS and libs
#############################################
#SQLITE3#TAU_SQLITE3_INCLUDE_OPTS=-I$(SQLITE3DIR)/include #ENDIF#
#SQLITE3#TAU_SQLITE3_LIBS=-L$(SQLITE3DIR)/lib -Wl,-rpath,$(SQLITE3DIR)/lib -L$(SQLITE3DIR)/lib64 -Wl,-rpath,$(SQLITE3DIR)/lib64 #ENDIF#
#SQLITE3#TAU_SQLITE3_LINKER_OPTS=$(TAU_SQLITE3_LIBS) -lsqlite3 #ENDIF#
#SQLITE3#TAU_SQLITE3_PLUGIN_LIB=libTAU-sqlite3-plugin$(TAU_SHLIBX) #ENDIF#

#############################################
# MOCHI OBJECTS and libs
#############################################
#MOCHI#TAU_MOCHI_INCLUDE_OPTS=$(MOCHIINCLUDES) #ENDIF#
#MOCHI#TAU_MOCHI_LIBS=$(MOCHILIBS) #ENDIF#
#MOCHI#TAU_MOCHI_LINKER_OPTS=$(TAU_MOCHI_LIBS) #ENDIF#

#############################################
# CALIPER OBJECTS and libs
#############################################
CALIPER_O = TauCaliper.o #ENDIF#
#CALIPER#TAU_CALIPER_INCLUDE_OPTS=-I$(CALIPERDIR)/include -DTAU_CALIPER #ENDIF#

#############################################
# OpenMP OBJECTS
#############################################
OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPIDisable.o TauOMPT.o TauGpuAdapterOpenMP.o #ENDIF##OPENMP#
#OPARI#OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPIDisable.o #ENDIF#
#OPARI2#OPENMP_O 	= OpenMPLayer.o TauOpenMPCollectorAPIDisable.o #ENDIF#
#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#
#TAU_OMPT_TR6#TAU_LINKER_OPT20=$(OMPTLIB) #ENDIF#
#TAU_OMPT_TR7#TAU_LINKER_OPT20=$(OMPTLIB) #ENDIF#
#TAU_OMPT_5_0#TAU_LINKER_OPT20=$(OMPTLIB) #ENDIF#
#IBMOMPT#TAU_LINKER_OPT20=-L$(LOMPLIB) -lxllomp #ENDIF#
#COMPINST_CRAYCC#TAU_LINKER_OPT21=$(TAU_LIBDL) #ENDIF#
#COMPINST_CRAYPE_CLANG#TAU_LINKER_OPT21=$(TAU_LIBDL) #ENDIF#
TAU_LINKER_OPT22=-lm #ENDIF##TAU_USELM#
TAU_USE_NO_PIE_ON_UBUNTU=-Wl,-no-pie #ENDIF##TAU_USE_NO_PIE_ON_UBUNTU#
#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#
#OPARI2#OPARI_O 	= pomp2_lib.o pomp2_region_info.o pomp2_user_region_info.o opari2_ctc_parser.o pomp2_fwrapper.o pomp2_fwrapper_base.o#ENDIF#
#SCOREP#OPARI_O 	= #ENDIF#
#EPILOG#OPARI_O 	=  #ENDIF#
#VAMPIRTRACE#OPARI_O 	=  #ENDIF#

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


#############################################
# DYNINST DEFAULT ARCH
#############################################
DYNINST_PLATFORM 	= $(PLATFORM)
#Dyninst 13 has issues with ARMLINUX64 when there are more than one function parameters, compile slightly modified tau_run.cpp and TauHooks.cpp
#DYN_ARMLINUX64#DYNINST_ARCH = -DDYNINSTARMLINUX64

############# OpenMP Fortran Option ########
TAU_OPENMP_OPTION =
#MPC#TAU_OPENMP_OPTION= -fopenmp #ENDIF#
#CLANG_OPENMP#TAU_OPENMP_OPTION= -fopenmp -DTAU_CLANG #ENDIF#
#MPCINTEL#TAU_OPENMP_OPTION= -openmp #ENDIF#
#COMPINST_CRAYCC#TAU_OPENMP_OPTION= -h omp #ENDIF#
#COMPINST_CRAYPE_CLANG#TAU_OPENMP_OPTION= -fopenmp #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#
#NEC_COMPILERS#TAU_OPENMP_OPTION = -fopenmp #ENDIF#
#OPEN64_OPENMP#TAU_OPARI2_OPTION = --nodecl #ENDIF#
#GUIDE#TAU_OPENMP_OPTION = #ENDIF#
#PGIOPENMP#TAU_OPENMP_OPTION = -mp #ENDIF#
#PGIOPENMPT#TAU_OPENMP_OPTION = -mp=ompt #ENDIF#
TAU_OPENMP_OPTION = -qopenmp #ENDIF##INTELOPENMP#
#INTEL_FOPENMP#TAU_OPENMP_OPTION = -fopenmp #ENDIF#
#GNU#PROFILEOPT27 = #ENDIF#
#GNUOPENMP#TAU_OPENMP_OPTION = -fopenmp #ENDIF#
#FX#TAU_OPENMP_OPTION = -Kopenmp #ENDIF#
#FX_AARCH64#TAU_OPENMP_OPTION = -fopenmp #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#
#GNU_GFORTRAN#TAU_F90         = gfortran              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#CAF#TAU_F90                 = caf              $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#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#
#ARMFLANG#TAU_F90         = armflang    $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#FLANG#TAU_F90         = flang    $(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#
#NV_FORTRAN#TAU_F90         = mpif90            $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#NVIDIA#TAU_F90              = ftn            $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#PGI_CATAMOUNT#TAU_F90         = qk-pgf90         $(F90_ABI) $(TAU_F90_OPT) #ENDIF#
#PGI#PGIFLAG=                  -c89 -Mvariadic_macros                       #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#
TAU_F90     = ifort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF##INTEL32_FORTRAN#
#INTEL_IFX#TAU_F90           = ifx 	        $(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#
#INTEL_MPIIFX#TAU_F90        = mpiifx           $(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#
#FX_AARCH64#TAU_F90       = mpifrt $(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#
#NEC_COMPILERS#TAU_F90         = nfort 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#TAU_NEC_MPI_VH_SX#TAU_F90     = gfortran 	        $(F90_ABI) $(TAU_F90_OPT)   #ENDIF#
#NEC_SX_MPI_FORTRAN#TAU_F90  = mpinfort 	        $(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#

TAU_F90 	= $(FULL_FORTRAN) $(F90_ABI) $(TAU_F90_OPT) #ENDIF##FORTRAN_SPECIFIED#
TAU_F77 	= $(TAU_F90) #ENDIF##FORTRAN_SPECIFIED#


############# 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#
PROFILEOPT3              = -DTAU_PAPI -I$(PAPIDIR)/include #ENDIF##PAPI#
#PAPINOINC#PROFILEOPT3              = -DTAU_PAPI #ENDIF#
PAPI_O       	       = PapiLayer.o 	       #ENDIF##PAPI#
#TAU_LIKWID#LIKWID_O           = LikwidLayer.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#
PROFILEOPT10           = -DTAU_DOT_H_LESS_HEADERS #ENDIF##USE_CC#
#BGCLANG#PROFILEOPT10           = -O2 -DMPICH2_CONST= -DTAU_CLANG -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#CRAYCNL_SHARED#PROFILEOPT10           = -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#CLANG#PROFILEOPT10           = -DTAU_CLANG -DTAU_DOT_H_LESS_HEADERS -fPIC #ENDIF#
#GNU#PROFILEOPT10              = -DTAU_GNU -DTAU_DOT_H_LESS_HEADERS #ENDIF#
#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 -DCUPTI_DIRECTIVE_SUPPORT #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#
#COMPINST_CRAYPE_CLANG#PROFILEOPT13          =  -DCRAYCC -DTAU_CRAYCC_USE_CLANG -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#
#TRACE#TRACEOPT		       = -DTRACING_ON 	       #ENDIF#
#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#
PROFILEOPT19     = -DTAU_DOT_H_LESS_HEADERS  #ENDIF##USE_INTELCXX#
#USE_NECCXX#PROFILEOPT19     = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#NEC_COMPILERS#PROFILEOPT19     = -DTAU_NEC_SX -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#TAU_NEC_MPI_VH_SX#PROFILEOPT19 = -DTAU_NEC_MPI_VH_SX #ENDIF#
#PGI#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS   #ENDIF#
#NVIDIA#PROFILEOPT19  	       = -DTAU_DOT_H_LESS_HEADERS -Xcompiler -fPIC  #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#
#FX_AARCH64#PROFILEOPT19  	       = -DTAU_FUJITSU -DTAU_FX_AARCH64 -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#
#GNU#PROFILEOPT21_SP1	       = -DTAU_AIX #ENDIF#
#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#
#SHMEM#TAU_NON_MPI_MERGE_OBJS = TauProfileMerge.o TauMetaDataMerge.o #ENDIF#
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#
#CPUTIME#PROFILEOPT32           = -DCPU_TIME          #ENDIF#
#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#
#PROFILECALLPATH#PROFILEOPT36  = -DTAU_CALLPATH #ENDIF#
#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#
#USE_PMPI_STATUS_F2C#PROFILEOPT55  = -DTAU_USE_PMPI_F2C -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 -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#
#SHMEMX_H#PROFILEOPT105  = -DHAVE_SHMEMX_H #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#
#PROFILEPARAM#PROFILEOPT65  = -DTAU_PROFILEPARAM #ENDIF#
#PROFILEPATHS#PROFILEOPT65  = -DTAU_PROFILEPARAM -DTAU_PROFILE_PATHS #ENDIF#
#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#
#TAU_BFD#PROFILEOPT75 = -DTAU_BFD #ENDIF#

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

#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#
#PinCRT does not support TR1_HASH_MAP
#PIN#PROFILEOPT79 = #ENDIF#
#DARSHAN#PROFILEOPT80 = -DTAU_DARSHAN #ENDIF#
#MMIC#PROFILEOPT87 = -DTAU_MIC_LINUX -mmic #ENDIF#
#CRAY_MIC#PROFILEOPT87 = -DTAU_MIC_LINUX -DTAU_CRAY_MIC #ENDIF#

#DISABLE_MEM_MANAGER#PROFILEOPT106 = -DTAU_DISABLE_MEM_MANAGER #ENDIF#
#CRAYCNL_PMI#PROFILEOPT107  = -DTAU_CRAYCNL_PMI $(CRAY_PMI_INCLUDE_OPTS) #ENDIF#
#CRAYCNL_PMI_FOUND#PROFILEOPT107  = -DTAU_CRAYCNL_PMI_FOUND #ENDIF#
#TAU_LIKWID#PROFILEOPT108  = -DTAU_LIKWID -I$(LIKWIDDIR)/include #ENDIF#
#APPLE_MACH_PORT_BUG#PROFILEOPT109         = -DTAU_APPLE_MACH_PORT_BUG #ENDIF#
#SGI_MPT_MPI#PROFILEOPT110         = -DTAU_SGI_MPT_MPI #ENDIF#
#OPENCL#PROFILEOPT111         = -DTAU_ENABLE_OPENCL #ENDIF#
#LEVEL_ZERO#PROFILEOPT112         = -DTAU_ENABLE_LEVEL_ZERO -DTAU_DISABLE_SYSCALL_WRAPPER -I$(TAU_L0_DIR)/include #ENDIF#
#LEVEL_ZERO_OLD#PROFILEOPT112         = -DTAU_ENABLE_LEVEL_ZERO -DTAU_DISABLE_SYSCALL_WRAPPER -I$(TAU_L0_DIR)/include #ENDIF#
#LEVEL_ZERO_METRICS#PROFILEOPT112         = -DTAU_ENABLE_LEVEL_ZERO -DTAU_DISABLE_SYSCALL_WRAPPER -I$(TAU_L0_DIR)/include -I$(TAU_MDISC_DIR)/include -DL0METRICS #ENDIF#
#ROCM#PROFILEOPT112         = -DTAU_ENABLE_ROCM #ENDIF#
#ROCPROFILER#PROFILEOPT113 = -DTAU_ENABLE_ROCPROFILER -DTAU_GPU #ENDIF#
#ROCPROFILERROCM6#PROFILEOPT113 = -DTAU_ENABLE_ROCPROFILER -DTAU_GPU #ENDIF#
#ROCPROFILERV2#PROFILEOPT119 = -DTAU_ENABLE_ROCPROFILERV2 -DTAU_GPU #ENDIF#
#ROCPROFILERSDK#PROFILEOPT119 = -DTAU_ENABLE_ROCPROFILERSDK -DTAU_GPU #ENDIF#
#ROCPROFILERSDK_PC#PROFILEOPT119 += -DTAU_ENABLE_ROCPROFILERSDK_PC #ENDIF#
#ROCM#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#PGI_OPENACC#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#PGI_OPENACC_15x#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#CUDA#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#CUPTI#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#OPENCL#PROFILEOPT114 = -DTAU_GPU #ENDIF#
#ROCPROFILER#ROCPROFILER_FLAGS = -I$(TAU_ROCM_DIR)/include/hsa -I$(TAU_ROCPROFILER_INC) -I$(TAU_ROCPROFILER)/test  -DAMD_INTERNAL_BUILD -DAQLPROF_NEW_API=1 -DROCP_LD_AQLPROFILE=1 -DDEBUG_TRACE=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -D__HIP_PLATFORM_HCC__ -DLINUX -DLITTLEENDIAN_CPU=1 -DUNIX_OS -D__AMD64__ -D__linux__ -D__x86_64__ -Dintercept_test_EXPORTS  -std=c++11 -Wall -Werror=return-type -fexceptions -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -fmerge-all-constants -Werror=unused-result -fPIC -ggdb -m64  -msse -msse2 -g  #ENDIF#
#ROCPROFILERROCM6#ROCPROFILER_FLAGS = -I$(TAU_ROCM_DIR)/include/hsa -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCPROFILER_INC) -DAMD_INTERNAL_BUILD -DAQLPROF_NEW_API=1 -DROCP_LD_AQLPROFILE=1 -DDEBUG_TRACE=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -D__HIP_PLATFORM_HCC__ -DLINUX -DLITTLEENDIAN_CPU=1 -DUNIX_OS -D__AMD64__ -D__linux__ -D__x86_64__ -Dintercept_test_EXPORTS  -std=c++11 -Wall -Werror=return-type -fexceptions -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -fmerge-all-constants -Werror=unused-result -fPIC -ggdb -m64  -msse -msse2 -g  #ENDIF#
#ROCPROFILERV2#ROCPROFILER_FLAGS = -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCPROFILER_INC) -DAMD_INTERNAL_BUILD -DAQLPROF_NEW_API=1 -DROCP_LD_AQLPROFILE=1 -DDEBUG_TRACE=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -D__HIP_PLATFORM_HCC__ -DLINUX -DLITTLEENDIAN_CPU=1 -DUNIX_OS -D__AMD64__ -D__linux__ -D__x86_64__ -Dintercept_test_EXPORTS  -std=c++11 -Wall -Werror=return-type -fexceptions -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -fmerge-all-constants -Werror=unused-result -fPIC -ggdb -m64  -msse -msse2 -g  #ENDIF#
#ROCPROFILERSDK#ROCPROFILER_FLAGS = -I$(TAUROCPROFSDK_DIR)/include -I$(TAU_ROCM_DIR)/include -DAMD_INTERNAL_BUILD -DAQLPROF_NEW_API=1 -DROCP_LD_AQLPROFILE=1 -DDEBUG_TRACE=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -D__HIP_PLATFORM_HCC__ -DLINUX -DLITTLEENDIAN_CPU=1 -DUNIX_OS -D__AMD64__ -D__linux__ -D__x86_64__ -Dintercept_test_EXPORTS  -std=c++17 -Wall -Werror=return-type -fexceptions -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -fmerge-all-constants -Werror=unused-result -fPIC -ggdb -m64  -msse -msse2 -g -DUSE_PROF_API=1 -D__HIP_PLATFORM_AMD__=1  #ENDIF#
#ROCPROFILERSDK_PC#ROCPROFILER_FLAGS += -L$(ELFUTILS_LIB_DIR) -Wl,-rpath,$(ELFUTILS_LIB_DIR) -ldw -I$(ELFUTILS_INC_DIR) -I$(TAUROCCOMGR_DIR)/include
#ROCTRACER#PROFILEOPT115 = -DTAU_ENABLE_ROCTRACER -DTAU_GPU -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCM_DIR)/include/hsa -I$(TAU_ROCTRACER)/include/roctracer -I$(TAU_ROCTRACER)/include -DHIP_VDI=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -DAMD_INTERNAL_BUILD -D__HIP_PLATFORM_HCC__ #ENDIF#
#ROCTRACER_HSA#PROFILEOPT115 = -DTAU_ENABLE_ROCTRACER -DTAU_GPU -I$(TAU_ROCTRACER)/include/roctracer -I$(TAU_ROCTRACER)/include -I$(TAU_ROCPROFILER)/include -I$(TAU_ROCTRACER)/inc -I$(TAU_ROCTRACER) -I$(TAU_ROCM_DIR)/hsa/include/hsa -DAMD_INTERNAL_BUILD -DLOCAL_BUILD=1 -DHIP_VDI=1 #ENDIF#
#ROCTRACERROCM6#PROFILEOPT115 = -DTAU_ENABLE_ROCTRACER -DTAU_GPU -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCM_DIR)/include/hsa -I$(TAU_ROCTRACER)/include/roctracer -DHIP_VDI=1 -DHSA_DEPRECATED="" -DHSA_LARGE_MODEL="" -DAMD_INTERNAL_BUILD -D__HIP_PLATFORM_HCC__ #ENDIF#
#ROCTRACERROCM6_HSA#PROFILEOPT115 = -DTAU_ENABLE_ROCTRACER -DTAU_GPU -I$(TAU_ROCTRACER)/include/roctracer -I$(TAU_ROCTRACER)/include/ -I$(TAU_ROCPROFILER)/include/rocprofiler -I$(TAU_ROCM_DIR)/include -I$(TAU_ROCM_DIR)/include/hsa -DAMD_INTERNAL_BUILD -DLOCAL_BUILD=1 -DHIP_VDI=1 -D__HIP_PLATFORM_AMD__=1 #ENDIF#
#HIP#PROFILEOPT116 = -DTAU_ENABLE_HIP -I$(TAU_HIP)/include -D__HIP_PLATFORM_HCC__ #ENDIF#
#ROCMSMI#TAU_ROCM_SMI_INCLUDE_FLAGS = -DTAU_ROCM_SMI -I$(TAU_ROCM_SMI_INC) #ENDIF#
#SUPPRESS_PTHREAD_CREATE_WRAPPER#PROFILEOPT117 = -DTAU_SUPPRESS_PTHREAD_CREATE_WRAPPER #ENDIF#
#STARPU#PROFILEOPT118 = -I$(TAU_STARPU_DIR) -DTAU_STARPU #ENDIF#
#OPENCL#PROFILEOPT120 = -DTAU_OPENCL_LIBRARY=\"$(TAU_OPENCL_LIBRARY)\" #ENDIF#
#GNU_GFORTRAN#TAU_ALLOW_ARG_MISMATCH=-fallow-argument-mismatch#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#
LEXTRA	       	       = $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF##PAPI#
LEXTRA	       = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF##PAPI#
#IA64PAPI#LEXTRA	       = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#
LEXTRA	       = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpfm -lpapi -lpfm #ENDIF##PAPIPFM#
#X86_64PAPI#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/lib64 -lpapi -lperfctr #ENDIF#
LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF##X86_64PAPI_NEW#
#PAPI_WITHOUT_LIB_INC#LEXTRA  = -lpapi #ENDIF#
PAPI_LEXTRA_MIC  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF##PAPI#
#MIC_LINUX#LEXTRA  = $(PAPI_LEXTRA_MIC) #ENDIF#
#PAPIPFMPERFCTR#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR)/ -L$(PAPIDIR)/lib64/ -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi -lpfm -lperfctr #ENDIF#
TAU_CNL_PAPI_FLAGS =  $(PAPIDIR)/$(PAPISUBDIR)/libpapi.a #ENDIF##PAPI#
TAU_CNL_PAPI_CRAYCC_FLAGS  = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF##PAPI#
#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 = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpfm -lpapi -lpfm #ENDIF#
#ARMLINUXPAPI#LEXTRA   = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#
#SGI64PAPI#LEXTRA  = -L$(PAPIDIR)/$(PAPISUBDIR) -Wl,-rpath,$(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) -Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) -lpapi #ENDIF#

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

# By default make TAU_PAPI_RPATH null. Support it on a compiler by compiler basis.
##TAU_PAPI_RPATH	= -rpath $(PAPIDIR)/$(PAPISUBDIR) #ENDIF##PAPI#
#TAU_PAPI_RPATH	=  #ENDIF##PAPI#
#PPC64PAPI#TAU_PAPI_RPATH = #ENDIF#
#BGLPAPI#TAU_PAPI_RPATH = #ENDIF#
#BGPPAPI#TAU_PAPI_RPATH = #ENDIF#
#BGQPAPI#TAU_PAPI_RPATH = #ENDIF#
TAU_PAPI_RPATH	= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR)  #ENDIF##USE_INTELCXX#
#CRAYX1CC#TAU_PAPI_RPATH = #ENDIF#
#PGI#TAU_PAPI_RPATH	= -R$(PAPIDIR)/$(PAPISUBDIR) #ENDIF#
#GNU#TAU_PAPI_RPATH	= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(PAPIDIR)/$(PAPISUBDIR) #ENDIF#
#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.
#TAU_PAPI_RPATH	=  #ENDIF##INTEL32_FORTRAN#
#SOL2PAPI#TAU_PAPI_RPATH	= #ENDIF#
#IBMPAPI#TAU_PAPI_RPATH	= #ENDIF#
#IBM64PAPI#TAU_PAPI_RPATH	= #ENDIF#
TAU_LINKER_OPT1 = $(TAU_PAPI_RPATH) #ENDIF##PAPI#

#PTHREAD_AVAILABLE#LEXTRA1     = -lpthread -ldl	       #ENDIF#
#PTHREAD_AVAILABLE#SHLEXTRA1     = -lTAU-pthread        #ENDIF#
#TBB_AVAILABLE#SHLEXTRA1     = -lTAU        #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#
#GNU#TAU_FORTRANLIBS       = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF#
#OPEN64ORC_FORTRAN#TAU_FORTRANLIBS       = -lfortran -lffio #ENDIF#
#PATHSCALE_FORTRAN#TAU_FORTRANLIBS       = -lpathfstart -lpathfortran #ENDIF#
#ARMFLANG#TAU_FORTRANLIBS              =  -lflangmain -lflang -lflangrti -lompstub -lm -lrt #ENDIF#
#FLANG#TAU_FORTRANLIBS              =  -lflangmain -lflang -lflangrti -lompstub -lm -lrt -lpgmath -lomp #ENDIF#
#FLANG_NO_MX_OPTS#TAU_FORTRANLIBS   =  -lflangmain -lflang -lflangrti -lm -lrt -lpgmath -lomp #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#
#GNU_GFORTRAN#TAU_FORTRANLIBS	       = -L$(TAUGFORTRANLIBDIR) -lgfortran       #ENDIF#
#APPLE_GFORTRAN#TAU_FORTRANLIBS	       = -L$(TAUGFORTRANLIBDIR) -lgfortran #ENDIF#
#SC_GFORTRAN#TAU_FORTRANLIBS	       = -lgfortran       #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#
#GNU#TAU_IBM_FORTRANLIBS	       =  -Wl,-bh:4 -Wl,-bpT:0x10000000 -Wl,-bpD:0x20000000 /lib/crt0.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
#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#
#FX_AARCH64#TAU_FORTRANLIBS       =  #ENDIF#
# For MPI applications you may build with -mpiprof
#NEC_SX_MPI_FORTRAN#TAU_NEC_MPI_LIBS               = -mpiprof -lmpi++ #ENDIF#
#NEC_SX_MPI_FORTRAN#TAU_NEC_MPI_LIBS               = -lpmpi  -lmpi++ #ENDIF#
#NEC_COMPILERS#TAU_FORTRANLIBS               = -lpthread -lrt -L$(EXTRADIR) $(EXTRADIR)/f90_init.o $(EXTRADIR)/nousemmap.o $(EXTRADIR)/quickfit.o $(EXTRADIR)/async_noio.o -lnfmain -lnfort -Wl,-rpath,$(EXTRADIR) $(TAU_NEC_MPI_LIBS) #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#
#GNU#TAU_IBM64_FORTRANLIBS      =  -Wl,-bh:4 -Wl,-bpT:0x10000000 -Wl,-bpD:0x20000000 -Wl,-b64 /lib/crt0_64.o -lxlf90$(TAU_R) -lm -lc #ENDIF#
#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#
#IBM64LINUX_XLF#TAU_FORLIBDIR=lib #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  -lm #ENDIF#

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

#ZEPTO_GFORTRAN#TAU_FORTRANLIBS = -lgfortran -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#
#NV_FORTRAN#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/f90main.o -L$(EXTRADIR)/lib -lnvf -Wl,-rpath,$(EXTRADIR)/lib #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#
TAU_FORTRANLIBS       = -lcprts -lCEPCF90 -lF90 #ENDIF##INTEL32_FORTRAN#
#INTELIFORT#TAU_FORTRANLIBS       = -lcprts #ENDIF#
#CRAYCNL#TAU_FORTRANLIBS = #ENDIF#
#AOCC#TAU_FORTRANLIBS	       = -lflangmain -lflang -lflangrti -lompstub -lm -lrt -lpgmath -lomp #ENDIF#
#NVIDIA#TAU_FORTRANLIBS	       = $(EXTRADIR)/lib/f90main.o -L$(EXTRADIR)/lib -lnvf -Wl,-rpath,$(EXTRADIR)/lib  #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#
#INTEL_ICPX#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#
TAU_FORTRANLIBS       = -L$(TAUGCCLIBDIR) $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) -L$(IFORTLIBDIR) -lifcore $(IFORTLIBDIR)/for_main.o #ENDIF##USE_INTELCXX#
#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
#GNU#TAU_CXXLIBS		= -L$(TAUGCCLIBDIR)  $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF#
#GNU#TAU_GNUCXXLIBS		= -L$(TAUGCCLIBDIR) -L$(TAUGCCSTDCXXLIBDIR) -lstdc++ $(TAU_GCCLIB) #ENDIF#
#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#
#FLANG#TAU_CXXLIBS		= -lstdc++ -ldl -lompstub #ENDIF#
#AOCC#TAU_CXXLIBS_AOCC_CNL	= -lstdc++ #ENDIF#
#FLANG_NO_MX_OPTS#TAU_CXXLIBS   = -lstdc++ -ldl #ENDIF#
#BGCLANG#TAU_CXXLIBS		= -lstdc++ -ldl -lc -lnss_files -lnss_dns -lresolv -lm #ENDIF#
#PGI_C#TAU_PGI_C = -lC #ENDIF#
#PGI#TAU_PGI_STD_LIB = -lstd $(TAU_PGI_C) #ENDIF#
#PGI_NO_LIBSTD#TAU_PGI_STD_LIB = #ENDIF#
#PGI_ATOMIC#TAU_PGI_ATOMIC = -latomic #ENDIF#
TAU_PGI_STD_LIB = -lstdc++ $(TAU_PGI_ATOMIC) #ENDIF##MPI#
#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) $(TAU_PGI_C) -lstdc++     #ENDIF#
#PGI_FORTRAN#TAU_CXXLIBS       	= -L$(EXTRADIR)/lib $(TAU_PGI_STD_LIB) -lstdc++ $(TAU_PGI_ATOMIC) #ENDIF#
#NVIDIA#TAU_CXXLIBS_NVIDIA_CNL       	= -lstdc++     #ENDIF#
#PATHSCALE_FORTRAN#TAU_CXXLIBS_PATHSCALE_CNL      	= -L$(EXTRADIR)/lib -lstdc++     #ENDIF#

# 32-bit if ABI contains "32"; else prefer lib64 only if it actually has libgcc_s.so.1
#GNU_GFORTRAN#ifneq ($(findstring 32,$(ABI)),)      #ENDIF#
#GNU_GFORTRAN#  TAU_CNL_LIBPATH := $(EXTRADIR)/lib    #ENDIF#
#GNU_GFORTRAN#else    #ENDIF#
#GNU_GFORTRAN#  TAU_CNL_LIBPATH := $(if $(wildcard $(EXTRADIR)/lib64/libgcc_s.so.1),$(EXTRADIR)/lib64,$(EXTRADIR)/lib)     #ENDIF#
#GNU_GFORTRAN#endif     #ENDIF#
#GNU_GFORTRAN#TAU_CXXLIBS_GNU_CNL = -L$(TAU_CNL_LIBPATH) -lstdc++ -lgcc_eh    #ENDIF#

#INTELIFORT#TAU_CXXLIBS_INTEL_CNL      	= -lstdc++   #ENDIF#
TAU_MPICHCXX_CNL_SHARED_LIB = -lmpichcxx
#CRAYCNL_CCE#TAU_MPICHCXX_CNL_SHARED_LIB = -lmpichcxx_cray #ENDIF#
#CRAYCNL_MVAPICH2#TAU_MPICHCXX_CNL_SHARED_LIB = -lmpichcxx #ENDIF#
#CRAY_MPICH_LIBMPI_CRAY#TAU_MPICHCXX_CNL_SHARED_LIB = -lmpi_cray #ENDIF#
#CRAY_MPICH_LIBMPICH_CRAYCLANG#TAU_MPICHCXX_CNL_SHARED_LIB = -lmpich_crayclang #ENDIF#
TAU_MPICHCXX_CRAY_CNL_LIBS = $(TAU_MPILIB_DIRLIB) $(TAU_MPICHCXX_CNL_SHARED_LIB) #ENDIF##MPI#
#TAU_CRAY_AARCH64#TAU_CRAY_AARCH64_STDCXX_LIB=-lstdc++ -L/opt/cray/pe/cce/default/cce-clang/aarch64/lib -Wl,-rpath,/opt/cray/pe/cce/default/cce-clang/aarch64/lib #ENDIF#
##CRAY_FORTRAN#TAU_CXXLIBS_CRAY_CNL = -L$(EXTRADIR)/ -lcray-c++-rts -lgcc_eh $(TAU_MPICHCXX_CRAY_CNL_LIBS) $(TAU_CRAY_AARCH64_STDCXX_LIB)#ENDIF#
#COMPINST_CRAYPE_CLANG#TAU_CXXLIBS_CRAY_CNL = -L$(EXTRADIR) $(TAU_MPICHCXX_CRAY_CNL_LIBS) -lstdc++ -lgcc_eh #ENDIF#
#CRAYCNL#TAU_CXXLIBS       	= $(TAU_CXXLIBS_AOCC_CNL) $(TAU_CXXLIBS_NVIDIA_CNL) $(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#
#FX_AARCH64#TAU_CXXLIBS       = -Ntl_notrt -lmpi_f90 -lmpi_f77 #ENDIF#
#FX_AARCH64#TAU_CXXLIBS       = #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
##NEC_COMPILERS#TAU_CXXLIBS               = -lpmpi  -lnc++  -lmpi++ #ENDIF#
#NEC_COMPILERS#TAU_CXXLIBS               = -lnc++  -lpthread -lrt $(TAU_NEC_MPI_LIBS) #ENDIF#


#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#
TAU_CXXLIBS_INTEL        = -lcprts -lPEPCF90 #ENDIF##USE_INTELCXX#
TAU_CXXLIBS_INTEL        = -lcprts #ENDIF##USE_INTELCXX#
TAU_CXXLIBS_INTEL        = #ENDIF##USE_INTELCXX#
#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#
#INTEL_ICPX#TAU_CXXLIBS_INTEL        = $(TAUGCCLIBOPTS) -lstdc++ $(TAU_GCCLIB) #ENDIF#
#INTELCXXLIBICC#TAU_CXXLIBS_INTEL        = -lcprts #ENDIF#
TAU_CXXLIBS        = $(TAU_CXXLIBS_INTEL) #ENDIF##USE_INTELCXX#
#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#
#COMPINST_CRAYPE_CLANG#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#
#GNU#TAU_IBM_PYTHON_SHFLAG = -Wl,-bI:$(PYTHON_LIBDIR)/config/python.exp -Wl,-einitpytau#ENDIF#
#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#
#GNU#TAU_IBM_LD_FLAGS = -Wl,-binitfini:poe_remote_main #ENDIF#
#GNU#TAU_IBM_LD_FLAGS = -lpthread#ENDIF#
#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) -Wl,-rpath,$(PYTHON_LIBDIR)#ENDIF#


##############################################
# Build TAU_LINKER_SHOPTS
#GNU#TAU_IBM_LINKER_SHOPTS=-Wl,-brtl -Wl,-bexpall #ENDIF#
#USE_IBMXLC#TAU_IBM_LINKER_SHOPTS= -brtl -bexpall #ENDIF#
#GNU#TAU_BGP_GNU_LINKER_SHOPTS=-Xlinker -export-dynamic -dynamic #ENDIF#
#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
#GNU#TAU_LINKER_RPATH_OPT= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) #ENDIF#
TAU_LINKER_RPATH_OPT= $(UPCC_LINK_PREFIX)-Wl,-rpath,$(TAU_LIB_DIR)/shared$(TAU_CONFIG) #ENDIF##USE_INTELCXX#
#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)
#MPI_R_SUFFIX#TAU_MPI_R_SUFFIX=_r    #ENDIF#

##############################################
# Flags to build a shared object: TAU_SHFLAGS
#GNU#AR_SHFLAGS 		= -shared  	        #ENDIF#
#CLANG#AR_SHFLAGS 		= -shared  	        #ENDIF#
#USE_PATHCC#AR_SHFLAGS 		= -shared -fPIC  	#ENDIF#
#PGI#AR_SHFLAGS 		= -shared -fPIC 	#ENDIF#
#NVIDIA#AR_SHFLAGS 		= -shared -Xcompiler -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 dynamic_lookup #ENDIF#
AR_SHFLAGS  	= -shared -fPIC 	#ENDIF##USE_INTELCXX#
#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#
#FX_AARCH64#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#
#NEC_COMPILERS#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#
#FX_AARCH64#TAU_AR     = ar             #ENDIF#
#PPC64#TAU_AR          = ar 		#ENDIF#
#IBM64LINUX#TAU_AR     = ar             #ENDIF#
#NEC_COMPILERS#TAU_AR  = nar             #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=

ZLIBLINK=
ZLIBLIBS=
ZLIBINCLUDE=

#TAU_BFD#TAU_BFDLIB=$(BFDLINK) $(BFDLIBS) $(ZLIBLINK) $(ZLIBLIBS) $(ZLIBINCLUDE) #ENDIF#
#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#
#COMPINST_GNU#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions -finstrument-functions-exclude-file-list=include,.h,.hpp #ENDIF#
#COMPINST_LLVM#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-Mx,129,0x800 #ENDIF#
#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#
#FLANG#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-Mx,129,0x800 $(UPCC_C_PREFIX)-finstrument-functions #ENDIF#
#FLANG_NO_MX_OPTS#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_BFD#TAU_LINKER_OPT13=$(TAU_BFDLIB) #ENDIF#
#CRAYCNL#TAU_COMPINST_LINKING=$(TAU_COMPINST_CRAY_HACK) #ENDIF#
#COMPINST_PGI#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-Mprof=func #ENDIF#
#NVIDIA#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-Minstrument #ENDIF#
#COMPINST_PGI#TAU_COMPINST_LINKING=$(UPCC_LINK_PREFIX)-Mprof=func #ENDIF#
#NVIDIA#TAU_COMPINST_LINKING=$(UPCC_LINK_PREFIX)-Minstrument #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_CRAYPE_CLANG#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX) -finstrument-functions #ENDIF#
#FX_AARCH64#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX) -finstrument-functions #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#
#COMPINST_XL#TAU_COMPINST_LINKING=$(UPCC_C_PREFIX)-qdebug=function_trace #ENDIF#
#NEC_COMPILERS#TAU_COMPINST_OPTION=$(UPCC_C_PREFIX)-g $(UPCC_C_PREFIX)-finstrument-functions #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#
#CRAY_FORTRAN#TAU_FORTRAN_COMPINST_OPTION=$(UPCC_C_PREFIX)-h func_trace $(UPCC_C_PREFIX)-h ipa0#ENDIF#

TAU_LINKER_OPT16= -lrt#ENDIF##TAU_LINKS_RT#
#PIN#TAU_LINKER_OPT16= #ENDIF#

##############################################
# 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) $(UNWIND_INC) #ENDIF#
#TAU_UNWIND#TAU_LINKER_OPT17 = $(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#
#TAU_OMPT_TR6#PROFILEOPT94=-DTAU_USE_OMPT_TR6 #ENDIF#
#TAU_OMPT_TR7#PROFILEOPT94=-DTAU_USE_OMPT_TR7 #ENDIF#
#TAU_OMPT_5_0#PROFILEOPT94=-DTAU_USE_OMPT_5_0 -DTAU_GPU #ENDIF#
#TAU_C_COMPILER_NO_OMPT#PROFILEOPT94=-DTAU_USE_OMPT_5_0 -DTAU_GPU -DTAU_DISABLE_OMPT_5_0_IN_C_COMPILER #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#
#CRAYCNL_MVAPICH2#PROFILEOPT96 = -DTAU_MPICH3 #ENDIF#
PROFILEOPT97 = -DTAU_OPENMPI3 #ENDIF##OPENMPI3_CONST#
#CRAYCNL_MVAPICH2#PROFILEOPT97 = #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#
#PIN#PROFILEOPT104  = -D__PIN__=1 -DPIN_CRT=1 -DTARGET_IA32E -DTARGET_LINUX -DHOST_IA32E -fno-exceptions -funwind-tables  -fasynchronous-unwind-tables -fabi-version=2 -fno-rtti -fno-stack-protector -fomit-frame-pointer -fno-strict-aliasing -isystem $(PIN_ROOT)/source/include/pin -isystem $(PIN_ROOT)/source/include/pin/gen -isystem $(PIN_ROOT)/extras/stlport/include -isystem $(PIN_ROOT)/extras/libstdc++/include -isystem $(PIN_ROOT)/extras/crt/include -isystem $(PIN_ROOT)/extras/crt/include/arch-x86_64 -isystem $(PIN_ROOT)/extras/crt/include/kernel/uapi -isystem $(PIN_ROOT)/extras/crt/include/kernel/uapi/asm-x86  -isystem $(PIN_ROOT)/extras/components/include -isystem $(PIN_ROOT)/extras/xed-intel64/include/xed #ENDIF#
OTFINC=/opt/ohpc/pub/libs/intel/openmpi5/otf2/3.1.1/include
TAU_OTF2_INCLUDE_OPTS = -I$(OTFINC) -DTAU_OTF2 #ENDIF##OTF2#
#PERFETTO#TAU_PERFETTO_INCLUDE_OPTS = -I$(TAUROOT)/utils/perfetto -DTAU_PERFETTO #ENDIF#
#CORESYMBOLICATION#TAU_CORESYMBOLICATION_INCLUDE_OPTS = -DTAU_HAVE_CORESYMBOLICATION #ENDIF#
#TAU_ELF_BFD#TAU_ELF_BFD_PROFILEOPT = -DTAU_ELF_BFD #ENDIF#
#TAU_DWARF#TAU_DWARF_PROFILEOPT = -DTAU_DWARF #ENDIF#
DWARFINC=
# TAU support for ARM64
TAU_CRAY_UPC_INCLUDE_FLAGS=$(INCLUDE_PATH_X86_64)
#TAU_CRAY_AARCH64#TAU_CRAY_UPC_INCLUDE_FLAGS=$(INCLUDE_PATH_AARCH64)#ENDIF#

TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11
#GNU#TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF#
TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF##USE_CC#
TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF##USE_INTELCXX#
#COMPINST_CRAYCC#TAU_STDCXX11_FLAG=-hstd=c++11 -DTAU_USE_STDCXX11 #ENDIF#
#CLANG#TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF#
#PGI#TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF#
#USE_IBMXLC#TAU_STDCXX11_FLAG=-std=c++11 -DTAU_USE_STDCXX11 #ENDIF#
#PERFETTO#TAU_STDCXX11_FLAG=-std=c++17 -DTAU_USE_STDCXX11 #ENDIF#
#TAU_CRAY_AARCH64#TAU_CRAY_UPC_INCLUDE_FLAGS=$(INCLUDE_PATH_AARCH64)#ENDIF#
#UGNI#TAU_UGNI_OPT=-DTAU_UGNI #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) \
              $(PROFILEOPT104) $(PROFILEOPT106) $(PROFILEOPT107) \
              $(PROFILEOPT108) $(PROFILEOPT109) $(PROFILEOPT110) \
              $(PROFILEOPT111) $(PROFILEOPT112) $(PROFILEOPT113) $(PROFILEOPT114) \
              $(PROFILEOPT115) $(PROFILEOPT116) $(PROFILEOPT117) $(PROFILEOPT118) \
	      $(PROFILEOPT119) $(PROFILEOPT120) $(TRACEOPT) \
		  $(TAU_SOS_INCLUDE_OPTS) $(TAU_ADIOS_INCLUDE_OPTS) \
		  $(TAU_OTF2_INCLUDE_OPTS) $(TAU_PERFETTO_INCLUDE_OPTS)  $(TAU_CALIPER_INCLUDE_OPTS) \
                  $(TAU_CORESYMBOLICATION_INCLUDE_OPTS) $(TAU_ELF_BFD_PROFILEOPT) \
				  $(TAU_DWARF_PROFILEOPT) $(DWARFINC) $(TAU_UGNI_OPT)

##############################################
# 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#
#GNU#TAU_INTERNAL_FLAG1             = -fPIC #ENDIF#
#NEC_COMPILERS#TAU_INTERNAL_FLAG1   = -fPIC #ENDIF#
#CRAYXMT#TAU_INTERNAL_FLAG1             = #ENDIF#

#USE_PATHCC#TAU_INTERNAL_FLAG1      = -fPIC #ENDIF#
TAU_INTERNAL_FLAG1    = -fPIC #ENDIF##USE_INTELCXX#
#PGI#TAU_INTERNAL_FLAG1    = -fPIC #ENDIF#
#FX_AARCH64#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 -lnvidia-ml -L$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)/stubs -lcuda -L$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)  $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)#ENDIF#

#CUPTI_NONVML#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)/stubs -lcuda -L$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)  $(UPCC_LINK_PREFIX)-Wl,-rpath,$(subst include,,$(TAU_CUDA_INC))/$(TAU_LIBEX)#ENDIF#

#CUPTIPC#TAU_CUDA_LINKER_OPTS+=-lpcsamplingutil#ENDIF#

TAU_CUDA_LIBRARY=
#CUDA#TAU_CUDA_STATIC_LIBS=-lcudart_static -lpthread #ENDIF#
#############################################
############# TAU fpermissive flag used for CUDA code ########
TAU_PERMISSIVE_FLAG=-fpermissive
#PGI#TAU_PERMISSIVE_FLAG= #ENDIF#

#CUPTI#TAU_INTERNAL_FLAG2=-DTAU_CUPTI #ENDIF#
#CUPTIPC#TAU_INTERNAL_FLAG2=-DTAU_CUPTI -DTAU_CUPTIPC#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#

#PIN#TAU_PIN_LINKER_OPTS= -Wl,--hash-style=sysv $(PIN_ROOT)/intel64/runtime/pincrt/crtbeginS.o -Wl,-Bsymbolic -Wl,--version-script=$(PIN_ROOT)/source/include/pin/pintool.ver -fabi-version=2 -L$(PIN_ROOT)/intel64/runtime/pincrt -L$(PIN_ROOT)/intel64/lib -L$(PIN_ROOT)/intel64/lib-ext -L$(PIN_ROOT)/extras/xed-intel64/lib -lpin -lxed $(PIN_ROOT)/intel64/runtime/pincrt/crtendS.o -lpin3dwarf  -ldl-dynamic -nostdlib -lstlport-dynamic -lm-dynamic -lc-dynamic -lunwind-dynamic #ENDIF#
#ROCPROFILER#TAU_ROCPROFILER_LINKER_OPTS=-L$(TAU_ROCPROFILER)/lib -lrocprofiler64 $(TAU_ROCM_DIR)/lib/libhsa-runtime64.so -Wl,-rpath,$(TAU_ROCM_DIR)/lib -Wl,-rpath,$(TAU_ROCPROFILER)/lib #ENDIF#
#ROCPROFILERROCM6#TAU_ROCPROFILER_LINKER_OPTS=-L$(TAU_ROCPROFILER)/lib -lrocprofiler64 $(TAU_ROCM_DIR)/lib/libhsa-runtime64.so -Wl,-rpath,$(TAU_ROCM_DIR)/lib -Wl,-rpath,$(TAU_ROCPROFILER)/lib/rocprofiler #ENDIF#
#ROCPROFILERV2#TAU_ROCPROFILER_LINKER_OPTS=-L$(TAU_ROCPROFILER)/lib -lrocprofiler64v2 $(TAU_ROCM_DIR)/lib/libhsa-runtime64.so -Wl,-rpath,$(TAU_ROCM_DIR)/lib -Wl,-rpath,$(TAU_ROCPROFILER)/lib/rocprofiler #ENDIF#
#ROCPROFILERSDK#TAU_ROCPROFILER_LINKER_OPTS=-L$(TAUROCPROFSDK_DIR)/lib -lrocprofiler-sdk $(TAU_ROCM_DIR)/lib/libhsa-runtime64.so  -Wl,-rpath,$(TAU_ROCM_DIR)/lib  -Wl,-rpath,$(TAUROCPROFSDK_DIR)/lib -Wl,-rpath,$(TAUROCPROFSDK_DIR)/lib/rocprofiler-sdk #ENDIF#
#ROCPROFILERSDK_PC#TAU_ROCPROFILER_LINKER_OPTS+=-L$(ELFUTILS_LIB_DIR) -ldw -L$(TAUROCCOMGR_DIR)/lib -lamd_comgr -Wl,-rpath,$(TAUROCCOMGR_DIR)/lib #ENDIF#
#ROCTRACER#TAU_ROCTRACER_LINKER_OPTS=-L$(TAU_ROCTRACER_LIB_DIR) -lroctracer64 -Wl,-rpath,$(TAU_ROCTRACER_LIB_DIR) #ENDIF#
#ROCTRACERROCM6#TAU_ROCTRACER_LINKER_OPTS=-L$(TAU_ROCM_DIR)/lib -L$(TAU_ROCTRACER_LIB_DIR) -lroctracer64 -Wl,-rpath,$(TAU_ROCTRACER_LIB_DIR) -Wl,-rpath,$(TAU_ROCTRACER_LIB_DIR)/lib -Wl,-rpath,$(TAU_ROCTRACER_LIB_DIR)/lib/roctracer -Wl,-rpath,$(TAU_ROCTRACER_LIB_DIR)/roctracer #ENDIF#
#ROCMSMI#TAU_ROCMSMI_LINKER_OPTS=-L$(TAU_ROCM_SMI_LIB_DIR) -lrocm_smi64 -Wl,-rpath,$(TAU_ROCM_SMI_LIB_DIR) #ENDIF#
#LEVEL_ZERO#TAU_LEVEL_ZERO_LINKER_OPTS=-L$(TAU_L0_LIB_DIR) -lze_loader -Wl,-rpath,$(TAU_L0_LIB_DIR) #ENDIF#
#LEVEL_ZERO_OLD#TAU_LEVEL_ZERO_LINKER_OPTS=-L$(TAU_L0_LIB_DIR) -lze_loader -Wl,-rpath,$(TAU_L0_LIB_DIR) #ENDIF#
OTFLIB=/opt/ohpc/pub/libs/intel/openmpi5/otf2/3.1.1/lib
TAU_OTF2_LINKER_OPTS = -L$(OTFLIB) -lotf2 -lotf2 -Wl,-rpath,$(OTFLIB) #ENDIF##OTF2#
#PERFETTO#TAU_PERFETTO_LINKER_OPTS = $(TAUROOT)/utils/perfetto/libperfetto.a -lz #ENDIF#
#CRAYCNL_PMI#TAU_LINKER_OPT23=$(CRAY_PMI_POST_LINK_OPTS) -lpmi $(CRAY_XPMEM_POST_LINK_OPTS) -lxpmem -L/opt/cray/ugni/default/lib64 -lugni $(CRAY_UDREG_POST_LINK_OPTS) -ludreg $(CRAY_ALPS_POST_LINK_OPTS) -lalpslli -L/opt/cray/wlm_detect/default/lib64 -lwlm_detect -lalpsutil -lugni #ENDIF#
#CRAYCNL_PMI_FOUND#TAU_LINKER_OPT23=$(CRAY_PMI_POST_LINK_OPTS) -lpmi $(CRAY_XPMEM_POST_LINK_OPTS) -lxpmem -L/opt/cray/ugni/default/lib64 -lugni $(CRAY_UDREG_POST_LINK_OPTS) -ludreg $(CRAY_ALPS_POST_LINK_OPTS) -lalpslli -L/opt/cray/wlm_detect/default/lib64 -lwlm_detect -lalpsutil -lugni #ENDIF#
#TAU_LIKWID#TAU_LINKER_OPT24=-L$(LIKWIDDIR)/lib -Wl,-rpath,$(LIKWIDDIR)/lib -llikwid #ENDIF#
#CRAYPE_CLANG_SLURM#TAU_LINKER_OPT25=-L$(SLURMDIR)/lib64 -lslurm #ENDIF#
#CORESYMBOLICATION#TAU_CORESYMBOLICATION_LINKER_OPT=-F/System/Library/PrivateFrameworks -framework CoreSymbolication #ENDIF#
##IBM64LINUX_XLC##TAU_MVAPICH2_LINKER_OPTIONS=-lhwloc #ENDIF#
##TAU_IBM_XL_MVAPICH2_OPTS=$(TAU_MVAPICH2_LINKER_OPTIONS)#ENDIF##MPICH3_CONST#
DWARFLIB=
##############################################

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_LINKER_OPT23) $(TAU_LINKER_OPT24) $(TAU_LINKER_OPT25) \
                  $(TAU_LINKER_OPT26) $(TAU_CUDA_LINKER_OPTS) $(TAU_PYTHON_LINKER_OPTS)  \
                  $(TAU_ANDROID_LINKER_OPTS) $(TAU_BEACON_LINKER_OPTS) \
                  $(TAU_PIN_LINKER_OPTS) $(TAU_ROCPROFILER_LINKER_OPTS) \
                  $(TAU_ROCTRACER_LINKER_OPTS) $(TAU_LEVEL_ZERO_LINKER_OPTS) \
				  $(TAU_SOS_LINKER_OPTS) $(TAU_ADIOS_LINKER_OPTS) \
		  $(TAU_IBM_XL_MVAPICH2_OPTS) $(TAU_OTF2_LINKER_OPTS) $(TAU_PERFETTO_LINKER_OPTS) \
		  $(TAU_CORESYMBOLICATION_LINKER_OPT) $(DWARFLIB)

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

############# TAU Fortran ####################
TAU_LINKER=$(TAU_CXX)
#INTEL_FORTRAN##TAU_LINKER=$(TAU_F90) #ENDIF#
#TAU_LINKER=$(TAU_F90) #ENDIF##INTEL32_FORTRAN#
# 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#
#FX_AARCH64#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
#CLANG#TAU_COMPILER_SUITE_USED=clang #ENDIF#
#GNU#TAU_COMPILER_SUITE_USED=gnu #ENDIF#
#USE_IBMXLC#TAU_COMPILER_SUITE_USED=ibm #ENDIF#
TAU_COMPILER_SUITE_USED=intel #ENDIF##USE_INTELCXX#
#SOL2CC#TAU_COMPILER_SUITE_USED=sun #ENDIF#
#PGI#TAU_COMPILER_SUITE_USED=pgi #ENDIF#
#COMPINST_CRAYCC#TAU_COMPILER_SUITE_USED=cray #ENDIF#
#COMPINST_CRAYPE_CLANG#TAU_COMPILER_SUITE_USED=cray #ENDIF#
#HIPCC#TAU_COMPILER_SUITE_USED=clang #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_COMPILER_EXTRA_OPTIONS5)

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_LIBDL) -lm
#GNU46PLUS#TAU_EXTRA_MPI_LIBRARIES_FOR_GCC=$(TAU_MPI_NOWRAP_LIB) $(TAU_LIBDL) -lm #ENDIF#
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) $(TAU_LIBDL)

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	=      #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)/x86_64/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)/x86_64/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#
#COMPINST_CRAYPE_CLANG#TAU_MPI_COMPILE_INCLUDE= #ENDIF#
#HIPCC#TAU_MPI_COMPILE_INCLUDE=$(TAU_MPI_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) -lTAU $(SHLEXTRA1) $(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

TAU_SHARED_INSTALL_DIR_CMD=\
		if [ "X$?" != "X" ]; then mkdir -p $(TAU_SHAREDDIR) && cp -r $? $(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) "\
	-optPdtF95Opts="$(OPARIINCDIR) $(TAU_INCLUDE) $(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="$(TAU_SCOREP_EXTRA_FLAGS) $(TAU_MPI_FLIBS) $(TAU_LIBS) $(TAU_CXXLIBS) $(TAU_SHMEM_LIBS) $(TAU_STATIC_WRAPPERS) $(TAU_LDFLAGS) $(TAU_CUDA_STATIC_LIBS) $(TAU_USE_NO_PIE_ON_UBUNTU) "\
        -optSharedLinking="-L$(TAU_LIB_DIR)/shared$(TAU_CONFIG) -lTAU $(SHLEXTRA1) $(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_PMI_SHLIBS) $(TAU_USE_NO_PIE_ON_UBUNTU) \
				 $(TAU_LDFLAGS) $(TAU_LIBDL)"\
				-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)/shared$(TAU_CONFIG) -lTAU $(SHLEXTRA1) $(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 $($*)

GPTL_DEFINES=                                 
#E3SM#GPTL_DEFINES=-DTAU_GPTL_E3SM#ENDIF#

