|
Packit Service |
a1973e |
# Process this file with autoconf to produce a configure script.
|
|
Packit Service |
a1973e |
# File: configure.in
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# cross compile sample
|
|
Packit Service |
a1973e |
# ARCH=mips CC=scgcc ./configure --with-arch=mips --host=mips64el-gentoo-linux-gnu- --with-ffsll --with-libpfm4 --with-perf-events --with-virtualtimer=times --with-walltimer=gettimeofday --with-tls=__thread --with-CPU=mips
|
|
Packit Service |
a1973e |
# cross compiling should work differently...
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_PREREQ(2.59)
|
|
Packit Service |
a1973e |
AC_INIT(PAPI, 5.6.0.0, ptools-perfapi@icl.utk.edu)
|
|
Packit Service |
a1973e |
AC_CONFIG_SRCDIR([papi.c])
|
|
Packit Service |
a1973e |
AC_CONFIG_HEADER([config.h])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_DEFUN([AS_AC_EXPAND],
|
|
Packit Service |
a1973e |
[EXP_VAR=[$1]
|
|
Packit Service |
a1973e |
FROM_VAR=[$2]
|
|
Packit Service |
a1973e |
prefix_save=$prefix
|
|
Packit Service |
a1973e |
exec_prefix_save=$exec_prefix
|
|
Packit Service |
a1973e |
if test "x$prefix" = "xNONE"; then
|
|
Packit Service |
a1973e |
prefix="$ac_default_prefix"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "x$exec_prefix" = "xNONE"; then
|
|
Packit Service |
a1973e |
exec_prefix=$prefix
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
full_var="$FROM_VAR"
|
|
Packit Service |
a1973e |
while true;
|
|
Packit Service |
a1973e |
do
|
|
Packit Service |
a1973e |
new_full_var="`eval echo $full_var`"
|
|
Packit Service |
a1973e |
if test "x$new_full_var" = "x$full_var"; then
|
|
Packit Service |
a1973e |
break;
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
full_var=$new_full_var
|
|
Packit Service |
a1973e |
done
|
|
Packit Service |
a1973e |
full_var=$new_full_var
|
|
Packit Service |
a1973e |
AC_DEFINE_UNQUOTED([$1], "$full_var")
|
|
Packit Service |
a1973e |
prefix=$prefix_save
|
|
Packit Service |
a1973e |
exec_prefix=$exec_prefix_save ])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for architecture)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(arch,
|
|
Packit Service |
a1973e |
[ --with-arch=<arch> Specify architecture (uname -m)],
|
|
Packit Service |
a1973e |
[arch=$withval],
|
|
Packit Service |
a1973e |
[arch=`uname -m`])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($arch)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(bitmode,
|
|
Packit Service |
a1973e |
[ --with-bitmode=<32,64> Specify bit mode of library],
|
|
Packit Service |
a1973e |
[bitmode=$withval])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for OS)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(OS,
|
|
Packit Service |
a1973e |
[ --with-OS=<os> Specify operating system],
|
|
Packit Service |
a1973e |
[OS=$withval],
|
|
Packit Service |
a1973e |
[OS="`uname | tr '[A-Z]' '[a-z]'`"
|
|
Packit Service |
a1973e |
if (test "$OS" = "SunOS" || test "$OS" = "sunos"); then
|
|
Packit Service |
a1973e |
OS=solaris
|
|
Packit Service |
a1973e |
fi ])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($OS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for OS version)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(OSVER,
|
|
Packit Service |
a1973e |
[ --with-OSVER=<ver> Specify operating system version],
|
|
Packit Service |
a1973e |
[OSVER=$withval],
|
|
Packit Service |
a1973e |
[if test "$OS" != "bgp" -o "$OS" != "bgq"; then
|
|
Packit Service |
a1973e |
OSVER="`uname -r`"
|
|
Packit Service |
a1973e |
fi ])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($OSVER)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for perf_event workaround level)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(assumed_kernel,
|
|
Packit Service |
a1973e |
[ --with-assumed-kernel=<ver> Assume kernel version is <ver> for purposes of workarounds],
|
|
Packit Service |
a1973e |
[assumed_kernel=$withval; CFLAGS="$CFLAGS -DASSUME_KERNEL=\\\"$with_assumed_kernel\\\""],
|
|
Packit Service |
a1973e |
[assumed_kernel="autodetect"]
|
|
Packit Service |
a1973e |
)
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($assumed_kernel)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING([for if MIC should be used])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(mic,
|
|
Packit Service |
a1973e |
[ --with-mic To compile for Intel MIC ],
|
|
Packit Service |
a1973e |
[MIC=yes
|
|
Packit Service |
a1973e |
tls=__thread
|
|
Packit Service |
a1973e |
virtualtimer=cputime_id
|
|
Packit Service |
a1973e |
perf_events=yes
|
|
Packit Service |
a1973e |
walltimer=clock_realtime_hr
|
|
Packit Service |
a1973e |
ffsll=no
|
|
Packit Service |
a1973e |
cross_compiling=yes
|
|
Packit Service |
a1973e |
arch=k1om],
|
|
Packit Service |
a1973e |
[MIC=no])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($MIC)
|
|
Packit Service |
a1973e |
AC_SUBST(MIC)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -g"
|
|
Packit Service |
a1973e |
#If not set, set FFLAGS to null to prevent AC_PROG_F77 from defaulting it to -g -O2
|
|
Packit Service |
a1973e |
if test "x$FFLAGS" = "x"; then
|
|
Packit Service |
a1973e |
FFLAGS=""
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
OPTFLAGS="-O2"
|
|
Packit Service |
a1973e |
TOPTFLAGS="-O1"
|
|
Packit Service |
a1973e |
AC_PROG_CC([xlc icc gcc cc])
|
|
Packit Service |
a1973e |
AC_PROG_F77([xlf ifort gfortran f95 f90 f77])
|
|
Packit Service |
a1973e |
if test "x$F77" = "x"; then
|
|
Packit Service |
a1973e |
F77=
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_CHECK_PROG( [MPICC], mpicc, [mpicc], [])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# Lets figure out what CC actually is...
|
|
Packit Service |
a1973e |
# Used in later checks to set compiler specific options
|
|
Packit Service |
a1973e |
if `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1` ; then
|
|
Packit Service |
a1973e |
CC_COMMON_NAME="icc"
|
|
Packit Service |
a1973e |
elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1` ; then
|
|
Packit Service |
a1973e |
CC_COMMON_NAME="gcc"
|
|
Packit Service |
a1973e |
elif `$CC -qversion 2>&1 | grep 'IBM XL C' >/dev/null 2>&1;; then
|
|
Packit Service |
a1973e |
CC_COMMON_NAME="xlc"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
CC_COMMON_NAME="unknown"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#prevent icc warnings about overriding optimization settings set by AC_PROG_CC
|
|
Packit Service |
a1973e |
# remark #869: parameter was never referenced
|
|
Packit Service |
a1973e |
# remark #271: trailing comma is nonstandard
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "icc"; then
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -diag-disable 188,869,271"
|
|
Packit Service |
a1973e |
if test "$MIC" = "yes"; then
|
|
Packit Service |
a1973e |
CC="$CC -mmic -fPIC"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$F77" = "ifort" -a "$MIC" = "yes"; then
|
|
Packit Service |
a1973e |
F77="$F77 -mmic -fPIC"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_PROG_AWK
|
|
Packit Service |
a1973e |
AC_PROG_CPP
|
|
Packit Service |
a1973e |
AC_PROG_LN_S
|
|
Packit Service |
a1973e |
AC_PROG_MAKE_SET
|
|
Packit Service |
a1973e |
AC_PROG_RANLIB
|
|
Packit Service |
a1973e |
AC_GNU_SOURCE
|
|
Packit Service |
a1973e |
AC_HEADER_STDC
|
|
Packit Service |
a1973e |
AC_C_INLINE
|
|
Packit Service |
a1973e |
AC_HEADER_TIME
|
|
Packit Service |
a1973e |
AC_CHECK_HEADERS([sys/time.h c_asm.h intrinsics.h mach/mach_time.h sched.h])
|
|
Packit Service |
a1973e |
AC_CHECK_FUNCS([gethrtime read_real_time time_base_to_time clock_gettime mach_absolute_time sched_getcpu])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
# Check if the system provides dl* symbols without -ldl, and if not,
|
|
Packit Service |
a1973e |
# check for -ldl existance.
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING([for dlopen and dlerror symbols in base system])
|
|
Packit Service |
a1973e |
AC_TRY_LINK([#include <dlfcn.h>],
|
|
Packit Service |
a1973e |
[void *p = dlopen ("", 0); char *c = dlerror();],
|
|
Packit Service |
a1973e |
[dlsymbols_in_base="yes"], [dlsymbols_in_base="no"])
|
|
Packit Service |
a1973e |
if test "${dlsymbols_in_base}" = "yes"; then
|
|
Packit Service |
a1973e |
AC_MSG_RESULT([found])
|
|
Packit Service |
a1973e |
LDL=""
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_RESULT([not found])
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING([for dlopen and dlerror symbols in -ldl])
|
|
Packit Service |
a1973e |
SAVED_LIBS=${LIBS}
|
|
Packit Service |
a1973e |
LIBS="${LIBS} -ldl"
|
|
Packit Service |
a1973e |
AC_TRY_LINK([#include <dlfcn.h>],
|
|
Packit Service |
a1973e |
[void *p = dlopen ("", 0); char *c = dlerror();],
|
|
Packit Service |
a1973e |
[has_ldl="yes"], [has_ldl="no"])
|
|
Packit Service |
a1973e |
LIBS=${SAVED_LIBS}
|
|
Packit Service |
a1973e |
if test "${has_ldl}" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_RESULT([found])
|
|
Packit Service |
a1973e |
LDL="-ldl"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([cannot find dlopen and dlerror symbols neither in the base system libraries nor in -ldl])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_SUBST(LDL)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$OS" = "CLE"; then
|
|
Packit Service |
a1973e |
virtualtimer=times
|
|
Packit Service |
a1973e |
tls=__thread
|
|
Packit Service |
a1973e |
walltimer=cycle
|
|
Packit Service |
a1973e |
ffsll=yes
|
|
Packit Service |
a1973e |
cross_compiling=yes
|
|
Packit Service |
a1973e |
STATIC="-static"
|
|
Packit Service |
a1973e |
# _rtc is only defined when using the Cray compiler
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING([for _rtc intrinsic])
|
|
Packit Service |
a1973e |
rtc_ok=yes
|
|
Packit Service |
a1973e |
AC_TRY_LINK([#ifdef HAVE_INTRINSICS_H
|
|
Packit Service |
a1973e |
#include <intrinsics.h>
|
|
Packit Service |
a1973e |
#endif], [_rtc()], [AC_DEFINE(HAVE__RTC,1,[Define for _rtc() intrinsic.])],
|
|
Packit Service |
a1973e |
[rtc_ok=no
|
|
Packit Service |
a1973e |
AC_DEFINE(NO_RTC_INTRINSIC,1,[Define if _rtc() is not found.])])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($rtc_ok)
|
|
Packit Service |
a1973e |
elif test "$OS" = "bgp"; then
|
|
Packit Service |
a1973e |
CC=powerpc-bgp-linux-gcc
|
|
Packit Service |
a1973e |
F77=powerpc-bgp-linux-gfortran
|
|
Packit Service |
a1973e |
walltimer=cycle
|
|
Packit Service |
a1973e |
virtualtimer=perfctr
|
|
Packit Service |
a1973e |
tls=no
|
|
Packit Service |
a1973e |
ffsll=yes
|
|
Packit Service |
a1973e |
cross_compiling=yes
|
|
Packit Service |
a1973e |
elif test "$OS" = "bgq"; then
|
|
Packit Service |
a1973e |
AC_ARG_WITH(bgpm_installdir,
|
|
Packit Service |
a1973e |
[ --with-bgpm_installdir=<path> Specify the installation path of BGPM],
|
|
Packit Service |
a1973e |
[BGPM_INSTALL_DIR=$withval
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -I$withval"],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([BGQ CPU component requires installation path of BGPM (see --with-bgpm_installdir)])])
|
|
Packit Service |
a1973e |
bitmode=64
|
|
Packit Service |
a1973e |
tls=no
|
|
Packit Service |
a1973e |
elif test "$OS" = "linux"; then
|
|
Packit Service |
a1973e |
if test "$arch" = "ppc64" -o "$arch" = "x86_64"; then
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64" -a "$libdir" = '${exec_prefix}/lib'; then
|
|
Packit Service |
a1973e |
libdir='${exec_prefix}/lib64'
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "$OS" = "solaris"; then
|
|
Packit Service |
a1973e |
AC_CHECK_TYPE([hrtime_t],
|
|
Packit Service |
a1973e |
[AC_DEFINE(HAVE_HRTIME_T, 1, [Define if hrtime_t is defined in <sys/time.h>])],[],
|
|
Packit Service |
a1973e |
[#if HAVE_SYS_TIME_H
|
|
Packit Service |
a1973e |
#include <sys/time.h>
|
|
Packit Service |
a1973e |
#endif])
|
|
Packit Service |
a1973e |
if test "x$AR" = "x"; then
|
|
Packit Service |
a1973e |
AR=/usr/ccs/bin/ar
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "x$AR" = "x"; then
|
|
Packit Service |
a1973e |
AR=ar
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for native compiler for header generation)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(nativecc,
|
|
Packit Service |
a1973e |
[ --with-nativecc=<path> Specify native C compiler for header generation ],
|
|
Packit Service |
a1973e |
[nativecc=$withval],
|
|
Packit Service |
a1973e |
[nativecc=gcc])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($nativecc)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(tests,
|
|
Packit Service |
a1973e |
[ --with-tests=<ctests,ftests,"ctests ftests"> Specify which tests to run on install ],
|
|
Packit Service |
a1973e |
[tests=$withval],
|
|
Packit Service |
a1973e |
[tests="ctests ftests"])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for debug build)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(debug,
|
|
Packit Service |
a1973e |
[ --with-debug=<yes,memory,no> Build a debug version, debug version plus memory tracker or none ],
|
|
Packit Service |
a1973e |
[debug=$withval])
|
|
Packit Service |
a1973e |
if test "$debug" = "yes"; then
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "gcc"; then
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -g3"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
OPTFLAGS="-O0"
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" -DDEBUG -DPAPI_NO_MEMORY_MANAGEMENT"
|
|
Packit Service |
a1973e |
elif test "$debug" = "memory"; then
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "gcc"; then
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -g3"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
OPTFLAGS="-O0"
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" -DDEBUG"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
PAPICFLAGS+="-DPAPI_NO_MEMORY_MANAGEMENT"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($debug)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "gcc"; then
|
|
Packit Service |
a1973e |
gcc_version=`gcc -v 2>&1 | tail -n 1 | awk '{printf $3}'`
|
|
Packit Service |
a1973e |
major=`echo $gcc_version | sed 's/\([[^.]][[^.]]*\).*/\1/'`
|
|
Packit Service |
a1973e |
minor=`echo $gcc_version | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'`
|
|
Packit Service |
a1973e |
if (test "$major" -ge 4 || test "$major" = 3 -a "$minor" -ge 4); then
|
|
Packit Service |
a1973e |
CFLAGS+=" -Wextra"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
CFLAGS+=" -W"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
# -Wextra => -Woverride-init on gcc >= 4.2
|
|
Packit Service |
a1973e |
# This issues a warning (error under -Werror) for some libpfm4 code.
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING( for -Wno-override-init)
|
|
Packit Service |
a1973e |
oldcflags="$CFLAGS"
|
|
Packit Service |
a1973e |
CFLAGS+=" -Wall -Wextra -Werror -Wno-override-init"
|
|
Packit Service |
a1973e |
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
|
|
Packit Service |
a1973e |
[ struct A { int x; int y; };
|
|
Packit Service |
a1973e |
int main(void) { struct A a = {.x = 0, .y = 0, .y = 5 }; return a.x; }
|
|
Packit Service |
a1973e |
])],
|
|
Packit Service |
a1973e |
[HAVE_NO_OVERRIDE_INIT=1],
|
|
Packit Service |
a1973e |
[HAVE_NO_OVERRIDE_INIT=0] )
|
|
Packit Service |
a1973e |
CFLAGS="$oldcflags"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($HAVE_NO_OVERRIDE_INIT)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for CPU type)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(CPU,
|
|
Packit Service |
a1973e |
[ --with-CPU=<cpu> Specify CPU type],
|
|
Packit Service |
a1973e |
[CPU=$withval
|
|
Packit Service |
a1973e |
case "$CPU" in
|
|
Packit Service |
a1973e |
core|core2|i7|atom|p4|p3|opteron|athlon)
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
esac],
|
|
Packit Service |
a1973e |
[case "$OS" in
|
|
Packit Service |
a1973e |
aix)
|
|
Packit Service |
a1973e |
CPU="`/usr/sbin/lsattr -E -l proc0 | grep type | cut -d '_' -f 2 | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`"
|
|
Packit Service |
a1973e |
if test "$CPU" = ""; then
|
|
Packit Service |
a1973e |
CPU="`/usr/sbin/lsattr -E -l proc1 | grep type | cut -d '_' -f 2 | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`"
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
freebsd)
|
|
Packit Service |
a1973e |
family=`uname -m`
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$family" = "amd64"; then
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$family" = "i386"; then
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
darwin)
|
|
Packit Service |
a1973e |
family=`uname -m`
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
;;
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
linux)
|
|
Packit Service |
a1973e |
family=`uname -m`
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$family" = "x86_64"; then
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
CPU="x86"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$family" = "i686"; then
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS x86_cpuid_info.c"
|
|
Packit Service |
a1973e |
CPU="x86"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$family" = "ppc64"; then
|
|
Packit Service |
a1973e |
CPU_info="`cat /proc/cpuinfo | grep cpu | cut -d: -f2 | cut -d' ' -f2 | sed '2,$d'`"
|
|
Packit Service |
a1973e |
case "$CPU_info" in
|
|
Packit Service |
a1973e |
PPC970*) CPU="PPC970";;
|
|
Packit Service |
a1973e |
POWER5) CPU="POWER5";;
|
|
Packit Service |
a1973e |
POWER5+) CPU="POWER5+";;
|
|
Packit Service |
a1973e |
POWER6) CPU="POWER6";;
|
|
Packit Service |
a1973e |
POWER7) CPU="POWER7";;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
solaris)
|
|
Packit Service |
a1973e |
AC_CHECK_HEADER([libcpc.h],
|
|
Packit Service |
a1973e |
[CFLAGS="$CFLAGS -lcpc"
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <stdlib.h>
|
|
Packit Service |
a1973e |
#include <libcpc.h>
|
|
Packit Service |
a1973e |
int main() {
|
|
Packit Service |
a1973e |
// Check for libcpc 2
|
|
Packit Service |
a1973e |
if(CPC_VER_CURRENT == 2)
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[cpc_version=2],
|
|
Packit Service |
a1973e |
[cpc_version=0])],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libcpc is needed for running PAPI on Solaris]) ])
|
|
Packit Service |
a1973e |
processor=`uname -p`
|
|
Packit Service |
a1973e |
machinetype=`uname -m`
|
|
Packit Service |
a1973e |
if test "$processor" = "sparc"; then
|
|
Packit Service |
a1973e |
if test "$machinetype" = "sun4u"; then
|
|
Packit Service |
a1973e |
CPU=ultra
|
|
Packit Service |
a1973e |
AC_CHECK_LIB([cpc], [cpc_take_sample], [],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libcpc.a is needed on Solaris, install SUNWcpc]) ])
|
|
Packit Service |
a1973e |
elif test "$machinetype" = "sun4v"; then
|
|
Packit Service |
a1973e |
CPU=niagara2
|
|
Packit Service |
a1973e |
if test "$cpc_version" != "2"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([libcpc2 needed for Niagara 2])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([$machinetype not supported])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Only SPARC processors are supported on Solaris])
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
bgp)
|
|
Packit Service |
a1973e |
CPU=bgp ;;
|
|
Packit Service |
a1973e |
bgq)
|
|
Packit Service |
a1973e |
CPU=bgq ;;
|
|
Packit Service |
a1973e |
esac ])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($CPU)
|
|
Packit Service |
a1973e |
AC_DEFINE_UNQUOTED(CPU,$CPU,[cpu type])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# First set pthread-mutexes based on arch
|
|
Packit Service |
a1973e |
case $arch in
|
|
Packit Service |
a1973e |
aarch64|arm*)
|
|
Packit Service |
a1973e |
pthread_mutexes=yes
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -DUSE_PTHREAD_MUTEXES"
|
|
Packit Service |
a1973e |
echo "forcing use of pthread mutexes... " >&6
|
|
Packit Service |
a1973e |
;;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pthread-mutexes,
|
|
Packit Service |
a1973e |
[ --with-pthread-mutexes Specify use of pthread mutexes rather than custom PAPI locks],
|
|
Packit Service |
a1973e |
[pthread_mutexes=yes
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -DUSE_PTHREAD_MUTEXES"
|
|
Packit Service |
a1973e |
])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(ffsll,
|
|
Packit Service |
a1973e |
[ --with-ffsll Specify use of the ffsll() function ],
|
|
Packit Service |
a1973e |
[ffsll=$withval],
|
|
Packit Service |
a1973e |
[if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([ffsll must be specified for cross compile])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
didcheck=1
|
|
Packit Service |
a1973e |
AC_CHECK_FUNC(ffsll,[ffsll=yes],[ffsll=no]) ])
|
|
Packit Service |
a1973e |
if test "$ffsll" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_FFSLL, 1, This platform has the ffsll() function)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$didcheck" != "1"; then
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for ffsll)
|
|
Packit Service |
a1973e |
if test "$ffsll" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_FFSLL, 1, This platform has the ffsll() function)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($ffsll)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working gettid)
|
|
Packit Service |
a1973e |
AC_LINK_IFELSE([AC_LANG_SOURCE([#include <sys/types.h>
|
|
Packit Service |
a1973e |
main() { pid_t a = gettid(); }])],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(yes)
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_GETTID, 1, [Full gettid function])],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working syscall(SYS_gettid))
|
|
Packit Service |
a1973e |
AC_LINK_IFELSE([AC_LANG_SOURCE([#include <sys/types.h>
|
|
Packit Service |
a1973e |
#include <sys/syscall.h>
|
|
Packit Service |
a1973e |
main() { pid_t a = syscall(SYS_gettid); }])],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(yes)
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_SYSCALL_GETTID, 1, [gettid syscall function])],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)]) ])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(walltimer,
|
|
Packit Service |
a1973e |
[ --with-walltimer=<gettimeofday,mmtimer,clock_realtime_hr,clock_realtime,cycle> Specify realtime timer ],
|
|
Packit Service |
a1973e |
[walltimer=$withval],
|
|
Packit Service |
a1973e |
[if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([walltimer must be specified for cross compile])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working MMTIMER)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <fcntl.h>
|
|
Packit Service |
a1973e |
#include <errno.h>
|
|
Packit Service |
a1973e |
#include <stdlib.h>
|
|
Packit Service |
a1973e |
#include <sys/ioctl.h>
|
|
Packit Service |
a1973e |
#include <linux/mmtimer.h>
|
|
Packit Service |
a1973e |
#ifndef MMTIMER_FULLNAME
|
|
Packit Service |
a1973e |
#define MMTIMER_FULLNAME "/dev/mmtimer"
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
int main() {
|
|
Packit Service |
a1973e |
int offset;
|
|
Packit Service |
a1973e |
int fd;
|
|
Packit Service |
a1973e |
if((fd = open(MMTIMER_FULLNAME, O_RDONLY)) == -1)
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
if ((offset = ioctl(fd, MMTIMER_GETOFFSET, 0)) < 0)
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
close(fd);
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[walltimer="mmtimer"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(yes)],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working CLOCK_REALTIME_HR POSIX 1b timer)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <stdlib.h>
|
|
Packit Service |
a1973e |
#include <stdio.h>
|
|
Packit Service |
a1973e |
#include <time.h>
|
|
Packit Service |
a1973e |
#include <syscall.h>
|
|
Packit Service |
a1973e |
main() {
|
|
Packit Service |
a1973e |
struct timespec t1, t2;
|
|
Packit Service |
a1973e |
double seconds;
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_REALTIME_HR,&t1) == -1) exit(1);
|
|
Packit Service |
a1973e |
sleep(1);
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_REALTIME_HR,&t2) == -1) exit(1);
|
|
Packit Service |
a1973e |
seconds = ((double)t2.tv_sec + (double)t2.tv_nsec/1000000000.0) - ((double)t1.tv_sec + (double)t1.tv_nsec/1000000000.0);
|
|
Packit Service |
a1973e |
if (seconds > 1.0)
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[walltimer="clock_realtime_hr"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(yes)],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working CLOCK_REALTIME POSIX 1b timer)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <stdlib.h>
|
|
Packit Service |
a1973e |
#include <stdio.h>
|
|
Packit Service |
a1973e |
#include <time.h>
|
|
Packit Service |
a1973e |
#include <syscall.h>
|
|
Packit Service |
a1973e |
main() {
|
|
Packit Service |
a1973e |
struct timespec t1, t2;
|
|
Packit Service |
a1973e |
double seconds;
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_REALTIME,&t1) == -1) exit(1);
|
|
Packit Service |
a1973e |
sleep(1);
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_REALTIME,&t2) == -1) exit(1);
|
|
Packit Service |
a1973e |
seconds = ((double)t2.tv_sec + (double)t2.tv_nsec/1000000000.0) - ((double)t1.tv_sec + (double)t1.tv_nsec/1000000000.0);
|
|
Packit Service |
a1973e |
if (seconds > 1.0)
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[walltimer="clock_realtime"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(yes) ],
|
|
Packit Service |
a1973e |
[walltimer="cycle"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(no)]) ]) ]) ])
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for which real time clock to use)
|
|
Packit Service |
a1973e |
if test "$walltimer" = "gettimeofday"; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_GETTIMEOFDAY, 1, [Normal gettimeofday timer])
|
|
Packit Service |
a1973e |
elif test "$walltimer" = "mmtimer"; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_MMTIMER, 1, [Altix memory mapped global cycle counter])
|
|
Packit Service |
a1973e |
altix="-DALTIX"
|
|
Packit Service |
a1973e |
elif test "$walltimer" = "clock_realtime_hr"; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [POSIX 1b clock])
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CLOCK_GETTIME_REALTIME_HR, 1, [POSIX 1b realtime HR clock])
|
|
Packit Service |
a1973e |
elif test "$walltimer" = "clock_realtime"; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [POSIX 1b clock])
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CLOCK_GETTIME_REALTIME, 1, [POSIX 1b realtime clock])
|
|
Packit Service |
a1973e |
elif test "$walltimer" = "cycle"; then
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CYCLE, 1, [Native access to a hardware cycle counter])
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Unknown value for walltimer])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($walltimer)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
SAVED_LIBS=$LIBS
|
|
Packit Service |
a1973e |
SAVED_LDFLAGS=$LDFLAGS
|
|
Packit Service |
a1973e |
SAVED_CFLAGS=$CFLAGS
|
|
Packit Service |
a1973e |
LIBS=""
|
|
Packit Service |
a1973e |
LDFLAGS=""
|
|
Packit Service |
a1973e |
CFLAGS="-pthread"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(tls,
|
|
Packit Service |
a1973e |
[ --with-tls=<keyword> This platform supports thread local storage with a keyword ],
|
|
Packit Service |
a1973e |
[tls=$withval],
|
|
Packit Service |
a1973e |
[if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([tls must be specified for cross compile])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working __thread)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <pthread.h>
|
|
Packit Service |
a1973e |
#include <unistd.h>
|
|
Packit Service |
a1973e |
extern __thread int i;
|
|
Packit Service |
a1973e |
static int res1, res2;
|
|
Packit Service |
a1973e |
void thread_main (void *arg) {
|
|
Packit Service |
a1973e |
i = (int)arg;
|
|
Packit Service |
a1973e |
sleep (1);
|
|
Packit Service |
a1973e |
if ((int)arg == 1)
|
|
Packit Service |
a1973e |
res1 = (i == (int)arg);
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
res2 = (i == (int)arg);
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
__thread int i;
|
|
Packit Service |
a1973e |
int main () {
|
|
Packit Service |
a1973e |
pthread_t t1, t2;
|
|
Packit Service |
a1973e |
i = 5;
|
|
Packit Service |
a1973e |
pthread_create (&t1, NULL, thread_main, (void *)1);
|
|
Packit Service |
a1973e |
pthread_create (&t2, NULL, thread_main, (void *)2);
|
|
Packit Service |
a1973e |
pthread_join (t1, NULL);
|
|
Packit Service |
a1973e |
pthread_join (t2, NULL);
|
|
Packit Service |
a1973e |
return !(res1 + res2 == 2);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(yes)
|
|
Packit Service |
a1973e |
tls="__thread"],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
tls="no" ])
|
|
Packit Service |
a1973e |
if test "$OS" = "linux"; then
|
|
Packit Service |
a1973e |
if test "x$tls" = "x__thread"; then
|
|
Packit Service |
a1973e |
# On some linux distributions, TLS works in executables, but linking against
|
|
Packit Service |
a1973e |
# a shared library containing TLS fails with: undefined reference to `__tls_get_addr'
|
|
Packit Service |
a1973e |
rm -f conftest.c conftest.so conftest
|
|
Packit Service |
a1973e |
echo "static __thread int foo; void main () { foo = 5; }" > conftest.c
|
|
Packit Service |
a1973e |
gcc -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
|
|
Packit Service |
a1973e |
gcc -o conftest conftest.so > /dev/null 2>&1
|
|
Packit Service |
a1973e |
if test ! -f conftest; then
|
|
Packit Service |
a1973e |
AC_MSG_WARN([Disabling usage of __thread.]);
|
|
Packit Service |
a1973e |
tls="no"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
rm -f conftest.c conftest.so conftest
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi])
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for high performance thread local storage)
|
|
Packit Service |
a1973e |
if test "$tls" = "no"; then
|
|
Packit Service |
a1973e |
NOTLS="-DNO_TLS"
|
|
Packit Service |
a1973e |
elif test "x$tls" != "x"; then
|
|
Packit Service |
a1973e |
if test "$tls" = "yes"; then
|
|
Packit Service |
a1973e |
tls="__thread"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
NOTLS="-DUSE_COMPILER_TLS"
|
|
Packit Service |
a1973e |
AC_DEFINE_UNQUOTED(HAVE_THREAD_LOCAL_STORAGE,$tls,[Keyword for per-thread variables])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($tls)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(virtualtimer,
|
|
Packit Service |
a1973e |
[ --with-virtualtimer=<clock_thread_cputime_id,times,proc,getrusage,perfctr> Specify per-thread virtual timer ],
|
|
Packit Service |
a1973e |
[virtualtimer=$withval],
|
|
Packit Service |
a1973e |
[if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([virtualtimer must be specified for cross compile])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working CLOCK_THREAD_CPUTIME_ID POSIX 1b timer)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <pthread.h>
|
|
Packit Service |
a1973e |
#include <sys/signal.h>
|
|
Packit Service |
a1973e |
#include <sys/times.h>
|
|
Packit Service |
a1973e |
#include <assert.h>
|
|
Packit Service |
a1973e |
#include <stdio.h>
|
|
Packit Service |
a1973e |
#include <sys/types.h>
|
|
Packit Service |
a1973e |
#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <sys/unistd.h>
|
|
Packit Service |
a1973e |
#include <syscall.h>
|
|
Packit Service |
a1973e |
#include <stdlib.h>
|
|
Packit Service |
a1973e |
#if !defined( SYS_gettid )
|
|
Packit Service |
a1973e |
#define SYS_gettid 1105
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
struct timespec threadone = { 0, 0 };
|
|
Packit Service |
a1973e |
struct timespec threadtwo = { 0, 0 };
|
|
Packit Service |
a1973e |
pthread_t threadOne, threadTwo;
|
|
Packit Service |
a1973e |
volatile int done = 0;
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
int gettid() {
|
|
Packit Service |
a1973e |
return syscall( SYS_gettid );
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
void *doThreadOne( void * v ) {
|
|
Packit Service |
a1973e |
while (!done)
|
|
Packit Service |
a1973e |
sleep(1);
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_THREAD_CPUTIME_ID,&threadone) == -1) {
|
|
Packit Service |
a1973e |
perror("clock_gettime(CLOCK_THREAD_CPUTIME_ID)");
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
return 0;
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
void *doThreadTwo( void * v ) {
|
|
Packit Service |
a1973e |
long i, j = 0xdeadbeef;
|
|
Packit Service |
a1973e |
for( i = 0; i < 0xFFFFFFF; ++i ) { j = j ^ i; }
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if (syscall(__NR_clock_gettime,CLOCK_THREAD_CPUTIME_ID,&threadtwo) == -1) {
|
|
Packit Service |
a1973e |
perror("clock_gettime(CLOCK_THREAD_CPUTIME_ID)");
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
done = 1;
|
|
Packit Service |
a1973e |
return j;
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
int main( int argc, char ** argv ) {
|
|
Packit Service |
a1973e |
int status = pthread_create( & threadOne, NULL, doThreadOne, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_create( & threadTwo, NULL, doThreadTwo, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_join( threadTwo, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_join( threadOne, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
if ((threadone.tv_sec != threadtwo.tv_sec) || (threadone.tv_nsec != threadtwo.tv_nsec))
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
else {
|
|
Packit Service |
a1973e |
fprintf(stderr,"T1 %ld %ld T2 %ld %ld\n",threadone.tv_sec,threadone.tv_nsec,threadtwo.tv_sec,threadtwo.tv_nsec);
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(yes)
|
|
Packit Service |
a1973e |
virtualtimer="clock_thread_cputime_id"],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
# *** Checks for working per thread timer***
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for working per-thread times() timer)
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <pthread.h>
|
|
Packit Service |
a1973e |
#include <sys/signal.h>
|
|
Packit Service |
a1973e |
#include <sys/times.h>
|
|
Packit Service |
a1973e |
#include <assert.h>
|
|
Packit Service |
a1973e |
#include <stdio.h>
|
|
Packit Service |
a1973e |
#include <sys/types.h>
|
|
Packit Service |
a1973e |
#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <sys/unistd.h>
|
|
Packit Service |
a1973e |
#include <syscall.h>
|
|
Packit Service |
a1973e |
#include <stdlib.h>
|
|
Packit Service |
a1973e |
#if !defined( SYS_gettid )
|
|
Packit Service |
a1973e |
#define SYS_gettid 1105
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
long threadone = 0, threadtwo = 0;
|
|
Packit Service |
a1973e |
pthread_t threadOne, threadTwo;
|
|
Packit Service |
a1973e |
volatile int done = 0;
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
int gettid() {
|
|
Packit Service |
a1973e |
return syscall( SYS_gettid );
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
int doThreadOne( void * v ) {
|
|
Packit Service |
a1973e |
struct tms tm;
|
|
Packit Service |
a1973e |
int status;
|
|
Packit Service |
a1973e |
while (!done)
|
|
Packit Service |
a1973e |
sleep(1);
|
|
Packit Service |
a1973e |
status = times( & tm );
|
|
Packit Service |
a1973e |
assert( status != -1 );
|
|
Packit Service |
a1973e |
threadone = tm.tms_utime;
|
|
Packit Service |
a1973e |
return 0;
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
int doThreadTwo( void * v ) {
|
|
Packit Service |
a1973e |
struct tms tm;
|
|
Packit Service |
a1973e |
long i, j = 0xdeadbeef;
|
|
Packit Service |
a1973e |
int status;
|
|
Packit Service |
a1973e |
for( i = 0; i < 0xFFFFFFF; ++i ) { j = j ^ i; }
|
|
Packit Service |
a1973e |
status = times( & tm );
|
|
Packit Service |
a1973e |
assert( status != -1 );
|
|
Packit Service |
a1973e |
threadtwo = tm.tms_utime;
|
|
Packit Service |
a1973e |
done = 1;
|
|
Packit Service |
a1973e |
return j;
|
|
Packit Service |
a1973e |
}
|
|
Packit Service |
a1973e |
int main( int argc, char ** argv ) {
|
|
Packit Service |
a1973e |
int status = pthread_create( & threadOne, NULL, doThreadOne, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_create( & threadTwo, NULL, doThreadTwo, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_join( threadTwo, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
status = pthread_join( threadOne, NULL );
|
|
Packit Service |
a1973e |
assert( status == 0 );
|
|
Packit Service |
a1973e |
return (threadone == threadtwo);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(yes)
|
|
Packit Service |
a1973e |
virtualtimer="times"],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)
|
|
Packit Service |
a1973e |
virtualtimer="default"]) ]) ])
|
|
Packit Service |
a1973e |
LDFLAGS=$SAVED_LDFLAGS
|
|
Packit Service |
a1973e |
CFLAGS=$SAVED_CFLAGS
|
|
Packit Service |
a1973e |
LIBS=$SAVED_LIBS
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for which virtual timer to use)
|
|
Packit Service |
a1973e |
case "$virtualtimer" in
|
|
Packit Service |
a1973e |
times)
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_PER_THREAD_TIMES, 1, [Working per thread timer]) ;;
|
|
Packit Service |
a1973e |
getrusage)
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_PER_THREAD_GETRUSAGE, 1, [Working per thread getrusage]) ;;
|
|
Packit Service |
a1973e |
clock_thread_cputime_id)
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_CLOCK_GETTIME_THREAD, CLOCK_THREAD_CPUTIME_ID, [POSIX 1b per-thread clock]) ;;
|
|
Packit Service |
a1973e |
proc|default|perfctr)
|
|
Packit Service |
a1973e |
AC_DEFINE(USE_PROC_PTTIMER, 1, [Use /proc for per-thread times])
|
|
Packit Service |
a1973e |
AC_DEFINE(USE_PERFCTR_PTTIMER, 1, [Use the perfctr virtual TSC for per-thread times]) ;;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($virtualtimer)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$OS" = "aix"; then
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pmapi,
|
|
Packit Service |
a1973e |
[ --with-pmapi=<path> Specify path of pmapi on aix system ],
|
|
Packit Service |
a1973e |
[PMAPI=$withval],
|
|
Packit Service |
a1973e |
[PMAPI="/usr/pmapi"])
|
|
Packit Service |
a1973e |
LIBS="-L$PMAPI/lib -lpmapi"
|
|
Packit Service |
a1973e |
CPPFLAGS="$CPPFLAGS -I$PMAPI/include"
|
|
Packit Service |
a1973e |
AC_CHECK_LIB([pmapi], [pm_initialize],
|
|
Packit Service |
a1973e |
[PMINIT="-DPM_INITIALIZE"],
|
|
Packit Service |
a1973e |
[AC_CHECK_LIB([pmapi], [pm_init],
|
|
Packit Service |
a1973e |
[PMINIT="-DPM_INIT"],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libpmapi.a not found, rerun configure with different flags]) ]) ])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for static user preset events)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(static_user_events,
|
|
Packit Service |
a1973e |
[ --with-static-user-events Build with a static user events file.],
|
|
Packit Service |
a1973e |
[STATIC_USER_EVENTS=$withval],
|
|
Packit Service |
a1973e |
[STATIC_USER_EVENTS=no])
|
|
Packit Service |
a1973e |
if test "$STATIC_USER_EVENTS" = "yes"; then
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" -DSTATIC_USER_EVENTS"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($STATIC_USER_EVENTS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for static PAPI preset events)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(static_papi_events,
|
|
Packit Service |
a1973e |
[ --with-static-papi-events Build with a static papi events file.],
|
|
Packit Service |
a1973e |
[STATIC_PAPI_EVENTS=$withval],
|
|
Packit Service |
a1973e |
[STATIC_PAPI_EVENTS=yes])
|
|
Packit Service |
a1973e |
if test "$STATIC_PAPI_EVENTS" = "yes"; then
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" -DSTATIC_PAPI_EVENTS_TABLE"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($STATIC_PAPI_EVENTS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for whether to build static library)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(static_lib,
|
|
Packit Service |
a1973e |
[ --with-static-lib=<yes,no> Build a static library],
|
|
Packit Service |
a1973e |
[static_lib=$withval],
|
|
Packit Service |
a1973e |
[static_lib=yes])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($static_lib)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for whether to build shared library)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(shared_lib,
|
|
Packit Service |
a1973e |
[ --with-shared-lib=<yes,no> Build a shared library],
|
|
Packit Service |
a1973e |
[shared_lib=$withval],
|
|
Packit Service |
a1973e |
[shared_lib=yes])
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($shared_lib)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$shared_lib" = "no" -a "$static_lib" = "no"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR(Both shared and static libs are disabled)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$shared_lib" = "yes"; then
|
|
Packit Service |
a1973e |
papiLIBS="shared"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$static_lib" = "yes"; then
|
|
Packit Service |
a1973e |
papiLIBS="$papiLIBS static"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for static compile of tests and utilities)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(static_tools,
|
|
Packit Service |
a1973e |
[ --with-static-tools Specify static compile of tests and utilities],
|
|
Packit Service |
a1973e |
[STATIC="-static"
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(yes)],
|
|
Packit Service |
a1973e |
[AC_MSG_RESULT(no)])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$static_lib" = "no"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR(Building tests and utilities static but no static papi library to be built)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for linking with papi shared library of tests and utilities)
|
|
Packit Service |
a1973e |
AC_ARG_WITH(shlib_tools,
|
|
Packit Service |
a1973e |
[ --with-shlib-tools Specify linking with papi library of tests and utilities],
|
|
Packit Service |
a1973e |
[shlib_tools=yes
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(yes)],
|
|
Packit Service |
a1973e |
[shlib_tools=no
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(no)])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$shlib_tools" = "yes"; then
|
|
Packit Service |
a1973e |
if test "$shared_lib" != "yes"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR(Building static but specified shared linking for tests and utilities)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$STATIC" = "-static"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Building shared but specified static linking])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
LINKLIB='$(SHLIB)'
|
|
Packit Service |
a1973e |
elif test "$shlib_tools" = "no"; then
|
|
Packit Service |
a1973e |
if test "$static_lib" != "yes"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Building shared but specified static linking for tests and utilities])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
LINKLIB='$(LIBRARY)'
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
# perfctr
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
perfctr=0
|
|
Packit Service |
a1973e |
force_perfctr=no
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfctr,
|
|
Packit Service |
a1973e |
[ --with-perfctr Specify perfctr as the performance interface ],
|
|
Packit Service |
a1973e |
force_perfctr=yes
|
|
Packit Service |
a1973e |
[user_specified_interface=perfctr
|
|
Packit Service |
a1973e |
if test "$arch" != "ppc64"; then
|
|
Packit Service |
a1973e |
perfctr=6
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
perfctr=7
|
|
Packit Service |
a1973e |
fi],
|
|
Packit Service |
a1973e |
[perfctr=0])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$cross_compiling" = "no" ; then
|
|
Packit Service |
a1973e |
AC_CHECK_FILE(/sys/class/perfctr,[perfctr=7],[AC_CHECK_FILE(/dev/perfctr,[perfctr=6])])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$perfctr" != 0; then
|
|
Packit Service |
a1973e |
pfm_incdir="libpfm-3.y/include/"
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for perfctr version)
|
|
Packit Service |
a1973e |
if test "$perfctr" = 7 -a "$arch" != "ppc64"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Perfctr 2.7.x only works on PPC64 machines. Patch kernel with 2.6.x.])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT(2.$perfctr)
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfctr_root,
|
|
Packit Service |
a1973e |
[ --with-perfctr-root=<path> Specify path to source tree (for use by developers only) ],
|
|
Packit Service |
a1973e |
[perfctr_root=$withval
|
|
Packit Service |
a1973e |
user_specified_interface=perfctr])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfctr_prefix,
|
|
Packit Service |
a1973e |
[ --with-perfctr-prefix=<path> Specify prefix to installed perfctr distribution ],
|
|
Packit Service |
a1973e |
[perfctr_prefix=$withval
|
|
Packit Service |
a1973e |
user_specified_interface=perfctr])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfctr_incdir,
|
|
Packit Service |
a1973e |
[ --with-perfctr-incdir=<path> Specify directory of perfctr header files in non-standard location ],
|
|
Packit Service |
a1973e |
[perfctr_incdir=$withval
|
|
Packit Service |
a1973e |
user_specified_interface=perfctr])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfctr_libdir,
|
|
Packit Service |
a1973e |
[ --with-perfctr-libdir=<path> Specify directory of perfctr library in non-standard location ],
|
|
Packit Service |
a1973e |
[perfctr_libdir=$withval
|
|
Packit Service |
a1973e |
user_specified_interface=perfctr])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$perfctr" != 0; then
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
dotest=0
|
|
Packit Service |
a1973e |
if test "x$perfctr_root" != "x"; then
|
|
Packit Service |
a1973e |
LIBS="-L$perfctr_root/usr.lib -lperfctr"
|
|
Packit Service |
a1973e |
CPPFLAGS="$CPPFLAGS -I$perfctr_root/usr.lib -I$perfctr_root/linux/include"
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
elif test "x$perfctr_prefix" != "x"; then
|
|
Packit Service |
a1973e |
LIBS="-L$perfctr_prefix/lib -lperfctr"
|
|
Packit Service |
a1973e |
CPPFLAGS="$CPPFLAGS -I$perfctr_prefix/include"
|
|
Packit Service |
a1973e |
perfctr_libdir="$perfctr_prefix/lib"
|
|
Packit Service |
a1973e |
perfctr_incdir="$perfctr_prefix/include"
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
if test "x$perfctr_libdir" != "x"; then
|
|
Packit Service |
a1973e |
LIBS="-L$perfctr_libdir -lperfctr"
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "x$perfctr_incdir" != "x"; then
|
|
Packit Service |
a1973e |
CPPFLAGS="-I$perfctr_incdir"
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$dotest" = 1; then
|
|
Packit Service |
a1973e |
AC_CHECK_LIB([perfctr], [vperfctr_open],
|
|
Packit Service |
a1973e |
[AC_CHECK_HEADERS([libperfctr.h],
|
|
Packit Service |
a1973e |
[oCFLAGS=$CFLAGS
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -static"
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <stdlib.h>
|
|
Packit Service |
a1973e |
#include "libperfctr.h"
|
|
Packit Service |
a1973e |
int main() {
|
|
Packit Service |
a1973e |
if ((PERFCTR_ABI_VERSION >> 24) != 5)
|
|
Packit Service |
a1973e |
exit(1);
|
|
Packit Service |
a1973e |
exit(0);
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[perfctr=6],
|
|
Packit Service |
a1973e |
[perfctr=7])
|
|
Packit Service |
a1973e |
CFLAGS=$oCFLAGS],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libperfctr.h not found, rerun configure with different flags])])],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libperfctr.a not found, rerun configure with different flags]) ])
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_LIBPERFCTR_H,1,[perfctr header file])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
user_specified_interface=no
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
# perfmon
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
old_pfmv2=n
|
|
Packit Service |
a1973e |
perfmon=0
|
|
Packit Service |
a1973e |
perfmon2=no
|
|
Packit Service |
a1973e |
force_perfmon2=no
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perfmon,
|
|
Packit Service |
a1973e |
[ --with-perfmon=<x.y> Specify perfmon as the performance interface and specify version],
|
|
Packit Service |
a1973e |
[perfmon=$withval
|
|
Packit Service |
a1973e |
user_specified_interface=perfmon
|
|
Packit Service |
a1973e |
force_perfmon2=yes
|
|
Packit Service |
a1973e |
pfm_incdir="libpfm-3.y/include"
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | sed 's/^[ \t]*//;s/[ \t]*$//'`
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | grep -e '[[1-9]]\.[[0-9]][[0-9]]*'`
|
|
Packit Service |
a1973e |
if test "x$perfmon" = "x"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR("Badly formed perfmon version string")
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | sed 's/\.//'`
|
|
Packit Service |
a1973e |
if test $perfmon -gt 20; then
|
|
Packit Service |
a1973e |
perfmon2=yes
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test $perfmon -lt 25; then
|
|
Packit Service |
a1973e |
old_pfmv2=y
|
|
Packit Service |
a1973e |
PFMCFLAGS="-DPFMLIB_OLD_PFMV2"
|
|
Packit Service |
a1973e |
fi],
|
|
Packit Service |
a1973e |
[perfmon=0
|
|
Packit Service |
a1973e |
if test "$cross_compiling" = "no" ; then
|
|
Packit Service |
a1973e |
AC_CHECK_FILE(/sys/kernel/perfmon/version,
|
|
Packit Service |
a1973e |
[perfmon=`cat /sys/kernel/perfmon/version`],
|
|
Packit Service |
a1973e |
[AC_CHECK_FILE(/proc/perfmon,
|
|
Packit Service |
a1973e |
[perfmon=`cat /proc/perfmon | grep version | cut -d: -f2`],
|
|
Packit Service |
a1973e |
[perfmon=0])])
|
|
Packit Service |
a1973e |
if test "$perfmon" != 0; then
|
|
Packit Service |
a1973e |
pfm_incdir="libpfm-3.y/include"
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | sed 's/^[ \t]*//;s/[ \t]*$//'`
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | grep -e '[[1-9]]\.[[0-9]][[0-9]]*'`
|
|
Packit Service |
a1973e |
perfmon=`echo ${perfmon} | sed 's/\.//'`
|
|
Packit Service |
a1973e |
if test $perfmon -gt 20; then
|
|
Packit Service |
a1973e |
perfmon2=yes
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test $perfmon -lt 25; then
|
|
Packit Service |
a1973e |
# must be y, not yes, or libpfm breaks
|
|
Packit Service |
a1973e |
old_pfmv2="y"
|
|
Packit Service |
a1973e |
PFMCFLAGS="-DPFMLIB_OLD_PFMV2"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
force_pfm_incdir=no
|
|
Packit Service |
a1973e |
# default
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pfm_root,
|
|
Packit Service |
a1973e |
[ --with-pfm-root=<path> Specify path to source tree (for use by developers only) ],
|
|
Packit Service |
a1973e |
[pfm_root=$withval
|
|
Packit Service |
a1973e |
pfm_incdir=$withval/include
|
|
Packit Service |
a1973e |
pfm_libdir=$withval/lib])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pfm_prefix,
|
|
Packit Service |
a1973e |
[ --with-pfm-prefix=<path> Specify prefix to installed pfm distribution ],
|
|
Packit Service |
a1973e |
[pfm_prefix=$withval
|
|
Packit Service |
a1973e |
pfm_incdir=$pfm_prefix/include
|
|
Packit Service |
a1973e |
pfm_libdir=$pfm_prefix/lib])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pfm_incdir,
|
|
Packit Service |
a1973e |
[ --with-pfm-incdir=<path> Specify directory of pfm header files in non-standard location ],
|
|
Packit Service |
a1973e |
[pfm_incdir=$withval])
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pfm_libdir,
|
|
Packit Service |
a1973e |
[ --with-pfm-libdir=<path> Specify directory of pfm library in non-standard location ],
|
|
Packit Service |
a1973e |
[pfm_libdir=$withval])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# if these are both empty, it means we haven't set either pfm_prefix or pfm_root
|
|
Packit Service |
a1973e |
# which would have set them. Thus it means that we set this to our included
|
|
Packit Service |
a1973e |
# libpfm4 library. Shame on the person that sets one but not the other.
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "x$pfm_incdir" = "x" -a "x$pfm_libdir" = "x"; then
|
|
Packit Service |
a1973e |
pfm_root="libpfm4"
|
|
Packit Service |
a1973e |
pfm_incdir="libpfm4/include"
|
|
Packit Service |
a1973e |
pfm_libdir="libpfm4/lib"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
# Linux perf_event/perf_counter
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "x$mic" = "xno"; then
|
|
Packit Service |
a1973e |
perf_events=no
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
force_perf_events=no
|
|
Packit Service |
a1973e |
disable_uncore=yes
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(perf_events,
|
|
Packit Service |
a1973e |
[ --with-perf-events Specify use of Linux Performance Event (requires kernel 2.6.32 or greater)],
|
|
Packit Service |
a1973e |
[force_perf_events=yes
|
|
Packit Service |
a1973e |
user_specified_interface=pe])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# RDPMC support
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_ENABLE(perfevent_rdpmc,
|
|
Packit Service |
a1973e |
AS_HELP_STRING([--enable-perfevent-rdpmc],
|
|
Packit Service |
a1973e |
[Enable userspace rdpmc instruction on perf_event, default: yes]),
|
|
Packit Service |
a1973e |
[case "${enableval}" in
|
|
Packit Service |
a1973e |
yes) enable_perfevent_rdpmc=true ;;
|
|
Packit Service |
a1973e |
no) enable_perfevent_rpdmc=false ;;
|
|
Packit Service |
a1973e |
*) AC_MSG_ERROR([bad value ${enableval} for --enable-perfevent-rdpmc]) ;;
|
|
Packit Service |
a1973e |
esac],
|
|
Packit Service |
a1973e |
[enable_perfevent_rdpmc=true])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$enable_perfevent_rdpmc" = "true"; then
|
|
Packit Service |
a1973e |
PECFLAGS="$PECFLAGS -DUSE_PERFEVENT_RDPMC=1"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# Uncore support
|
|
Packit Service |
a1973e |
AC_ARG_WITH(pe_incdir,
|
|
Packit Service |
a1973e |
[ --with-pe-incdir=<path> Specify path to the correct perf header file],
|
|
Packit Service |
a1973e |
[pe_incdir=$withval
|
|
Packit Service |
a1973e |
force_perf_events=yes
|
|
Packit Service |
a1973e |
user_specified_interface=pe],
|
|
Packit Service |
a1973e |
[pe_incdir=$pfm_incdir/perfmon])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_ENABLE(perf_event_uncore,
|
|
Packit Service |
a1973e |
[ --disable-perf-event-uncore Disable perf_event uncore component])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AS_IF([test "x$enable_perf_event_uncore" != "xno"],[
|
|
Packit Service |
a1973e |
disable_uncore=no
|
|
Packit Service |
a1973e |
])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# Check for perf_event.h
|
|
Packit Service |
a1973e |
if test "$force_perf_events" = "yes"; then
|
|
Packit Service |
a1973e |
perf_events="yes"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$cross_compiling" = "no"; then
|
|
Packit Service |
a1973e |
AC_CHECK_FILE(/proc/sys/kernel/perf_event_paranoid,[
|
|
Packit Service |
a1973e |
AC_CHECK_FILE($pe_incdir/perf_event.h,perf_events="yes")])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$perf_events" = "yes"; then
|
|
Packit Service |
a1973e |
PECFLAGS="$PECFLAGS -DPEINCLUDE=\\\"$pe_incdir/perf_event.h\\\""
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
# Sort out the choice of the user vs. what we detected
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
# MESSING WITH CFLAGS IS STUPID!
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
if test "$user_specified_interface" != "no"; then
|
|
Packit Service |
a1973e |
if test "$user_specified_interface" = "perfctr"; then
|
|
Packit Service |
a1973e |
perfmon=0
|
|
Packit Service |
a1973e |
perf_events="no"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
if test "$user_specified_interface" = "perfmon"; then
|
|
Packit Service |
a1973e |
perfctr=0
|
|
Packit Service |
a1973e |
perf_events="no"
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" $PFMCFLAGS"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
if test "$user_specified_interface" = "pe"; then
|
|
Packit Service |
a1973e |
perfctr=0
|
|
Packit Service |
a1973e |
perfmon=0
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" $PECFLAGS"
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_ERROR("Unknown user_specified_interface=$user_specified_interface perfctr=$perfctr perfmon=$perfmon perfmon2=$perfmon2 perf-events=$perf_events")
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
if test "$perfmon" != 0; then
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" $PFMCFLAGS"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$perf_events" = "yes"; then
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" $PECFLAGS"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
# User has made no choice, so we default to the ordering below in the platform section, if
|
|
Packit Service |
a1973e |
# we detect more than one.
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
# What does this next section do? It determines whether or not to run the tests for libpfm
|
|
Packit Service |
a1973e |
# based on the settings of pfm_root, pfm_prefix, pfm_incdir, pfm_libdir
|
|
Packit Service |
a1973e |
#
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$perfmon" != 0 -o "$perf_events" = "yes"; then
|
|
Packit Service |
a1973e |
# if prefix set, then yes
|
|
Packit Service |
a1973e |
if test "x$pfm_prefix" != "x"; then
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
# if root not set and libdir set, then yes
|
|
Packit Service |
a1973e |
elif test "x$pfm_root" = "x" -a "x$pfm_libdir" != "x"; then
|
|
Packit Service |
a1973e |
dotest=1
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
dotest=0
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
if test "$dotest" = 1; then
|
|
Packit Service |
a1973e |
LIBS="-L$pfm_libdir -lpfm"
|
|
Packit Service |
a1973e |
CPPFLAGS="$CPPFLAGS -I$pfm_incdir"
|
|
Packit Service |
a1973e |
AC_CHECK_LIB([pfm], [pfm_initialize],
|
|
Packit Service |
a1973e |
[AC_CHECK_HEADERS([perfmon/pfmlib.h],
|
|
Packit Service |
a1973e |
[if test "$arch" = "ia64"; then
|
|
Packit Service |
a1973e |
AC_CHECK_HEADERS([perfmon/pfmlib_montecito.h])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_CHECK_FUNC(pfm_get_event_description,
|
|
Packit Service |
a1973e |
[AC_DEFINE(HAVE_PFM_GET_EVENT_DESCRIPTION,1,[event description function])],[])
|
|
Packit Service |
a1973e |
AC_CHECK_MEMBER(pfmlib_reg_t.reg_evt_idx,
|
|
Packit Service |
a1973e |
[AC_DEFINE(HAVE_PFM_REG_EVT_IDX,1,[old reg_evt_idx])],[],[#include "perfmon/pfmlib.h"])
|
|
Packit Service |
a1973e |
AC_CHECK_MEMBER(pfmlib_output_param_t.pfp_pmd_count,
|
|
Packit Service |
a1973e |
[AC_DEFINE(HAVE_PFMLIB_OUTPUT_PFP_PMD_COUNT,1,[new pfmlib_output_param_t])],[],[#include "perfmon/pfmlib.h"])
|
|
Packit Service |
a1973e |
AC_CHECK_MEMBER(pfm_msg_t.type,
|
|
Packit Service |
a1973e |
[AC_DEFINE(HAVE_PFM_MSG_TYPE,1,[new pfm_msg_t])],[],[#include "perfmon/perfmon.h"]) ],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([perfmon/pfmlib.h not found, rerun configure with different flags]) ]) ],
|
|
Packit Service |
a1973e |
[AC_MSG_ERROR([libpfm.a not found, rerun configure with different flags]) ])
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_PERFMON_PFMLIB_MONTECITO_H,1,[Montecito headers])
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_PFM_GET_EVENT_DESCRIPTION,1,[event description function])
|
|
Packit Service |
a1973e |
AC_DEFINE(HAVE_PFMLIB_OUTPUT_PFP_PMD_COUNT,1,[new pfmlib_output_param_t])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
# Checking platform
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(platform)
|
|
Packit Service |
a1973e |
case "$OS" in
|
|
Packit Service |
a1973e |
aix)
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-"$CPU" ;;
|
|
Packit Service |
a1973e |
bgp)
|
|
Packit Service |
a1973e |
MAKEVER=bgp ;;
|
|
Packit Service |
a1973e |
bgq)
|
|
Packit Service |
a1973e |
MAKEVER=bgq ;;
|
|
Packit Service |
a1973e |
CLE)
|
|
Packit Service |
a1973e |
if test "$perfmon2" = "yes"; then
|
|
Packit Service |
a1973e |
# major_version=`echo $OSVER | sed 's/\([[^.]][[^.]]*\).*/\1/'`
|
|
Packit Service |
a1973e |
# minor_version=`echo $OSVER | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'`
|
|
Packit Service |
a1973e |
# point_version=`echo $OSVER | sed -e 's/[[^.]][[^.]]*.[[^.]][[^.]]*.\(.*\)/\1/' -e 's/[[^0-9]].*//'`
|
|
Packit Service |
a1973e |
# if (test "$major_version" = 2 -a "$minor_version" = 6 -a "$point_version" -lt 31 -a "$perfmon2" != "yes" ); then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfmon2
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pe
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
freebsd)
|
|
Packit Service |
a1973e |
MAKEVER="freebsd"
|
|
Packit Service |
a1973e |
LDFLAGS="-lpmc"
|
|
Packit Service |
a1973e |
# HWPMC driver is available for FreeBSD >= 6
|
|
Packit Service |
a1973e |
FREEBSD_VERSION=`uname -r | cut -d'.' -f1`
|
|
Packit Service |
a1973e |
if test "${FREEBSD_VERSION}" -lt 6 ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([PAPI requires FreeBSD 6 or greater])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
# Determine if HWPMC module is on the kernel
|
|
Packit Service |
a1973e |
dmesg | grep hwpmc 2> /dev/null > /dev/null
|
|
Packit Service |
a1973e |
if test "$?" != "0" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([HWPMC module not found. (see INSTALL.TXT)])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
# Determine the number of counters
|
|
Packit Service |
a1973e |
echo "/* Automatically generated file by configure */" > freebsd-config.h
|
|
Packit Service |
a1973e |
echo "#ifndef _FREEBSD_CONFIG_H_" >> freebsd-config.h
|
|
Packit Service |
a1973e |
echo "#define _FREEBSD_CONFIG_H_" >> freebsd-config.h
|
|
Packit Service |
a1973e |
echo "" >> freebsd-config.h
|
|
Packit Service |
a1973e |
AC_TRY_LINK([#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <pmc.h>],
|
|
Packit Service |
a1973e |
[int i = pmc_init();],
|
|
Packit Service |
a1973e |
[pmc_pmc_init_linked="yes"], [pmc_pmc_init_linked="no"])
|
|
Packit Service |
a1973e |
if test "${pmc_init_linked}" = "no" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([Failed to link hwpmc example])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_TRY_RUN([#include <unistd.h>
|
|
Packit Service |
a1973e |
#include <pmc.h>
|
|
Packit Service |
a1973e |
int main() {
|
|
Packit Service |
a1973e |
const struct pmc_cpuinfo *info;
|
|
Packit Service |
a1973e |
if (pmc_init() < 0) return 0;
|
|
Packit Service |
a1973e |
if (pmc_cpuinfo (&info) < 0) return 0;
|
|
Packit Service |
a1973e |
return info->pm_npmc-1;
|
|
Packit Service |
a1973e |
} ],
|
|
Packit Service |
a1973e |
[ num_counters="0" ],
|
|
Packit Service |
a1973e |
[ num_counters="$?"])
|
|
Packit Service |
a1973e |
if test "${num_counters}" = "0" ; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([pmc_npmc info returned 0. Determine if the HWPMC module is loaded (see hwpmc(4))])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
echo "#define HWPMC_NUM_COUNTERS ${num_counters}" >> freebsd-config.h
|
|
Packit Service |
a1973e |
echo "" >> freebsd-config.h
|
|
Packit Service |
a1973e |
echo "#endif" >> freebsd-config.h ;;
|
|
Packit Service |
a1973e |
linux)
|
|
Packit Service |
a1973e |
if test "$force_perf_events" = "yes" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pe
|
|
Packit Service |
a1973e |
elif test "$force_perfmon2" = "yes" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfmon2
|
|
Packit Service |
a1973e |
elif test "$force_perfctr" = "yes" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfctr-x86
|
|
Packit Service |
a1973e |
case "$CPU" in
|
|
Packit Service |
a1973e |
itanium2|montecito)
|
|
Packit Service |
a1973e |
if test "$bitmode" = "32"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([The bitmode you specified is not supported])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pfm-"$CPU"
|
|
Packit Service |
a1973e |
;;
|
|
Packit Service |
a1973e |
POWER5|POWER5+|POWER6|POWER7|PPC970)
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfctr-"$CPU" ;;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
elif test "$perf_events" = "yes" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pe
|
|
Packit Service |
a1973e |
elif test "$perfmon2" = "yes" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfmon2
|
|
Packit Service |
a1973e |
elif test "$old_pfmv2" = "y" ; then
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pfm-"$CPU"
|
|
Packit Service |
a1973e |
elif test "$perfctr" != 0 ; then
|
|
Packit Service |
a1973e |
case "$CPU" in
|
|
Packit Service |
a1973e |
itanium2|montecito)
|
|
Packit Service |
a1973e |
if test "$bitmode" = "32"; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([The bitmode you specified is not supported])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-pfm-"$CPU"
|
|
Packit Service |
a1973e |
;;
|
|
Packit Service |
a1973e |
x86)
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfctr-x86 ;;
|
|
Packit Service |
a1973e |
POWER5|POWER5+|POWER6|POWER7|PPC970)
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-perfctr-"$CPU" ;;
|
|
Packit Service |
a1973e |
*)
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-generic ;;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-generic
|
|
Packit Service |
a1973e |
fi ;;
|
|
Packit Service |
a1973e |
solaris)
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64" -a "`isainfo -v | grep "64"`" = ""; then
|
|
Packit Service |
a1973e |
AC_MSG_ERROR([The bitmode you specified is not supported])
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
MAKEVER="$OS"-"$CPU" ;;
|
|
Packit Service |
a1973e |
darwin)
|
|
Packit Service |
a1973e |
MAKEVER="$OS" ;;
|
|
Packit Service |
a1973e |
esac
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($MAKEVER)
|
|
Packit Service |
a1973e |
if test "x$MAKEVER" = "x"; then
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(This platform is not supported so a generic build without CPU counters will be used)
|
|
Packit Service |
a1973e |
MAKEVER="generic_platform"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
# Set build macros
|
|
Packit Service |
a1973e |
##################################################
|
|
Packit Service |
a1973e |
FILENAME=Makefile.inc
|
|
Packit Service |
a1973e |
SHOW_CONF=showconf
|
|
Packit Service |
a1973e |
CTEST_TARGETS="all"
|
|
Packit Service |
a1973e |
FTEST_TARGETS="all"
|
|
Packit Service |
a1973e |
LIBRARY=libpapi.a
|
|
Packit Service |
a1973e |
SHLIB='libpapi.so.AC_PACKAGE_VERSION'
|
|
Packit Service |
a1973e |
VLIB='libpapi.so.$(PAPIVER)'
|
|
Packit Service |
a1973e |
OMPCFLGS=-fopenmp
|
|
Packit Service |
a1973e |
CC_R='$(CC) -pthread'
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -fPIC -DPIC -shared -Wl,-soname -Wl,$(VLIB) -Xlinker "-rpath" -Xlinker "$(LIBDIR)"'
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "gcc"; then
|
|
Packit Service |
a1973e |
if test "$bitmode" = "32"; then
|
|
Packit Service |
a1973e |
BITFLAGS=-m32
|
|
Packit Service |
a1973e |
elif test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
BITFLAGS=-m64
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
OPTFLAGS="$OPTFLAGS"
|
|
Packit Service |
a1973e |
PAPICFLAGS+=" -D_REENTRANT -D_GNU_SOURCE $NOTLS"
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS $BITFLAGS"
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "gcc"; then
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -Wall"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
FFLAGS="$CFLAGS $BITFLAGS $FFLAGS -Dlinux"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# OS Support
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if (test "$OS" = "aix"); then
|
|
Packit Service |
a1973e |
OSFILESSRC=aix-memory.c
|
|
Packit Service |
a1973e |
OSLOCK=aix-lock.h
|
|
Packit Service |
a1973e |
OSCONTEXT=aix-context.h
|
|
Packit Service |
a1973e |
elif (test "$OS" = "bgp"); then
|
|
Packit Service |
a1973e |
OSFILESSRC=linux-bgp-memory.c
|
|
Packit Service |
a1973e |
OSLOCK=linux-bgp-lock.h
|
|
Packit Service |
a1973e |
OSCONTEXT=linux-bgp-context.h
|
|
Packit Service |
a1973e |
elif (test "$OS" = "bgq"); then
|
|
Packit Service |
a1973e |
OSFILESSRC=linux-bgq-memory.c
|
|
Packit Service |
a1973e |
OSLOCK=linux-bgq-lock.h
|
|
Packit Service |
a1973e |
OSCONTEXT=linux-context.h
|
|
Packit Service |
a1973e |
elif (test "$OS" = "freebsd"); then
|
|
Packit Service |
a1973e |
OSFILESSRC=freebsd-memory.c
|
|
Packit Service |
a1973e |
OSLOCK="freebsd-lock.h"
|
|
Packit Service |
a1973e |
OSCONTEXT="freebsd-context.h"
|
|
Packit Service |
a1973e |
elif (test "$OS" = "linux"); then
|
|
Packit Service |
a1973e |
OSFILESSRC="linux-memory.c linux-timer.c linux-common.c"
|
|
Packit Service |
a1973e |
OSFILESHDR="linux-memory.h linux-timer.h linux-common.h"
|
|
Packit Service |
a1973e |
OSLOCK="linux-lock.h"
|
|
Packit Service |
a1973e |
OSCONTEXT="linux-context.h"
|
|
Packit Service |
a1973e |
elif (test "$OS" = "solaris"); then
|
|
Packit Service |
a1973e |
OSFILESSRC="solaris-memory.c solaris-common.c"
|
|
Packit Service |
a1973e |
OSFILESHDR="solaris-memory.h solaris-common.h"
|
|
Packit Service |
a1973e |
OSLOCK="solaris-lock.h"
|
|
Packit Service |
a1973e |
OSCONTEXT="solaris-context.h"
|
|
Packit Service |
a1973e |
elif (test "$OS" = "darwin"); then
|
|
Packit Service |
a1973e |
OSFILESSRC="darwin-memory.c darwin-common.c"
|
|
Packit Service |
a1973e |
OSFILESHDR="darwin-memory.h darwin-common.h"
|
|
Packit Service |
a1973e |
OSLOCK="darwin-lock.h"
|
|
Packit Service |
a1973e |
OSCONTEXT="darwin-context.h"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
OSFILESOBJ='$(OSFILESSRC:.c=.o)'
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if (test "$MAKEVER" = "aix-power5" || test "$MAKEVER" = "aix-power6" || test "$MAKEVER" = "aix-power7"); then
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
LIBRARY=libpapi64.a
|
|
Packit Service |
a1973e |
SHLIB=libpapi64.so
|
|
Packit Service |
a1973e |
# By default AIX enforces a limit on heap space
|
|
Packit Service |
a1973e |
#( limiting the heap to share the same 256MB memory segment as stack )
|
|
Packit Service |
a1973e |
# changing the max data paramater moves the heap off the stack's memory segment
|
|
Packit Service |
a1973e |
BITFLAGS='-q64 -bmaxdata:0x07000000000000'
|
|
Packit Service |
a1973e |
ARG64=-X64
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
# If the issue ever comes up, /dsa requires AIX v5.1 or higher
|
|
Packit Service |
a1973e |
# and the Large address-space model (-bmaxdata) requires v4.3 or later
|
|
Packit Service |
a1973e |
# see http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.genprogc/doc/genprogc/lrg_prg_support.htm#a179c11c5d
|
|
Packit Service |
a1973e |
SHLIB=libpapi.so
|
|
Packit Service |
a1973e |
BITFLAGS="-bmaxdata:0x80000000/dsa"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=aix
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=aix.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=aix.o
|
|
Packit Service |
a1973e |
VECTOR=_aix_vector
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
MISCHDRS="aix.h components/perfctr_ppc/ppc64_events.h papi_events_table.h"
|
|
Packit Service |
a1973e |
MISCSRCS="aix.c"
|
|
Packit Service |
a1973e |
CFLAGS+='-qenum=4 -Icomponents/perfctr_ppc -DNO_VARARG_MACRO -D_AIX -D_$(CPU_MODEL) -DNEED_FFSLL -DARCH_EVTS=\"$(ARCH_EVENTS).h\" -DCOMP_VECTOR=_ppc64_vectors -DSTATIC_PAPI_EVENTS_TABLE'
|
|
Packit Service |
a1973e |
FFLAGS+='-WF,-D_$(CPU_MODEL) -WF,-DARCH_EVTS=\"$(ARCH_EVENTS).h\"'
|
|
Packit Service |
a1973e |
CFLAGS+='-I$(PMAPI)/include -Icomponents/perfctr_ppc -qmaxmem=-1 -qarch=$(cpu_option) -qtune=$(cpu_option) -qlanglvl=extended $(BITFLAGS)'
|
|
Packit Service |
a1973e |
if test $debug != "yes"; then
|
|
Packit Service |
a1973e |
OPTFLAGS='-O3 -qstrict $(PMINIT)'
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
OPTFLAGS='$(PMINIT)'
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
SMPCFLGS=-qsmp
|
|
Packit Service |
a1973e |
OMPCFLGS='-qsmp=omp'
|
|
Packit Service |
a1973e |
LDFLAGS='-L$(PMAPI)/lib -lpmapi'
|
|
Packit Service |
a1973e |
CC_R=xlc_r
|
|
Packit Service |
a1973e |
CC=xlc
|
|
Packit Service |
a1973e |
CC_SHR="xlc -G -bnoentry"
|
|
Packit Service |
a1973e |
AC_CHECK_PROGS( [MPICC], [mpicc mpcc], [])
|
|
Packit Service |
a1973e |
F77=xlf
|
|
Packit Service |
a1973e |
CPP='xlc -E $(CPPFLAGS)'
|
|
Packit Service |
a1973e |
if test "$MAKEVER" = "aix-power5"; then
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power5_events
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER5
|
|
Packit Service |
a1973e |
cpu_option=pwr5
|
|
Packit Service |
a1973e |
DESCR="AIX 5.1.0 or greater with POWER5"
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
DESCR="$DESCR 64 bit build"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "aix-power6"; then
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power6_events
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER6
|
|
Packit Service |
a1973e |
cpu_option=pwr6
|
|
Packit Service |
a1973e |
DESCR="AIX 5.1.0 or greater with POWER6"
|
|
Packit Service |
a1973e |
CPPFLAGS="-qlanglvl=extended"
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
DESCR="$DESCR 64 bit build"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "aix-power7"; then
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power7_events
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER7
|
|
Packit Service |
a1973e |
cpu_option=pwr7
|
|
Packit Service |
a1973e |
DESCR="AIX 5.1.0 or greater with POWER7"
|
|
Packit Service |
a1973e |
CPPFLAGS="-qlanglvl=extended"
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
DESCR="$DESCR 64 bit build"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "bgp"; then
|
|
Packit Service |
a1973e |
CPP="$CC -E"
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=linux-bgp
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=linux-bgp.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=linux-bgp.o
|
|
Packit Service |
a1973e |
VECTOR=_bgp_vectors
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
MISCSRCS=
|
|
Packit Service |
a1973e |
CFLAGS='-g -gdwarf-2 -O2 -Wall -I. -I$(BGP_SYSDIR)/arch/include -DCOMP_VECTOR=_bgp_vectors'
|
|
Packit Service |
a1973e |
tests="$tests bgp_tests"
|
|
Packit Service |
a1973e |
SHOW_CONF=show_bgp_conf
|
|
Packit Service |
a1973e |
BGP_SYSDIR=/bgsys/drivers/ppcfloor
|
|
Packit Service |
a1973e |
BGP_GNU_LINUX_PATH='${BGP_SYSDIR}/gnu-linux'
|
|
Packit Service |
a1973e |
LDFLAGS='-L$(BGP_SYSDIR)/runtime/SPI -lSPI.cna'
|
|
Packit Service |
a1973e |
FFLAGS='-g -gdwarf-2 -O2 -Wall -I. -Dlinux'
|
|
Packit Service |
a1973e |
OPTFLAGS="-g -Wall -O3"
|
|
Packit Service |
a1973e |
TOPTFLAGS="-g -Wall -O0"
|
|
Packit Service |
a1973e |
SHLIB=libpapi.so
|
|
Packit Service |
a1973e |
DESCR="Linux for BlueGene/P"
|
|
Packit Service |
a1973e |
LIBS=static
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -shared -Xlinker "-soname" -Xlinker "$(SHLIB)" -Xlinker "-rpath" -Xlinker "$(LIBDIR)"'
|
|
Packit Service |
a1973e |
OMPCFLGS=""
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "bgq"; then
|
|
Packit Service |
a1973e |
FILENAME=Rules.bgpm
|
|
Packit Service |
a1973e |
VECTOR=_bgq_vectors
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=linux-bgq
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=linux-bgq.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=linux-bgq.o
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
MISCSRCS="linux-bgq-common.c"
|
|
Packit Service |
a1973e |
OPTFLAGS="-g -Wall -O3"
|
|
Packit Service |
a1973e |
TOPTFLAGS="-g -Wall -O0"
|
|
Packit Service |
a1973e |
SHLIB=libpapi.so
|
|
Packit Service |
a1973e |
DESCR="Linux for Blue Gene/Q"
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -fPIC -DPIC -shared -Wl,-soname -Wl,$(SHLIB) -Xlinker "-rpath" -Xlinker "$(LIBDIR)"'
|
|
Packit Service |
a1973e |
OMPCFLGS=""
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "CLE-perfmon2"; then
|
|
Packit Service |
a1973e |
FILENAME=Rules.perfmon2
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perfmon
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=perfmon.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=perfmon.o
|
|
Packit Service |
a1973e |
VECTOR=_papi_pfm_vector
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
F77=gfortran
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -D__crayxt"
|
|
Packit Service |
a1973e |
FFLAGS=""
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "freebsd"; then
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=freebsd
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=freebsd.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=freebsd.o
|
|
Packit Service |
a1973e |
VECTOR=_papi_freebsd_vector
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="freebsd_events.csv"
|
|
Packit Service |
a1973e |
MISCHDRS="freebsd/map-unknown.h freebsd/map.h freebsd/map-p6.h freebsd/map-p6-m.h freebsd/map-p6-3.h freebsd/map-p6-2.h freebsd/map-p6-c.h freebsd/map-k7.h freebsd/map-k8.h freebsd/map-p4.h freebsd/map-atom.h freebsd/map-core.h freebsd/map-core2.h freebsd/map-core2-extreme.h freebsd/map-i7.h freebsd/map-westme\
|
|
Packit Service |
a1973e |
re.h"
|
|
Packit Service |
a1973e |
MISCSRCS="$MISCSRCS freebsd/map-unknown.c freebsd/map.c freebsd/map-p6.c freebsd/map-p6-m.c freebsd/map-p6-3.c freebsd/map-p6-2.c freebsd/map-p6-c.c freebsd/map-k7.c freebsd/map-k8.c freebsd/map-p4.c freebsd/map-atom.c freebsd/map-core.c freebsd/map-core2.c freebsd/map-core2-extreme.c freebsd/map-i7.c freebsd/map-westme\
|
|
Packit Service |
a1973e |
re.c"
|
|
Packit Service |
a1973e |
DESCR="FreeBSD -over libpmc- "
|
|
Packit Service |
a1973e |
CFLAGS+=" -I. -Ifreebsd -DPIC -fPIC"
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -shared -Xlinker "-soname" -Xlinker "libpapi.so" -Xlinker "-rpath" -Xlinker "$(LIBDIR)" -DPIC -fPIC -I. -Ifreebsd'
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-generic"; then
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=linux-generic
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=linux-generic.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=linux-generic.o
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
VECTOR=_papi_dummy_vector
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-pe"; then
|
|
Packit Service |
a1973e |
FILENAME=Rules.pfm4_pe
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perf_event
|
|
Packit Service |
a1973e |
components="perf_event"
|
|
Packit Service |
a1973e |
if test "$disable_uncore" = "no"; then
|
|
Packit Service |
a1973e |
components="$components perf_event_uncore"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfctr-x86"; then
|
|
Packit Service |
a1973e |
FILENAME=Rules.perfctr-pfm
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perfctr-x86
|
|
Packit Service |
a1973e |
VERSION=2.6.x
|
|
Packit Service |
a1973e |
components="perfctr"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif (test "$MAKEVER" = "linux-perfctr-POWER5" || test "$MAKEVER" = "linux-perfctr-POWER5+" || test "$MAKEVER" = "linux-perfctr-POWER6" || test "$MAKEVER" = "linux-perfctr-POWER7" || test "$MAKEVER" = "linux-perfctr-PPC970"); then
|
|
Packit Service |
a1973e |
FILENAME=Rules.perfctr
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perfctr-ppc
|
|
Packit Service |
a1973e |
VERSION=2.7.x
|
|
Packit Service |
a1973e |
components="perfctr_ppc"
|
|
Packit Service |
a1973e |
CPU=ppc64
|
|
Packit Service |
a1973e |
if test "$MAKEVER" = "linux-perfctr-POWER5"; then
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER5
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power5_events
|
|
Packit Service |
a1973e |
ARCH_SPEC_EVTS=power5_events_map.c
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfctr-POWER5+"; then
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER5p
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power5+_events
|
|
Packit Service |
a1973e |
ARCH_SPEC_EVTS=power5+_events_map.c
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfctr-POWER6"; then
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER6
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power6_events
|
|
Packit Service |
a1973e |
ARCH_SPEC_EVTS=power6_events_map.c
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfctr-POWER7"; then
|
|
Packit Service |
a1973e |
CPU_MODEL=POWER7
|
|
Packit Service |
a1973e |
ARCH_EVENTS=power7_events
|
|
Packit Service |
a1973e |
ARCH_SPEC_EVTS=power7_events_map.c
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfctr-PPC970"; then
|
|
Packit Service |
a1973e |
CPU_MODEL=PPC970
|
|
Packit Service |
a1973e |
ARCH_EVENTS=ppc970_events
|
|
Packit Service |
a1973e |
ARCH_SPEC_EVTS=ppc970_events_map.c
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -DPPC64 -D_$(CPU_MODEL) -D__perfctr__ -DARCH_EVTS=\"$(ARCH_EVENTS).h\" -DCOMP_VECTOR=_ppc64_vectors"
|
|
Packit Service |
a1973e |
FFLAGS='-D_$(CPU_MODEL)'
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "linux-perfmon2"; then
|
|
Packit Service |
a1973e |
FILENAME=Rules.perfmon2
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perfmon2
|
|
Packit Service |
a1973e |
components="perfmon2"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif (test "$MAKEVER" = "linux-pfm-ia64" || test "$MAKEVER" = "linux-pfm-itanium2" || test "$MAKEVER" = "linux-pfm-montecito"); then
|
|
Packit Service |
a1973e |
FILENAME=Rules.pfm
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=perfmon-ia64
|
|
Packit Service |
a1973e |
components="perfmon_ia64"
|
|
Packit Service |
a1973e |
VERSION=3.y
|
|
Packit Service |
a1973e |
if test "$MAKEVER" = "linux-pfm-itanium2"; then
|
|
Packit Service |
a1973e |
CPU=2
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
CPU=3
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -DITANIUM$CPU"
|
|
Packit Service |
a1973e |
FFLAGS="$FFLAGS -DITANIUM$CPU"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -fPIC -DPIC -shared -Wl,-soname -Wl,$(SHLIB) -Xlinker "-rpath" -Xlinker "$(LIBDIR)"'
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "solaris-ultra"; then
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=solaris-ultra
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=solaris-ultra.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=solaris-ultra.obj
|
|
Packit Service |
a1973e |
VECTOR=_solaris_vector
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
DESCR="Solaris 5.8 or greater with UltraSPARC I, II or III"
|
|
Packit Service |
a1973e |
if test "$CC" = "gcc"; then
|
|
Packit Service |
a1973e |
F77=g77
|
|
Packit Service |
a1973e |
CPP="$CC -E"
|
|
Packit Service |
a1973e |
CC_R="$CC"
|
|
Packit Service |
a1973e |
CC_SHR="$CC -shared -fpic"
|
|
Packit Service |
a1973e |
OPTFLAGS=-O3
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -DNEED_FFSLL"
|
|
Packit Service |
a1973e |
FFLAGS=$CFLAGS
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
# Sun Workshop compilers: V5.0 and V6.0 R2
|
|
Packit Service |
a1973e |
CPP="$CC -E"
|
|
Packit Service |
a1973e |
CC_R="$CC -mt"
|
|
Packit Service |
a1973e |
CC_SHR="$CC -ztext -G -Kpic"
|
|
Packit Service |
a1973e |
CFLAGS="-xtarget=ultra3 -xarch=v8plusa -DNO_VARARG_MACRO -D__EXTENSIONS__ -DPAPI_NO_MEMORY_MANAGEMENT -DCOMP_VECTOR=_solaris_vectors"
|
|
Packit Service |
a1973e |
SMPCFLGS=-xexplicitpar
|
|
Packit Service |
a1973e |
OMPCFLGS=-xopenmp
|
|
Packit Service |
a1973e |
F77=f90
|
|
Packit Service |
a1973e |
FFLAGS=$CFLAGS
|
|
Packit Service |
a1973e |
NOOPT=-xO0
|
|
Packit Service |
a1973e |
OPTFLAGS="-g -fast -xtarget=ultra3 -xarch=v8plusa"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
LDFLAGS="$LDFLAGS -lcpc"
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
LIBRARY=libpapi64.a
|
|
Packit Service |
a1973e |
SHLIB=libpapi64.so
|
|
Packit Service |
a1973e |
CFLAGS="-xtarget=ultra3 -xarch=v9a -DNO_VARARG_MACRO -D__EXTENSIONS__ -DPAPI_NO_MEMORY_MANAGEMENT -DCOMP_VECTOR=_solaris_vectors"
|
|
Packit Service |
a1973e |
OPTFLAGS="-g -fast -xtarget=ultra3 -xarch=v9a"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "solaris-niagara2"; then
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=solaris-niagara2
|
|
Packit Service |
a1973e |
CPUCOMPONENT_C=solaris-niagara2.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT_OBJ=solaris-niagara2.obj
|
|
Packit Service |
a1973e |
VECTOR=_niagara2_vector
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
CFLAGS="-xtarget=native -xarch=native -DNO_VARARG_MACRO -D__EXTENSIONS__ -DCOMP_VECTOR=_niagara2_vector"
|
|
Packit Service |
a1973e |
ORY_MANAGEMENT="-DCOMP_VECTOR=_solaris_vector"
|
|
Packit Service |
a1973e |
DESCR="Solaris 10 with libcpc2 and UltraSPARC T2 (Niagara 2)"
|
|
Packit Service |
a1973e |
CPP="$CC -E"
|
|
Packit Service |
a1973e |
CC_R="$CC -mt"
|
|
Packit Service |
a1973e |
CC_SHR="$CC -ztext -G -Kpic"
|
|
Packit Service |
a1973e |
SMPCFLGS=-xexplicitpar
|
|
Packit Service |
a1973e |
OMPCFLGS=-xopenmp
|
|
Packit Service |
a1973e |
F77=f90
|
|
Packit Service |
a1973e |
FFLAGS=$CFLAGS
|
|
Packit Service |
a1973e |
NOOPT=-xO0
|
|
Packit Service |
a1973e |
OPTFLAGS="-fast"
|
|
Packit Service |
a1973e |
FOPTFLAGS=$OPTFLAGS
|
|
Packit Service |
a1973e |
LDFLAGS="$LDFLAGS -lcpc"
|
|
Packit Service |
a1973e |
if test "$bitmode" = "64"; then
|
|
Packit Service |
a1973e |
LIBRARY=libpapi64.a
|
|
Packit Service |
a1973e |
SHLIB=libpapi64.so
|
|
Packit Service |
a1973e |
CFLAGS="$CFLAGS -m64"
|
|
Packit Service |
a1973e |
FFLAGS="$FFLAGS -m64"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "darwin"; then
|
|
Packit Service |
a1973e |
DESCR="Darwin"
|
|
Packit Service |
a1973e |
CPUCOMPONENT_NAME=darwin
|
|
Packit Service |
a1973e |
CPUCOMPONENT=linux-generic.c
|
|
Packit Service |
a1973e |
CPUCOMPONENT=linux-generic.obj
|
|
Packit Service |
a1973e |
CFLAGS="-DNEED_FFSLL"
|
|
Packit Service |
a1973e |
CC_SHR='$(CC) -fPIC -DPIC -shared -Wl,-dylib -Xlinker "-rpath" -Xlinker "$(LIBDIR)"'
|
|
Packit Service |
a1973e |
SHLIB=libpapi.dylib
|
|
Packit Service |
a1973e |
elif test "$MAKEVER" = "generic_platform"; then
|
|
Packit Service |
a1973e |
DESCR="Generic platform"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
MISCOBJS='$(MISCSRCS:.c=.o)'
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$F77" = "pgf77"; then
|
|
Packit Service |
a1973e |
FFLAGS="$FFLAGS -Wall -Mextend"
|
|
Packit Service |
a1973e |
elif test "$F77" = "ifort"; then
|
|
Packit Service |
a1973e |
FFLAGS="$FFLAGS -warn all"
|
|
Packit Service |
a1973e |
elif test "$F77" != "xlf"; then
|
|
Packit Service |
a1973e |
FFLAGS="$FFLAGS -ffixed-line-length-132"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$CC_COMMON_NAME" = "icc"; then
|
|
Packit Service |
a1973e |
OMPCFLGS=-openmp
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for components to build)
|
|
Packit Service |
a1973e |
COMPONENT_RULES=components/Rules.components
|
|
Packit Service |
a1973e |
echo "/* Automatically generated by configure */" > components_config.h
|
|
Packit Service |
a1973e |
echo "#ifndef COMPONENTS_CONFIG_H" >> components_config.h
|
|
Packit Service |
a1973e |
echo "#define COMPONENTS_CONFIG_H" >> components_config.h
|
|
Packit Service |
a1973e |
echo "" >> components_config.h
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_ARG_WITH(components,
|
|
Packit Service |
a1973e |
[ --with-components=<"component1 component2"> Specify which components to build ],
|
|
Packit Service |
a1973e |
[components="$components $withval"])
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# This is an ugly hack to keep building on configurations covered by any-null in the past.
|
|
Packit Service |
a1973e |
if test "$VECTOR" = "_papi_dummy_vector"; then
|
|
Packit Service |
a1973e |
if test "x$components" = "x"; then
|
|
Packit Service |
a1973e |
echo "papi_vector_t ${VECTOR} = {" >> components_config.h
|
|
Packit Service |
a1973e |
echo " .size = {
|
|
Packit Service |
a1973e |
.context = sizeof ( int ),
|
|
Packit Service |
a1973e |
.control_state = sizeof ( int ),
|
|
Packit Service |
a1973e |
.reg_value = sizeof ( int ),
|
|
Packit Service |
a1973e |
.reg_alloc = sizeof ( int ),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
.cmp_info = {
|
|
Packit Service |
a1973e |
.num_native_events = 0,
|
|
Packit Service |
a1973e |
.num_preset_events = 0,
|
|
Packit Service |
a1973e |
.num_cntrs = 0,
|
|
Packit Service |
a1973e |
.name = \"Your system is unsupported! \",
|
|
Packit Service |
a1973e |
.short_name = \"UNSUPPORTED!\"
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
.dispatch_timer = NULL,
|
|
Packit Service |
a1973e |
.get_overflow_address = NULL,
|
|
Packit Service |
a1973e |
.start = NULL,
|
|
Packit Service |
a1973e |
.stop = NULL,
|
|
Packit Service |
a1973e |
.read = NULL,
|
|
Packit Service |
a1973e |
.reset = NULL,
|
|
Packit Service |
a1973e |
.write = NULL,
|
|
Packit Service |
a1973e |
.cleanup_eventset = NULL,
|
|
Packit Service |
a1973e |
.stop_profiling = NULL,
|
|
Packit Service |
a1973e |
.init_component = NULL,
|
|
Packit Service |
a1973e |
.init_thread = NULL,
|
|
Packit Service |
a1973e |
.init_control_state = NULL,
|
|
Packit Service |
a1973e |
.update_control_state = NULL,
|
|
Packit Service |
a1973e |
.ctl = NULL,
|
|
Packit Service |
a1973e |
.set_overflow = NULL,
|
|
Packit Service |
a1973e |
.set_profile = NULL,
|
|
Packit Service |
a1973e |
.set_domain = NULL,
|
|
Packit Service |
a1973e |
.ntv_enum_events = NULL,
|
|
Packit Service |
a1973e |
.ntv_name_to_code = NULL,
|
|
Packit Service |
a1973e |
.ntv_code_to_name = NULL,
|
|
Packit Service |
a1973e |
.ntv_code_to_descr = NULL,
|
|
Packit Service |
a1973e |
.ntv_code_to_bits = NULL,
|
|
Packit Service |
a1973e |
.ntv_code_to_info = NULL,
|
|
Packit Service |
a1973e |
.allocate_registers = NULL,
|
|
Packit Service |
a1973e |
.shutdown_thread = NULL,
|
|
Packit Service |
a1973e |
.shutdown_component = NULL,
|
|
Packit Service |
a1973e |
.user = NULL,
|
|
Packit Service |
a1973e |
};" >> components_config.h
|
|
Packit Service |
a1973e |
# but in the face of actual components, we don't have to do hacky size games
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
VECTOR=""
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
elif test "x$VECTOR" != "x"; then
|
|
Packit Service |
a1973e |
echo "extern papi_vector_t ${VECTOR};" >> components_config.h
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
for comp in $components; do
|
|
Packit Service |
a1973e |
idx=`echo "$comp" | sed -n "s/\/.*//p" | wc -c`
|
|
Packit Service |
a1973e |
if test "$idx" = 0; then
|
|
Packit Service |
a1973e |
subcomp=$comp
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
subcomp=`echo $comp | sed -E "s/^.{${idx}}//"`
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
COMPONENT_RULES="$COMPONENT_RULES components/$comp/Rules.$subcomp"
|
|
Packit Service |
a1973e |
echo "extern papi_vector_t _${subcomp}_vector;" >> components_config.h
|
|
Packit Service |
a1973e |
done
|
|
Packit Service |
a1973e |
echo "" >> components_config.h
|
|
Packit Service |
a1973e |
echo "struct papi_vectors *_papi_hwd[[]] = {" >> components_config.h
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "x$VECTOR" != "x"; then
|
|
Packit Service |
a1973e |
echo " &${VECTOR}," >> components_config.h
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
for comp in $components; do
|
|
Packit Service |
a1973e |
idx=`echo "$comp" | sed -n "s/\/.*//p" | wc -c`
|
|
Packit Service |
a1973e |
if test "$idx" = 0; then
|
|
Packit Service |
a1973e |
subcomp=$comp
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
subcomp=`echo $comp | sed -E "s/^.{${idx}}//"`
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
echo " &_${subcomp}_vector," >> components_config.h
|
|
Packit Service |
a1973e |
done
|
|
Packit Service |
a1973e |
echo " NULL" >> components_config.h
|
|
Packit Service |
a1973e |
echo "};" >> components_config.h
|
|
Packit Service |
a1973e |
echo "" >> components_config.h
|
|
Packit Service |
a1973e |
echo "#endif" >> components_config.h
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
# check for component tests
|
|
Packit Service |
a1973e |
for comp in $components; do
|
|
Packit Service |
a1973e |
if test "`find components/$comp -name "tests"`" != "" ; then
|
|
Packit Service |
a1973e |
COMPONENTS="$COMPONENTS $comp"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
done
|
|
Packit Service |
a1973e |
tests="$tests comp_tests"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($components)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_CHECKING(for PAPI event CSV filename to use)
|
|
Packit Service |
a1973e |
if test "x$PAPI_EVENTS_CSV" == "x"; then
|
|
Packit Service |
a1973e |
PAPI_EVENTS_CSV="papi_events.csv"
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
AC_MSG_RESULT($PAPI_EVENTS_CSV)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_SUBST(prefix)
|
|
Packit Service |
a1973e |
AC_SUBST(exec_prefix)
|
|
Packit Service |
a1973e |
AC_SUBST(libdir)
|
|
Packit Service |
a1973e |
AC_SUBST(includedir)
|
|
Packit Service |
a1973e |
AC_SUBST(mandir)
|
|
Packit Service |
a1973e |
AC_SUBST(bindir)
|
|
Packit Service |
a1973e |
AC_SUBST(datadir)
|
|
Packit Service |
a1973e |
AC_SUBST(datarootdir)
|
|
Packit Service |
a1973e |
AC_SUBST(docdir)
|
|
Packit Service |
a1973e |
AC_SUBST(PACKAGE_TARNAME)
|
|
Packit Service |
a1973e |
AC_SUBST(arch)
|
|
Packit Service |
a1973e |
AC_SUBST(MAKEVER)
|
|
Packit Service |
a1973e |
AC_SUBST(PMAPI)
|
|
Packit Service |
a1973e |
AC_SUBST(PMINIT)
|
|
Packit Service |
a1973e |
AC_SUBST(F77)
|
|
Packit Service |
a1973e |
AC_SUBST(CPP)
|
|
Packit Service |
a1973e |
AC_SUBST(CC)
|
|
Packit Service |
a1973e |
AC_SUBST(AR)
|
|
Packit Service |
a1973e |
AC_SUBST(papiLIBS)
|
|
Packit Service |
a1973e |
AC_SUBST(STATIC)
|
|
Packit Service |
a1973e |
AC_SUBST(LDFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(altix)
|
|
Packit Service |
a1973e |
AC_SUBST(perfctr_root)
|
|
Packit Service |
a1973e |
AC_SUBST(perfctr_prefix)
|
|
Packit Service |
a1973e |
AC_SUBST(perfctr_incdir)
|
|
Packit Service |
a1973e |
AC_SUBST(perfctr_libdir)
|
|
Packit Service |
a1973e |
AC_SUBST(pfm_root)
|
|
Packit Service |
a1973e |
AC_SUBST(old_pfmv2)
|
|
Packit Service |
a1973e |
AC_SUBST(pfm_prefix)
|
|
Packit Service |
a1973e |
AC_SUBST(pfm_incdir)
|
|
Packit Service |
a1973e |
AC_SUBST(pfm_libdir)
|
|
Packit Service |
a1973e |
AC_SUBST(OS)
|
|
Packit Service |
a1973e |
AC_SUBST(CFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(FFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(CPPFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(PAPI_EVENTS)
|
|
Packit Service |
a1973e |
AC_SUBST(PAPI_EVENTS_CSV)
|
|
Packit Service |
a1973e |
AC_SUBST(SETPATH)
|
|
Packit Service |
a1973e |
AC_SUBST(LINKLIB)
|
|
Packit Service |
a1973e |
AC_SUBST(VERSION)
|
|
Packit Service |
a1973e |
AC_SUBST(CPU)
|
|
Packit Service |
a1973e |
AC_SUBST(FILENAME)
|
|
Packit Service |
a1973e |
AC_SUBST(LIBRARY)
|
|
Packit Service |
a1973e |
AC_SUBST(SHLIB)
|
|
Packit Service |
a1973e |
AC_SUBST(VLIB)
|
|
Packit Service |
a1973e |
AC_SUBST(PAPICFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(OPTFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(CPUCOMPONENT_NAME)
|
|
Packit Service |
a1973e |
AC_SUBST(CPUCOMPONENT_C)
|
|
Packit Service |
a1973e |
AC_SUBST(CPUCOMPONENT_OBJ)
|
|
Packit Service |
a1973e |
AC_SUBST(OSFILESSRC)
|
|
Packit Service |
a1973e |
AC_SUBST(OSFILESOBJ)
|
|
Packit Service |
a1973e |
AC_SUBST(OSFILESHDR)
|
|
Packit Service |
a1973e |
AC_SUBST(OSLOCK)
|
|
Packit Service |
a1973e |
AC_SUBST(OSCONTEXT)
|
|
Packit Service |
a1973e |
AC_SUBST(DESCR)
|
|
Packit Service |
a1973e |
AC_SUBST(LIBS)
|
|
Packit Service |
a1973e |
AC_SUBST(CTEST_TARGETS)
|
|
Packit Service |
a1973e |
AC_SUBST(CC_R)
|
|
Packit Service |
a1973e |
AC_SUBST(CC_SHR)
|
|
Packit Service |
a1973e |
AC_SUBST(SMPCFLGS)
|
|
Packit Service |
a1973e |
AC_SUBST(OMPCFLGS)
|
|
Packit Service |
a1973e |
AC_SUBST(NOOPT)
|
|
Packit Service |
a1973e |
AC_SUBST(MISCSRCS)
|
|
Packit Service |
a1973e |
AC_SUBST(MISCOBJS)
|
|
Packit Service |
a1973e |
AC_SUBST(POST_BUILD)
|
|
Packit Service |
a1973e |
AC_SUBST(ARCH_EVENTS)
|
|
Packit Service |
a1973e |
AC_SUBST(CPU_MODEL)
|
|
Packit Service |
a1973e |
AC_SUBST(cpu_option)
|
|
Packit Service |
a1973e |
AC_SUBST(ARG64)
|
|
Packit Service |
a1973e |
AC_SUBST(FLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(MPICC)
|
|
Packit Service |
a1973e |
AC_SUBST(MISCHDRS)
|
|
Packit Service |
a1973e |
AC_SUBST(SHLIBDEPS)
|
|
Packit Service |
a1973e |
AC_SUBST(TOPTFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(TESTS)
|
|
Packit Service |
a1973e |
AC_SUBST(tests)
|
|
Packit Service |
a1973e |
AC_SUBST(SHOW_CONF)
|
|
Packit Service |
a1973e |
AC_SUBST(BGP_SYSDIR)
|
|
Packit Service |
a1973e |
AC_SUBST(BITFLAGS)
|
|
Packit Service |
a1973e |
AC_SUBST(COMPONENT_RULES)
|
|
Packit Service |
a1973e |
AC_SUBST(COMPONENTS)
|
|
Packit Service |
a1973e |
AC_SUBST(FTEST_TARGETS)
|
|
Packit Service |
a1973e |
AC_SUBST(HAVE_NO_OVERRIDE_INIT)
|
|
Packit Service |
a1973e |
AC_SUBST(BGPM_INSTALL_DIR)
|
|
Packit Service |
a1973e |
AC_SUBST(CC_COMMON_NAME)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if test "$cross_compiling" = "yes" ; then
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(Compiling genpapifdef with $nativecc because cross compiling)
|
|
Packit Service |
a1973e |
$nativecc -I. genpapifdef.c -o genpapifdef
|
|
Packit Service |
a1973e |
else
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(Compiling genpapifdef with $CC)
|
|
Packit Service |
a1973e |
$CC -I. genpapifdef.c -o genpapifdef
|
|
Packit Service |
a1973e |
fi
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(Generating fpapi.h)
|
|
Packit Service |
a1973e |
./genpapifdef -c > fpapi.h
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(Generating f77papi.h)
|
|
Packit Service |
a1973e |
./genpapifdef -f77 > f77papi.h
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE(Generating f90papi.h)
|
|
Packit Service |
a1973e |
./genpapifdef -f90 > f90papi.h
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
AC_MSG_NOTICE($FILENAME will be included in the generated Makefile)
|
|
Packit Service |
a1973e |
AC_CONFIG_FILES([Makefile papi.pc])
|
|
Packit Service |
a1973e |
AC_CONFIG_FILES([components/Makefile_comp_tests.target testlib/Makefile.target utils/Makefile.target ctests/Makefile.target ftests/Makefile.target validation_tests/Makefile.target])
|
|
Packit Service |
a1973e |
AC_OUTPUT
|