bringing VampirTrace integration to the trunk
This commit was SVN r17278.
Этот коммит содержится в:
родитель
fe6ba96dd6
Коммит
c53e19be46
@ -83,6 +83,7 @@ m4_include(config/ompi_check_vendor.m4)
|
||||
m4_include(config/ompi_config_subdir.m4)
|
||||
m4_include(config/ompi_config_subdir_args.m4)
|
||||
m4_include(config/ompi_configure_options.m4)
|
||||
m4_include(config/ompi_contrib.m4)
|
||||
m4_include(config/ompi_find_type.m4)
|
||||
m4_include(config/ompi_functions.m4)
|
||||
m4_include(config/ompi_get_version.m4)
|
||||
|
@ -47,6 +47,7 @@ EXTRA_DIST = \
|
||||
ompi_config_solaris_threads.m4 \
|
||||
ompi_config_threads.m4 \
|
||||
ompi_configure_options.m4 \
|
||||
ompi_contrib.m4 \
|
||||
ompi_functions.m4 \
|
||||
ompi_get_version.m4 \
|
||||
ompi_get_version.m4sh \
|
||||
|
125
config/ompi_contrib.m4
Обычный файл
125
config/ompi_contrib.m4
Обычный файл
@ -0,0 +1,125 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
dnl University Research and Technology
|
||||
dnl Corporation. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
dnl of Tennessee Research Foundation. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2007 Cisco, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
dnl
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# OMPI_CONTRIB
|
||||
#
|
||||
# configure the contributed software components. Currently fairly
|
||||
# hard-wired, but someday should be much more like OMPI_MCA. See
|
||||
# https://svn.open-mpi.org/trac/ompi/ticket/1162.
|
||||
#
|
||||
# USAGE:
|
||||
# OMPI_CONTRIB()
|
||||
#
|
||||
######################################################################
|
||||
AC_DEFUN([OMPI_CONTRIB],[
|
||||
dnl for OMPI_CONFIGURE_USER env variable
|
||||
AC_REQUIRE([OMPI_CONFIGURE_SETUP])
|
||||
|
||||
# Option to not build some of the contributed software packages
|
||||
AC_ARG_ENABLE([contrib-no-build],
|
||||
[AC_HELP_STRING([--enable-contrib-no-build=LIST],
|
||||
[Comma-separated list of contributed package NAMEs that will not be built. Example: "--enable-mca-no-build=libnbc,vt" will disable building both the "libnbc" and "vt" contributed software packages.])])
|
||||
|
||||
# Parse the list to see what we should not build
|
||||
ompi_show_subtitle "Configuring contributed software packages"
|
||||
AC_MSG_CHECKING([which contributed software packages should be disabled])
|
||||
if test "$enable_contrib_no_build" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_ERROR([*** The enable-contrib-no-build flag requires an explicit list
|
||||
*** of packages to not build. For example, --enable-contrib-no-build=vt])
|
||||
else
|
||||
ifs_save="$IFS"
|
||||
IFS="${IFS}$PATH_SEPARATOR,"
|
||||
msg=
|
||||
for item in $enable_contrib_no_build; do
|
||||
str="`echo DISABLE_contrib_${item}=1 | sed s/-/_/g`"
|
||||
eval $str
|
||||
msg="$item $msg"
|
||||
done
|
||||
IFS="$ifs_save"
|
||||
fi
|
||||
AC_MSG_RESULT([$msg])
|
||||
unset msg
|
||||
|
||||
# List of contrib subdirs to traverse into
|
||||
OMPI_CONTRIB_SUBDIRS=
|
||||
OMPI_CONTRIB_DIST_SUBDIRS=
|
||||
|
||||
# Cycle through each of the hard-coded software packages and
|
||||
# configure them if not disabled. May someday be expanded to have
|
||||
# autogen find the packages instead of this hard-coded list
|
||||
# (https://svn.open-mpi.org/trac/ompi/ticket/1162). I couldn't
|
||||
# figure out a simple/easy way to have the m4 foreach do the m4
|
||||
# include *and* all the rest of the stuff, so I settled for having
|
||||
# two lists: each contribted software package will need to add its
|
||||
# configure.m4 list here and then add its name to the m4 define
|
||||
# for contrib_software_list. Cope.
|
||||
#dnl m4_include(ompi/contrib/libnbc/configure.m4)
|
||||
m4_include(ompi/contrib/vt/configure.m4)
|
||||
|
||||
m4_define(contrib_software_list, [vt])
|
||||
#dnl m4_define(contrib_software_list, [libnbc, vt])
|
||||
m4_foreach(software, [contrib_software_list],
|
||||
[OMPI_CONTRIB_DIST_SUBDIRS="$OMPI_CONTRIB_DIST_SUBDIRS contrib/software"
|
||||
_OMPI_CONTRIB_CONFIGURE(software)])
|
||||
|
||||
# Setup the top-level glue
|
||||
AC_SUBST(OMPI_CONTRIB_SUBDIRS)
|
||||
AC_SUBST(OMPI_CONTRIB_DIST_SUBDIRS)
|
||||
])dnl
|
||||
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# _OMPI_CONTRIB_SOFTWARE
|
||||
#
|
||||
# Setup a specific contributed software package. This is a subroutine
|
||||
# because the work to setup each package is essentially the same.
|
||||
# Currently assumes that there is a configure.m4 file in the
|
||||
# contributed software directory. May someday be expanded to handle
|
||||
# other things.
|
||||
#
|
||||
# USAGE:
|
||||
# _OMPI_CONTRIB_SOFTARE([package_name])
|
||||
#
|
||||
######################################################################
|
||||
AC_DEFUN([_OMPI_CONTRIB_CONFIGURE],[
|
||||
|
||||
ompi_show_subsubsubtitle "$1 (m4 configuration macro)"
|
||||
|
||||
OMPI_CONTRIB_HAPPY=0
|
||||
if test "$DISABLE_contrib_$1" = ""; then
|
||||
OMPI_contrib_$1_CONFIG([OMPI_CONTRIB_HAPPY=1], [])
|
||||
AC_MSG_CHECKING([if contributed component $1 can compile])
|
||||
if test "$OMPI_CONTRIB_HAPPY" = "1"; then
|
||||
OMPI_CONTRIB_SUBDIRS="$OMPI_CONTRIB_SUBDIRS contrib/$1"
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
else
|
||||
AC_MSG_NOTICE([disabled via command line switch])
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(OMPI_ENABLE_CONTRIB_$1, [$OMPI_CONTRIB_HAPPY],
|
||||
[Enable contributed software package $1])
|
||||
unset OMPI_CONTRIB_HAPPY
|
||||
])dnl
|
11
configure.ac
11
configure.ac
@ -977,6 +977,17 @@ OMPI_MCA
|
||||
# checkpoint results
|
||||
AC_CACHE_SAVE
|
||||
|
||||
##################################
|
||||
# Contributed software
|
||||
##################################
|
||||
|
||||
ompi_show_title "Contributed software setup"
|
||||
|
||||
OMPI_CONTRIB
|
||||
|
||||
# checkpoint results
|
||||
AC_CACHE_SAVE
|
||||
|
||||
|
||||
############################################################################
|
||||
# Final top-level OMPI configuration
|
||||
|
@ -48,7 +48,8 @@ SUBDIRS = \
|
||||
$(MCA_ompi_FRAMEWORKS_SUBDIRS) \
|
||||
$(MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) \
|
||||
. \
|
||||
$(MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS)
|
||||
$(MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS) \
|
||||
$(OMPI_CONTRIB_SUBDIRS)
|
||||
|
||||
DIST_SUBDIRS = \
|
||||
include \
|
||||
@ -57,7 +58,8 @@ DIST_SUBDIRS = \
|
||||
etc \
|
||||
mpi \
|
||||
$(MCA_ompi_FRAMEWORKS_SUBDIRS) \
|
||||
$(MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS)
|
||||
$(MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS) \
|
||||
$(OMPI_CONTRIB_DIST_SUBDIRS)
|
||||
|
||||
# Build the main MPI library
|
||||
|
||||
|
26
ompi/contrib/vt/Makefile.am
Обычный файл
26
ompi/contrib/vt/Makefile.am
Обычный файл
@ -0,0 +1,26 @@
|
||||
# -*- makefile -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
SUBDIRS = \
|
||||
vt \
|
||||
wrappers
|
||||
|
||||
DIST_SUBDIRS = \
|
||||
vt \
|
||||
wrappers
|
1239
ompi/contrib/vt/Makefile.in
Обычный файл
1239
ompi/contrib/vt/Makefile.in
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
61
ompi/contrib/vt/configure.m4
Обычный файл
61
ompi/contrib/vt/configure.m4
Обычный файл
@ -0,0 +1,61 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2007 Cisco, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# OMPI_contrib_vt_CONFIG([action-if-can-compile],
|
||||
# [action-if-cant-compile])
|
||||
# ------------------------------------------------
|
||||
AC_DEFUN([OMPI_contrib_vt_CONFIG],[
|
||||
AC_ARG_WITH([contrib-vt-flags],
|
||||
[AC_HELP_STRING([--with-contrib-vt-flags=FLAGS],
|
||||
[Pass FLAGS to the VampirTrace distribution configuration script])])
|
||||
|
||||
AS_IF([test -n "$with_contrib_vt_flags" -a "$with_contrib_vt_flags" != "no"],
|
||||
[contrib_vt_flags="$with_contrib_vt_flags $contrib_vt_flags"],
|
||||
[contrib_vt_flags=])
|
||||
|
||||
AS_IF([test -n "$prefix" -a "$prefix" != "NONE"],
|
||||
[contrib_vt_flags="$contrib_vt_flags --prefix=$prefix"])
|
||||
|
||||
AS_IF([test "$cross_compiling" = "yes"],
|
||||
[AS_IF([test ! -z $build], [contrib_vt_flags="$contrib_vt_flags --build=$build"])
|
||||
AS_IF([test ! -z $host], [contrib_vt_flags="$contrib_vt_flags --host=$host"])
|
||||
AS_IF([test ! -z $target], [contrib_vt_flags="$contrib_vt_flags --target=$target"])])
|
||||
|
||||
contrib_vt_flags="MPICC="'"'"$CC"'"'" --with-openmpi --with-mpi-inc-dir="'"'"$top_ompi_builddir/ompi/include"'"'" --with-mpi-status-size=5 --with-mpi-io --disable-config-titles --disable-config-summary $contrib_vt_flags"
|
||||
|
||||
# Run VampirTrace's configure and see if it succeeded
|
||||
OMPI_CONFIG_SUBDIR([ompi/contrib/vt/vt],
|
||||
[$contrib_vt_flags],
|
||||
[contrib_vt_happy=1], [contrib_vt_happy=0])
|
||||
|
||||
# If VampirTrace configured itself successfully, setup OMPI-specific
|
||||
# VampirTrace glue code to build.
|
||||
AS_IF([test "$contrib_vt_happy" = "1"],
|
||||
[$1
|
||||
AC_CONFIG_FILES([
|
||||
ompi/contrib/vt/Makefile
|
||||
ompi/contrib/vt/wrappers/Makefile
|
||||
ompi/contrib/vt/wrappers/mpicc-vt-wrapper-data.txt
|
||||
ompi/contrib/vt/wrappers/mpic++-vt-wrapper-data.txt
|
||||
ompi/contrib/vt/wrappers/mpif77-vt-wrapper-data.txt
|
||||
ompi/contrib/vt/wrappers/mpif90-vt-wrapper-data.txt
|
||||
])],
|
||||
[$2])
|
||||
])dnl
|
12
ompi/contrib/vt/vt/AUTHORS
Обычный файл
12
ompi/contrib/vt/vt/AUTHORS
Обычный файл
@ -0,0 +1,12 @@
|
||||
VampirTrace is developped in collaboration with the KOJAK project
|
||||
at ZAM/FZ Juelich (http://www.fz-juelich.de/zam/kojak)
|
||||
|
||||
Staff at ZIH:
|
||||
Matthias Jurenz
|
||||
Andreas Knuepfer
|
||||
Ronny Brendel
|
||||
Matthias Lieber
|
||||
Jens Doleschal
|
||||
Robert Henschel
|
||||
Holger Mickler
|
||||
Matthias Mueller
|
19
ompi/contrib/vt/vt/CONFIG-EXAMPLES
Обычный файл
19
ompi/contrib/vt/vt/CONFIG-EXAMPLES
Обычный файл
@ -0,0 +1,19 @@
|
||||
+++ SGI Altix 4700 (TU Dresden, ZIH)
|
||||
./configure CC=icc CXX=icpc F77=ifort FC=ifort --with-local-tmp-dir=/scratch --with-papi-dir=/opt/papi/3.2.1 --with-papi-lib="-lpapi /opt/papi/3.2.1/lib/libpfm.a" --with-dyninst-dir=/licsoft/tools/dyninst/5.0.1
|
||||
|
||||
|
||||
+++ IBM Regatta p690+ (Research Centre Juelich)
|
||||
./configure AR="ar -X32_64" CC=xlc_r CFLAGS="-O2 -g -q64" CXX=xlC_r CXXFLAGS="-O2 -g -q64" F77=xlf_r FFLAGS="-O2 -g -q64" FC=xlf90_r FCFLAGS="-O2 -g -q64" MPICC=mpcc_r --with-mpi-dir=/usr/lpp/ppe.poe --with-papi-dir=/usr/local/beta/papi --with-papi-lib=-lpapi64
|
||||
|
||||
|
||||
+++ BlueGene/L (Research Centre Juelich)
|
||||
./configure --with-otf-extra-opts="--with-zlib --with-zlib-dir=<zlib-dir>" --build=powerpc64-unknown-linux-gnu --host=none-ibm-linux CC=blrts_xlc CFLAGS=-O2 CXX=blrts_xlC CXXFLAGS=-O2 F77=blrts_xlf90 FC=blrts_xlf90 CXX_FOR_BUILD=xlC_r MPICC=mpixlc --with-otf-lib="-lotf -L<zlibdir> -lz" --with-mpi-dir=/bgl/BlueLight/ppcfloor/bglsys --with-mpi-lib=-lmpich.rts --with-pmpi-lib=-lmpich.rts --with-fmpi-lib=-lfmpich.rts --disable-iotrace --with-papi-dir=/usr/local/papi/papi-3.5.0 --with-papi-lib="-lpapi.rts -lbgl_perfctr.rts"
|
||||
|
||||
|
||||
+++ BlueGene/L (University of Edinburgh)
|
||||
./configure CC=blrts_xlc CFLAGS="-O2 -g" CXX=blrts_xlC CXXFLAGS="-O2 -g" F77=blrts_xlf90 FC=blrts_xlf90 CXX_FOR_BUILD=xlC_r MPICC=mpixlc --build=powerpc64-unknown-linux-gnu --host=none-ibm-linux --with-otf-lib=-lotf --with-mpi-dir=/bgl/BlueLight/ppcfloor/bglsys --with-mpi-lib=-lmpich.rts --with-pmpi-lib=-lmpich.rts --with-fmpi-lib=-lfmpich.rts
|
||||
|
||||
|
||||
+++ NEC SX-8 (High Performance Computing Center Stuttgart)
|
||||
./configure CC=sxcc CXX=sxc++ F77=sxf90 FC=sxf90 AR=sxar MPICC=sxmpicc CXX_FOR_BUILD=c++ RANLIB="sxar st" OMPFLAG=-Popenmp --build=ia64-unknown-linux-gnu --host=sx8-nec-superux15.1 --with-otf-lib=-lotf
|
||||
|
32
ompi/contrib/vt/vt/COPYING
Обычный файл
32
ompi/contrib/vt/vt/COPYING
Обычный файл
@ -0,0 +1,32 @@
|
||||
Copyright (c) 2005-2007, ZIH, TU Dresden, Federal Republic of Germany
|
||||
|
||||
Copyright (c) 1998-2005, Forschungszentrum Juelich GmbH, Federal
|
||||
Republic of Germany
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
- Neither the name of ZIH, TU Dresden or Forschungszentrum Juelich GmbH, nor the
|
||||
names of its contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
197
ompi/contrib/vt/vt/ChangeLog
Обычный файл
197
ompi/contrib/vt/vt/ChangeLog
Обычный файл
@ -0,0 +1,197 @@
|
||||
5.0.0
|
||||
- initial version
|
||||
|
||||
5.0.1
|
||||
- updated version of internal OTF to 1.1.3
|
||||
|
||||
5.0.2
|
||||
- updated version of internal OTF to 1.1.4
|
||||
|
||||
5.0.3
|
||||
- updated version of internal OTF to 1.1.5
|
||||
- fixed a bug in GNU compiler interface which might have caused
|
||||
a segmentation fault during flushing the trace buffer
|
||||
|
||||
5.0.4
|
||||
- fixed a bug which occurred on Opteron systems (faulty timestamps)
|
||||
- made sure that the ids of process groups and processes are
|
||||
different (for analyzing trace files)
|
||||
|
||||
5.0.5
|
||||
- fixed a bug in elg_otfunify which occurred if the environment
|
||||
variable ELG_PFORM_DIR was set
|
||||
|
||||
5.0.6
|
||||
- added creator informations of tracefile (tracelib, version, date
|
||||
and time)
|
||||
- reduced offset of process group token
|
||||
- improved name of process groups
|
||||
|
||||
5.1.0
|
||||
- counter event record will be wrote before leave event record
|
||||
- added region filter and grouping managment
|
||||
|
||||
5.1.1
|
||||
- write list of filtered regions to file (*.x.filt)
|
||||
- specified flags of 'ar' in Makefile.defs (AFLAG) will
|
||||
be assign to internal OTF configure script
|
||||
|
||||
5.1.2
|
||||
- updated version of internal OTF to 1.1.8
|
||||
|
||||
5.1.3
|
||||
- fixed little bugs in build system, which occurred if multiple
|
||||
mode building used (Makefile.32-64)
|
||||
- added support for clusters of IBM Power3/4 machines
|
||||
and Linux PPC cluster with IBM compilers
|
||||
|
||||
5.1.4
|
||||
- updated version of internal OTF to 1.1.9
|
||||
- fixed a bug in elg_otfunify which occurred if compiled with PGI
|
||||
and used OMP parallelization
|
||||
- enhanced progress display of elg_otfunify
|
||||
|
||||
5.1.5
|
||||
- fixed a bug in elg_otfunify time synchronization
|
||||
|
||||
5.1.6
|
||||
- updated version of internal OTF to 1.2.11
|
||||
- fixed a bug: record the REAL buffer-length of a MPI non-blocking
|
||||
receive operation
|
||||
- added wrapper for MPI function 'MPI_Probe'
|
||||
- added Open MPI support
|
||||
- added a simple "configure" command
|
||||
(see INSTALL)
|
||||
|
||||
5.1.7
|
||||
- updated version of internal OTF to 1.2.13
|
||||
|
||||
5.2.0
|
||||
- updated version of internal OTF to 1.2.18 (see extlib/otf/ChangeLog)
|
||||
- replaced build system by GNU Autoconf/Automake
|
||||
- changed base name (e.g. environment variables, source files) to VT...
|
||||
(see doc/USAGE)
|
||||
- added OpenMP support by using OPARI instrumentation tool
|
||||
- write process group records, which contain the location of processes
|
||||
(node name)
|
||||
- added tool 'vtconfig' to simplify determining the right compiler and
|
||||
linker flags
|
||||
|
||||
5.2.1
|
||||
- fixed several performance issues
|
||||
- improved mechanism for getting clock cycles on IBM PPC64 machines
|
||||
- the user can specify the mechanism, which used for getting timer
|
||||
(only for Linux, SGI Altix, IBM AIX, Cray X1
|
||||
- see config.h after configure)
|
||||
|
||||
5.2.2
|
||||
- fixed a bug in region filter which occurred by tracing OpenMP apps.
|
||||
instrumented by compiler (vtinst)
|
||||
- added option '-k' for vtunify to keep input trace files
|
||||
|
||||
5.2.3
|
||||
- changed install directory of documentations from 'doc' to 'info'
|
||||
(adjustable by configure option '--infodir')
|
||||
- forward configure options '--exec-prefix', '--bindir', '--libdir', ',
|
||||
'--includedir', and '--infodir' to configure command of internal OTF
|
||||
- added checking for CPP-Style Fortran preprocessor of gfortran
|
||||
- added checking for location of 'mmtimer.h'
|
||||
- made sure that peers of events (e.g. msg. send enter + msg. send)
|
||||
have the same timestamp
|
||||
- clock synchronization can be forced
|
||||
(see config.h after configure)
|
||||
|
||||
5.2.4
|
||||
- updated version of internal OTF to 1.2.19 (see extlib/otf/ChangeLog)
|
||||
- fixed compile error, which occurred by using old SUN compilers
|
||||
- added a configure summary
|
||||
- added HP MPI support
|
||||
- renamed Fortran MPI wrapper library to 'libvt.fmpi' to avoid possible
|
||||
name conflicts
|
||||
- fixed a bug (integer overflow) in mechanism for getting timer on
|
||||
Linux systems
|
||||
|
||||
5.2.5
|
||||
- fixed potentially race condition by tracing OpenMP apps.
|
||||
- fixed some little memory leaks
|
||||
- fixed native counter issue on IA64 systems
|
||||
- added check for header files 'stdint.h' and 'inttypes.h'; if none of
|
||||
these files found, then own integer types will be defined
|
||||
|
||||
5.3.0
|
||||
- updated version of internal OTF to 1.3.4 (see extlib/otf/ChangeLog)
|
||||
- added support for automatic instrumentation by using Intel compiler
|
||||
version 10.x (uses new compiler flag '-finstrument-functions')
|
||||
- added support for binary instrumentation by using Dyninst
|
||||
- added support for GLIBC's memory allocation tracing
|
||||
(see doc/UserManual*)
|
||||
- bugfix: corrected process id for OpenMP collective operations
|
||||
- changed default function/region group from 'USR' to 'Application'
|
||||
- if only MPI-functions are instrumented, then entry-record of
|
||||
function 'user' will be generated before MPI_Init
|
||||
- added trace filter generator tool 'vtfilter'
|
||||
(see doc/USAGE.vtfilter)
|
||||
- added support for multiple compiler-instrumentations from one
|
||||
installation of VampirTrace (see INSTALL)
|
||||
- replaced vtinst, vtinst-pomp, and vtinst-dyn by VT's compiler
|
||||
wrapper (see doc/UserManual* and doc/USAGE.compinst)
|
||||
- added simple example applications
|
||||
- changed install directory of documentations from '$prefix/info'
|
||||
to '$prefix/share/vampirtrace/doc'
|
||||
- changed install directory of metrics-, filter-, and grouping
|
||||
configuration from '$prefix/doc' to '$prefix/share/vampirtrace'
|
||||
|
||||
5.3.1
|
||||
- set default trace call limit for all regions/functions to 100000
|
||||
|
||||
5.3.2
|
||||
- updated version of internal OTF to 1.3.7 (see extlib/otf/ChangeLog)
|
||||
- improved autoconf's m4 scripts for cross buildings
|
||||
- added support for VPATH builds
|
||||
|
||||
5.4.0
|
||||
- updated version of internal OTF to 1.3.8 (see extlib/otf/ChangeLog)
|
||||
- added support for user defined counters
|
||||
- if available, PAPI cycle counter can be used as timer
|
||||
(see config.h after configure)
|
||||
- recording of events will be stopped if the maximum number of
|
||||
buffer flushs (env. VT_MAX_FLUSHES) was reached
|
||||
- added support for LIBC's I/O tracing
|
||||
- improved autoconf's m4 scripts for cross buildings
|
||||
- default settings for the compiler wrappers will be stored
|
||||
in share/vampirtrace/vt*-wrapper-data.txt
|
||||
- vtfilter: - direct filtering without second trace run
|
||||
- parallelization using OpenMP
|
||||
|
||||
5.4.1
|
||||
- bugfix: added check for I/O functions which are a part of the large
|
||||
file extensions (e.g. open64, creat64, ...); disable corresponding
|
||||
wrapper functions, if system doesn't support these
|
||||
- added environment variable VT_DEMANGLE to enable/disable GNU
|
||||
demangling of C++ names (default: disabled, due to a bug in older
|
||||
versions of the GNU library 'liberty')
|
||||
- disabled support for I/O tracing on MacOS
|
||||
|
||||
5.4.2
|
||||
- bugfix for VPATH builds
|
||||
- added check for PAPI version to configure script
|
||||
(only support for version 3.x)
|
||||
|
||||
5.4.3
|
||||
- bugfix for Fortran compiler wrappers (vtf77, vtf90):
|
||||
OPARI's table source file (opari.tab.c) will be compiled
|
||||
with the C compiler and flags which were given for VT's
|
||||
configure (CC/CFLAGS)
|
||||
(changeable in vt*-wrapper-data.txt)
|
||||
- bugfixes in vtunify: - keep user's created process groups
|
||||
for MPI communicators
|
||||
- reserve sorting of global process group
|
||||
definitions
|
||||
|
||||
5.4.4
|
||||
- updated version of internal OTF to 1.3.9 (see extlib/otf/ChangeLog)
|
||||
- fixed a portability bug: use own implementation of function
|
||||
'strdup()'
|
||||
- removed variadic macros (they were introduced in C99)
|
||||
- fixed a bug for determining the timer-resolution for ITC
|
||||
|
183
ompi/contrib/vt/vt/INSTALL
Обычный файл
183
ompi/contrib/vt/vt/INSTALL
Обычный файл
@ -0,0 +1,183 @@
|
||||
|
||||
How to install and configure VampirTrace
|
||||
========================================
|
||||
|
||||
Basics
|
||||
------
|
||||
|
||||
Building VampirTrace is typically a combination of running "configure"
|
||||
and "make". Execute the following commands to install VampirTrace from
|
||||
within the directory at the top of the tree:
|
||||
|
||||
$ ./configure --prefix=/where/to/install
|
||||
[...lots of output...]
|
||||
$ make all install
|
||||
|
||||
If you need special access to install, then you can execute "make
|
||||
all" as a user with write permissions in the build tree, and a
|
||||
separate "make install" as a user with write permissions to the
|
||||
install tree.
|
||||
|
||||
However, for more details, read also the following instructions. Sometimes
|
||||
it might be necessary to provide ./configure with options, e.g.
|
||||
specifications of paths or compilers. Consult the CONFIG-EXAMPLES file to
|
||||
get an idea of how to configure VampirTrace for your platform.
|
||||
|
||||
|
||||
Configure Options
|
||||
-----------------
|
||||
|
||||
* Compilers and Options
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
|
||||
* Installation Names
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', /usr/local/include', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
|
||||
* Optional Features
|
||||
|
||||
--enable-compinst=COMPINSTLIST
|
||||
enable support for compiler instrumentation
|
||||
(gnu,intel,pgi,phat,xl,ftrace), default:
|
||||
automatically by configure
|
||||
NOTE: the first item in list is the default
|
||||
instrumentation type for the compiler-wrapper
|
||||
|
||||
--enable-mpi enable MPI support, default: enable if
|
||||
MPI-installation found by configure
|
||||
|
||||
--enable-omp enable OpenMP support, default: enable if given
|
||||
compiler supports OpenMP
|
||||
|
||||
--enable-hyb enable Hybrid (MPI/OpenMP) support, default:
|
||||
enable if MPI-installation found and given
|
||||
compiler supports OpenMP
|
||||
|
||||
--enable-dyninst enable support for binary-instrumentation using
|
||||
Dyninst, default: enable if found by configure
|
||||
Note: needs Dyninst version 5.0.1 or higher !
|
||||
(downloadable at http://www.dyninst.org)
|
||||
|
||||
--enable-dyninst-attlib build shared library which attach dyninst to running
|
||||
user's application, default: enable if dyninst found
|
||||
by configure and system supports shared libraries
|
||||
|
||||
--enable-papi enable PAPI hardware counter support, default:
|
||||
enable if found by configure
|
||||
|
||||
If your system does not have a MPI Fortran library, set
|
||||
|
||||
--enable-fmpi-lib build MPI Fortran support library, default: enable
|
||||
if no MPI Fortran library found by configure
|
||||
|
||||
|
||||
* Important Optional Packages
|
||||
|
||||
--with-local-tmp-dir=LTMPDIR
|
||||
give the path for node-local temporary directory,
|
||||
default: /tmp
|
||||
|
||||
Specify name of (SMP) node-local directory that can be used to store
|
||||
temporary trace files.
|
||||
|
||||
If you would like to use an external version of OTF library, set
|
||||
--with-extern-otf use external OTF library, default: not set
|
||||
--with-extern-otf-dir=OTFDIR
|
||||
give the path for OTF, default: /usr
|
||||
|
||||
--with-otf-extra-opts=OTFEXTRAOPTS
|
||||
extra options for OTF configuration
|
||||
(only for internal OTF version)
|
||||
|
||||
--with-otf-lib=OTFLIB use given otf lib, default: -lotf -lz
|
||||
|
||||
If used OTF library was built without zlib support, then it will do
|
||||
to set OTFLIB to '-lotf'.
|
||||
|
||||
--with-dyninst-dir=DYNIDIR
|
||||
give the path for DYNINST, default: /usr
|
||||
|
||||
--with-papi-dir=PAPIDIR
|
||||
give the path for PAPI, default: /usr
|
||||
|
||||
If you don't have specified the environment variable MPICC
|
||||
(MPI compiler command), use following options to set location
|
||||
of your MPI installation:
|
||||
|
||||
--with-mpi-dir=MPIDIR give the path for MPI, default: /usr
|
||||
|
||||
--with-mpi-inc-dir=MPIINCDIR
|
||||
give the path for MPI-include-files, default:
|
||||
MPIDIR/include
|
||||
|
||||
--with-mpi-lib-dir=MPILIBDIR
|
||||
give the path for MPI-libraries, default:
|
||||
MPIDIR/lib
|
||||
|
||||
--with-mpi-lib use given mpi lib
|
||||
|
||||
--with-pmpi-lib use given pmpi lib
|
||||
|
||||
If your system does not have a MPI Fortran library,
|
||||
set '--enable-fmpi-lib' (see above), otherwise set
|
||||
|
||||
--with-fmpi-lib use given fmpi lib
|
||||
|
||||
|
||||
Set up the Environment
|
||||
----------------------
|
||||
|
||||
Add the bin subdirectory of the installation directory to your PATH
|
||||
environment variable. To use VampirTrace with Dyninst, you will also need
|
||||
to add the lib subdirectory to your LD_LIBRARY_PATH environment variable:
|
||||
|
||||
for csh and tcsh:
|
||||
|
||||
> setenv PATH <vampirtrace-install>/bin:$PATH
|
||||
> setenv LD_LIBRARY_PATH <vampirtrace-install>/lib:$LD_LIBRARY_PATH
|
||||
|
||||
for bash and sh:
|
||||
|
||||
$ export PATH=<vampirtrace-install>/bin:$PATH
|
||||
$ export LD_LIBRARY_PATH=<vampirtrace-install>/lib:$LD_LIBRARY_PATH
|
||||
|
||||
|
||||
Notes for Developers
|
||||
--------------------
|
||||
|
||||
* Building
|
||||
|
||||
If you have checked out a DEVELOPER'S COPY of VampirTrace (i.e. you
|
||||
checked out from CVS), you should first run:
|
||||
|
||||
$ ./bootstrap
|
||||
|
||||
(Note that GNU Autoconf 2.53 or higher is required.)
|
||||
|
||||
|
||||
* Creating a distribution tarball (VampirTrace-X.X.X.tar.gz)
|
||||
|
||||
If you would like create a new distribution tarball, run:
|
||||
|
||||
$ ./makedist <version> <otftarball>
|
||||
|
||||
instead of 'make dist'.
|
||||
|
||||
The script 'makedist' adapts the version number (<version>) in
|
||||
configure.in and extracts given OTF-tarball (<otftarball>) in
|
||||
./extlib/otf.
|
||||
|
25
ompi/contrib/vt/vt/Makefile.am
Обычный файл
25
ompi/contrib/vt/vt/Makefile.am
Обычный файл
@ -0,0 +1,25 @@
|
||||
SUBDIRS = \
|
||||
extlib \
|
||||
vtlib \
|
||||
tools \
|
||||
doc
|
||||
|
||||
EXTRA_DIST = \
|
||||
examples/c/Makefile \
|
||||
examples/c/Makefile.config \
|
||||
examples/c/hello.c \
|
||||
examples/c/pi.c \
|
||||
examples/c/ring.c \
|
||||
examples/cxx/Makefile \
|
||||
examples/cxx/Makefile.config \
|
||||
examples/cxx/hello.cc \
|
||||
examples/cxx/pi.cc \
|
||||
examples/cxx/ring.cc \
|
||||
examples/fortran/Makefile \
|
||||
examples/fortran/Makefile.config \
|
||||
examples/fortran/hello.F \
|
||||
examples/fortran/pi.F \
|
||||
examples/fortran/ring.F \
|
||||
CONFIG-EXAMPLES \
|
||||
VERSION
|
||||
|
689
ompi/contrib/vt/vt/Makefile.in
Обычный файл
689
ompi/contrib/vt/vt/Makefile.in
Обычный файл
@ -0,0 +1,689 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
compile config.guess config.sub depcomp install-sh missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BFDINCDIR = @BFDINCDIR@
|
||||
BFDLIB = @BFDLIB@
|
||||
BFDLIBDIR = @BFDLIBDIR@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASDEPMODE = @CCASDEPMODE@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
|
||||
CXX_FOR_BUILD = @CXX_FOR_BUILD@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLINCDIR = @DLINCDIR@
|
||||
DLLIB = @DLLIB@
|
||||
DLLIBDIR = @DLLIBDIR@
|
||||
DYNIINCDIR = @DYNIINCDIR@
|
||||
DYNILIB = @DYNILIB@
|
||||
DYNILIBDIR = @DYNILIBDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FC = @FC@
|
||||
FCFLAGS = @FCFLAGS@
|
||||
FFLAGS = @FFLAGS@
|
||||
FMPILIB = @FMPILIB@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
LDSHFLAG = @LDSHFLAG@
|
||||
LIBERTYINCDIR = @LIBERTYINCDIR@
|
||||
LIBERTYLIB = @LIBERTYLIB@
|
||||
LIBERTYLIBDIR = @LIBERTYLIBDIR@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPICC = @MPICC@
|
||||
MPICFLAGS = @MPICFLAGS@
|
||||
MPIDIR = @MPIDIR@
|
||||
MPIINCDIR = @MPIINCDIR@
|
||||
MPILIB = @MPILIB@
|
||||
MPILIBDIR = @MPILIBDIR@
|
||||
OBJEXT = @OBJEXT@
|
||||
OMPFLAG = @OMPFLAG@
|
||||
OTFDIR = @OTFDIR@
|
||||
OTFINCDIR = @OTFINCDIR@
|
||||
OTFLIB = @OTFLIB@
|
||||
OTFLIBDIR = @OTFLIBDIR@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PAPIINCDIR = @PAPIINCDIR@
|
||||
PAPILIB = @PAPILIB@
|
||||
PAPILIBDIR = @PAPILIBDIR@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PLATFORM = @PLATFORM@
|
||||
PMPILIB = @PMPILIB@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VTDYNATTLIB = @VTDYNATTLIB@
|
||||
VT_WRAPPER_AVAIL_INST = @VT_WRAPPER_AVAIL_INST@
|
||||
VT_WRAPPER_DEFAULT_INST = @VT_WRAPPER_DEFAULT_INST@
|
||||
VT_WRAPPER_EXTRA_CFLAGS = @VT_WRAPPER_EXTRA_CFLAGS@
|
||||
VT_WRAPPER_EXTRA_CXXFLAGS = @VT_WRAPPER_EXTRA_CXXFLAGS@
|
||||
VT_WRAPPER_EXTRA_FCFLAGS = @VT_WRAPPER_EXTRA_FCFLAGS@
|
||||
VT_WRAPPER_EXTRA_FFLAGS = @VT_WRAPPER_EXTRA_FFLAGS@
|
||||
VT_WRAPPER_EXTRA_LDFLAGS = @VT_WRAPPER_EXTRA_LDFLAGS@
|
||||
VT_WRAPPER_EXTRA_LIBS = @VT_WRAPPER_EXTRA_LIBS@
|
||||
VT_WRAPPER_INCDIR = @VT_WRAPPER_INCDIR@
|
||||
VT_WRAPPER_LIBDIR = @VT_WRAPPER_LIBDIR@
|
||||
VT_WRAPPER_OPARI_BIN = @VT_WRAPPER_OPARI_BIN@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_FC = @ac_ct_FC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = \
|
||||
extlib \
|
||||
vtlib \
|
||||
tools \
|
||||
doc
|
||||
|
||||
EXTRA_DIST = \
|
||||
examples/c/Makefile \
|
||||
examples/c/Makefile.config \
|
||||
examples/c/hello.c \
|
||||
examples/c/pi.c \
|
||||
examples/c/ring.c \
|
||||
examples/cxx/Makefile \
|
||||
examples/cxx/Makefile.config \
|
||||
examples/cxx/hello.cc \
|
||||
examples/cxx/pi.cc \
|
||||
examples/cxx/ring.cc \
|
||||
examples/fortran/Makefile \
|
||||
examples/fortran/Makefile.config \
|
||||
examples/fortran/hello.F \
|
||||
examples/fortran/pi.F \
|
||||
examples/fortran/ring.F \
|
||||
CONFIG-EXAMPLES \
|
||||
VERSION
|
||||
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-tags distcleancheck \
|
||||
distdir distuninstallcheck dvi dvi-am html html-am info \
|
||||
info-am install install-am install-data install-data-am \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
0
ompi/contrib/vt/vt/NEWS
Обычный файл
0
ompi/contrib/vt/vt/NEWS
Обычный файл
10
ompi/contrib/vt/vt/README
Обычный файл
10
ompi/contrib/vt/vt/README
Обычный файл
@ -0,0 +1,10 @@
|
||||
VampirTrace
|
||||
|
||||
VampirTrace consists of a tool set and a run-time library for instrumentation and tracing of software applications. In particular, it is tailored towards parallel and distributed High Performance Computing (HPC) applications.
|
||||
|
||||
The instrumentation part modifies a given application in order to inject additional measurement calls during run-time. The tracing part provides the actual measurement functionality used by the instrumentation calls. By this means, a variety of detailed performance properties can be collected and recorded during run-time.
|
||||
|
||||
VampirTrace version is available as open source software under the BSD license, see 'COPYING'. The software comes as a source code package. It can be installed by using autoconf procedures, see 'INSTALL'.
|
||||
|
||||
For instructions on how use VampirTrace to instrument application programs so that they produce an OTF event trace when executed, see 'doc/USAGE'.
|
||||
|
37
ompi/contrib/vt/vt/VERSION
Обычный файл
37
ompi/contrib/vt/vt/VERSION
Обычный файл
@ -0,0 +1,37 @@
|
||||
# This is the VERSION file for VampirTrace, describing the precise
|
||||
# version of VampirTrace in this distribution. The various components of
|
||||
# the version number below are combined to form a single version
|
||||
# number string.
|
||||
|
||||
# major, minor, and release are generally combined in the form
|
||||
# <major>.<minor>.<release>. If release is zero, then it is omitted.
|
||||
|
||||
major=5
|
||||
minor=4
|
||||
release=4
|
||||
|
||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
||||
# it will be appended to the version number. It does not have to be
|
||||
# numeric. Common examples include a1 (alpha release 1),
|
||||
# b1 (beta release 1), sc2005 (Super Computing 2005 release). The
|
||||
# only requirement is that it must be entirely printable ASCII
|
||||
# characters and have no white space.
|
||||
|
||||
greek=
|
||||
|
||||
# If want_svn=1, then the SVN r number will be included in the overall
|
||||
# VampirTrace version number in some form.
|
||||
|
||||
want_svn=0
|
||||
|
||||
# If svn_r=-1, then the SVN r numbere will be obtained dynamically at
|
||||
# run time, either 1) via the "svnversion" command (if this is a
|
||||
# Subversion checkout) in the form "r<svn_r>", or b) with the date (if
|
||||
# this is not a Subversion checkout, and the svnversion command cannot
|
||||
# be used) in the form of "svn<date>". Alternatively, if svn_r is not
|
||||
# -1, the value of svn_r will be directly appended to the version
|
||||
# string. This happens during "make dist", for example: if the
|
||||
# distribution tarball is being made from an SVN checkout, the value
|
||||
# of svn_r in this file is replaced with the output of "svnversion".
|
||||
|
||||
svn_r=
|
1705
ompi/contrib/vt/vt/acinclude.m4
Обычный файл
1705
ompi/contrib/vt/vt/acinclude.m4
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
931
ompi/contrib/vt/vt/aclocal.m4
поставляемый
Обычный файл
931
ompi/contrib/vt/vt/aclocal.m4
поставляемый
Обычный файл
@ -0,0 +1,931 @@
|
||||
# generated automatically by aclocal 1.10 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_if(m4_PACKAGE_VERSION, [2.61],,
|
||||
[m4_fatal([this file was generated for autoconf 2.61.
|
||||
You have another version of autoconf. If you want to use that,
|
||||
you should regenerate the build system entirely.], [63])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.10'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.10], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
# _AM_AUTOCONF_VERSION(VERSION)
|
||||
# -----------------------------
|
||||
# aclocal traces this macro to find the Autoconf version.
|
||||
# This is a private macro too. Using m4_define simplifies
|
||||
# the logic in aclocal, which can simply ignore this definition.
|
||||
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.10])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
|
||||
|
||||
# Figure out how to run the assembler. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
|
||||
# AM_PROG_AS
|
||||
# ----------
|
||||
AC_DEFUN([AM_PROG_AS],
|
||||
[# By default we simply use the C compiler to build assembly code.
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
test "${CCAS+set}" = set || CCAS=$CC
|
||||
test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
|
||||
AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)])
|
||||
AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])
|
||||
_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
|
||||
])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||
# is not polluted with repeated "-I."
|
||||
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
|
||||
# AM_PROG_CC_C_O
|
||||
# --------------
|
||||
# Like AC_PROG_CC_C_O, but changed for automake.
|
||||
AC_DEFUN([AM_PROG_CC_C_O],
|
||||
[AC_REQUIRE([AC_PROG_CC_C_O])dnl
|
||||
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
# FIXME: we rely on the cache variable name because
|
||||
# there is no other way.
|
||||
set dummy $CC
|
||||
ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
|
||||
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
dnl Make sure AC_PROG_CC is never called again, or it will override our
|
||||
dnl setting of CC.
|
||||
m4_define([AC_PROG_CC],
|
||||
[m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check for `mkdir -p'.
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||
dnl adjustment using top_builddir (which is defined more often than
|
||||
dnl MKDIR_P).
|
||||
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||
case $mkdir_p in
|
||||
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([acinclude.m4])
|
142
ompi/contrib/vt/vt/compile
Исполняемый файл
142
ompi/contrib/vt/vt/compile
Исполняемый файл
@ -0,0 +1,142 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand `-c -o'.
|
||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file `INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
eat=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we strip `-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
1516
ompi/contrib/vt/vt/config.guess
поставляемый
Исполняемый файл
1516
ompi/contrib/vt/vt/config.guess
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
179
ompi/contrib/vt/vt/config.h.in
Обычный файл
179
ompi/contrib/vt/vt/config.h.in
Обычный файл
@ -0,0 +1,179 @@
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* Define to 1 to disable clock synchronization */
|
||||
#undef DISABLE_CLOCK_SYNC
|
||||
|
||||
/* Define to 1 if you have the `atexit' function. */
|
||||
#undef HAVE_ATEXIT
|
||||
|
||||
/* Define to 1 if you have the `creat64' function. */
|
||||
#undef HAVE_CREAT64
|
||||
|
||||
/* Define to 1 if you have the <fnmatch.h> header file. */
|
||||
#undef HAVE_FNMATCH_H
|
||||
|
||||
/* Define to 1 if you have the `fopen64' function. */
|
||||
#undef HAVE_FOPEN64
|
||||
|
||||
/* Define to 1 if you have the `fseeko64' function. */
|
||||
#undef HAVE_FSEEKO64
|
||||
|
||||
/* Define to 1 if you have the `fsetpos64' function. */
|
||||
#undef HAVE_FSETPOS64
|
||||
|
||||
/* Define to 1 if you have the `gethostname' function. */
|
||||
#undef HAVE_GETHOSTNAME
|
||||
|
||||
/* Define to 1 if you can use GNU demangling of C++ names. */
|
||||
#undef HAVE_GNU_DEMANGLE
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <linux/mmtimer.h> header file. */
|
||||
#undef HAVE_LINUX_MMTIMER_H
|
||||
|
||||
/* Define to 1 if you have the `lseek64' function. */
|
||||
#undef HAVE_LSEEK64
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <mmtimer.h> header file. */
|
||||
#undef HAVE_MMTIMER_H
|
||||
|
||||
/* Define to 1 if MPI supports file access. */
|
||||
#undef HAVE_MPIO
|
||||
|
||||
/* Define to 1 if you have the `open64' function. */
|
||||
#undef HAVE_OPEN64
|
||||
|
||||
/* Define if OpenMP is enabled */
|
||||
#undef HAVE_OPENMP
|
||||
|
||||
/* Define to 1 if you have the `pread64' function. */
|
||||
#undef HAVE_PREAD64
|
||||
|
||||
/* Define to 1 if you have the `pwrite64' function. */
|
||||
#undef HAVE_PWRITE64
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
#undef HAVE_SETENV
|
||||
|
||||
/* Define to 1 if you have the <sn/mmtimer.h> header file. */
|
||||
#undef HAVE_SN_MMTIMER_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define as the size of MPI_STATUS_SIZE */
|
||||
#undef MPI_STATUS_SIZE
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Path for node-local temporary directory */
|
||||
#undef PFORM_LDIR
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of `mode_t', as computed by sizeof. */
|
||||
#undef SIZEOF_MODE_T
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
#undef SIZEOF_VOIDP
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Use timer (see below) */
|
||||
#undef TIMER
|
||||
|
||||
/* Use `clock_gettime' function */
|
||||
#undef TIMER_CLOCK_GETTIME
|
||||
|
||||
/* CRAY Real-Time-Clock */
|
||||
#undef TIMER_CRAY_RTCLOCK
|
||||
|
||||
/* Cycle counter (e.g. TSC) */
|
||||
#undef TIMER_CYCLE_COUNTER
|
||||
|
||||
/* dclock */
|
||||
#undef TIMER_DCLOCK
|
||||
|
||||
/* gethrtime */
|
||||
#undef TIMER_GETHRTIME
|
||||
|
||||
/* Use `gettimeofday' function */
|
||||
#undef TIMER_GETTIMEOFDAY
|
||||
|
||||
/* Intel Multimedia Timer */
|
||||
#undef TIMER_MMTIMER
|
||||
|
||||
/* PAPI_get_real_cyc */
|
||||
#undef TIMER_PAPI_REAL_CYC
|
||||
|
||||
/* PAPI_get_real_usec */
|
||||
#undef TIMER_PAPI_REAL_USEC
|
||||
|
||||
/* IBM Power family Real-Time-Clock */
|
||||
#undef TIMER_POWER_REALTIME
|
||||
|
||||
/* RTC (DOES NOT WORK YET WITH FORTRAN CODES) */
|
||||
#undef TIMER_RTC
|
||||
|
||||
/* Read PowerPC 440 time base registers */
|
||||
#undef TIMER_RTS_GET_TIMEBASE
|
||||
|
||||
/* Hardware Switch-Clock (it's necessary to link your application with
|
||||
'-lswclock') */
|
||||
#undef TIMER_SWITCH_CLOCK
|
||||
|
||||
/* NEC SX HGTIME */
|
||||
#undef TIMER_SYSSX_HGTIME
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
1626
ompi/contrib/vt/vt/config.sub
поставляемый
Исполняемый файл
1626
ompi/contrib/vt/vt/config.sub
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
16267
ompi/contrib/vt/vt/configure
поставляемый
Исполняемый файл
16267
ompi/contrib/vt/vt/configure
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
301
ompi/contrib/vt/vt/configure.in
Обычный файл
301
ompi/contrib/vt/vt/configure.in
Обычный файл
@ -0,0 +1,301 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT(VampirTrace, 5.4.4, service@vampir.eu)
|
||||
AM_INIT_AUTOMAKE(VampirTrace, 5.4.4)
|
||||
AC_CONFIG_SRCDIR(config.h.in)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
ACVT_CONF_INIT
|
||||
|
||||
ACVT_CONF_TITLE([Initialization])
|
||||
|
||||
# Check for absolute paths of $builddir and $srcdir
|
||||
top_vt_builddir="`pwd`"
|
||||
cd "$srcdir"
|
||||
top_vt_srcdir="`pwd`"
|
||||
cd "$top_vt_builddir"
|
||||
AC_MSG_NOTICE([builddir: $top_vt_builddir])
|
||||
AC_MSG_NOTICE([srcdir: $top_vt_srcdir])
|
||||
AS_IF([test "$top_vt_builddir" != "$top_vt_srcdir"], AC_MSG_NOTICE([detected VPATH build]))
|
||||
|
||||
# Check for type of host system
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
# Correct install paths
|
||||
AS_IF([test x"$prefix" = "xNONE"], [prefix="$ac_default_prefix"])
|
||||
AS_IF([test x"$exec_prefix" = "xNONE"], [exec_prefix="$prefix"])
|
||||
AS_IF([test x"$datarootdir" = x -o "$datarootdir" = "\${prefix}/share"],
|
||||
[datarootdir="\${prefix}/share/\${PACKAGE_TARNAME}"])
|
||||
AS_IF([test x"$docdir" = x -o "$docdir" = "\${datarootdir}/doc/\${PACKAGE_TARNAME}"],
|
||||
[docdir="\${datarootdir}/doc"])
|
||||
|
||||
ACVT_CONF_TITLE([Compiler, preprocessor, and programs])
|
||||
|
||||
# Check for compiler and preprocessor
|
||||
AS_IF([test x"$F77" = x -a x"$FC" != x], [F77=$FC])
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CPP
|
||||
AC_PROG_CXXCPP
|
||||
AC_PROG_F77
|
||||
AC_PROG_FC
|
||||
|
||||
AM_CONDITIONAL(AMHAVECC, test x"$CC" != x)
|
||||
AM_CONDITIONAL(AMHAVECXX, test x"$CXX" != x)
|
||||
AM_CONDITIONAL(AMHAVEF77, test x"$F77" != x)
|
||||
AM_CONDITIONAL(AMHAVEFC, test x"$FC" != x)
|
||||
|
||||
# Check for *front-end* C++ compiler, preprocessor, and flags
|
||||
AC_ARG_VAR(CXX_FOR_BUILD, [C++ compiler command for build system])
|
||||
AC_ARG_VAR(CXXFLAGS_FOR_BUILD, [C++ compiler flags for build system])
|
||||
AC_ARG_VAR(CXXCPP_FOR_BUILD, [C++ preprocessor for build system])
|
||||
AC_ARG_VAR(CPPFLAGS_FOR_BUILD, [C/C++/Objective C preprocessor flags for build system])
|
||||
AC_ARG_VAR(LDFLAGS_FOR_BUILD, [linker flags for build system])
|
||||
AC_ARG_VAR(LIBS_FOR_BUILD, [libraries to pass to the linker for build system])
|
||||
|
||||
AS_IF([test x"$cross_compiling" = "xyes"],
|
||||
[
|
||||
AC_MSG_CHECKING([for C++ compiler for build system ($build)])
|
||||
AS_IF([test x"$CXX_FOR_BUILD" = x],
|
||||
[
|
||||
AC_MSG_RESULT([$CXX])
|
||||
AC_MSG_NOTICE([no C++ compiler command for build system given
|
||||
In cross compile mode, it's recommended to build the compiler wrappers and OPARI for the build system. Set \`CXX_FOR_BUILD' to the C++ compiler of build system therefor.])
|
||||
CXX_FOR_BUILD=$CXX
|
||||
cxx_for_build_given="no"
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT([$CXX_FOR_BUILD])
|
||||
cxx_for_build_given="yes"
|
||||
])
|
||||
AS_IF([test x"$CXXFLAGS_FOR_BUILD" = x], [CXXFLAGS_FOR_BUILD=$CXXFLAGS])
|
||||
AS_IF([test x"$CXXCPP_FOR_BUILD" = x], [CXXCPP_FOR_BUILD=$CXXCPP])
|
||||
AS_IF([test x"$CPPFLAGS_FOR_BUILD" = x], [CPPFLAGS_FOR_BUILD=$CPPFLAGS])
|
||||
AS_IF([test x"$LDFLAGS_FOR_BUILD" = x], [LDFLAGS_FOR_BUILD=$LDFLAGS])
|
||||
AS_IF([test x"$LIBS_FOR_BUILD" = x], [LIBS_FOR_BUILD=$LIBS])
|
||||
|
||||
AS_IF([test x"$cxx_for_build_given" = "xyes"],
|
||||
[
|
||||
AC_LANG([C++])
|
||||
sav_CXX=$CXX; sav_CXXFLAGS=$CXXFLAGS; sav_CXXCPP=$CXXCPP
|
||||
sav_CPPFLAGS=$CPPFLAGS; sav_LDFLAGS=$LDFLAGS; sav_LIBS=$LIBS
|
||||
CXX=$CXX_FOR_BUILD; CXXFLAGS=$CXXFLAGS_FOR_BUILD; CXXCPP=$CXXCPP_FOR_BUILD
|
||||
CPPFLAGS=$CPPFLAGS_FOR_BUILD; LDFLAGS=$LDFLAGS_FOR_BUILD; LIBS=$LIBS_FOR_BUILD
|
||||
AC_MSG_CHECKING([whether the C++ compiler for build system works])
|
||||
AC_TRY_LINK([], [],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_ERROR([C++ compiler for build system cannot create executables
|
||||
See \`config.log' for more details.])])
|
||||
CXX=$sav_CXX; CXXFLAGS=$sav_CXXFLAGS; CXXCPP=$sav_CXXCPP
|
||||
CPPFLAGS=$sav_CPPFLAGS; LDFLAGS=$sav_LDFLAGS; LIBS=$sav_LIBS
|
||||
AC_LANG([C])
|
||||
])
|
||||
],
|
||||
[
|
||||
# reset *_FOR_BUILD variables, if no cross compiling
|
||||
CXX_FOR_BUILD=$CXX; CXXFLAGS_FOR_BUILD=$CXXFLAGS; CXXCPP_FOR_BUILD=$CXXCPP
|
||||
CPPFLAGS_FOR_BUILD=$CPPFLAGS; LDFLAGS_FOR_BUILD=$LDFLAGS; LIBS_FOR_BUILD=$LIBS
|
||||
])
|
||||
|
||||
# Check for programs
|
||||
AC_ARG_VAR(AR, [archiver command]) #AC_PROG_AR ?
|
||||
AC_CHECK_PROGS(AR, ar, AR=ar)
|
||||
AC_PROG_RANLIB
|
||||
AM_PROG_AS
|
||||
|
||||
ACVT_CONF_TITLE([Header files, types, and functions])
|
||||
|
||||
# Check for header files
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([stdint.h inttypes.h fnmatch.h])
|
||||
|
||||
# Check for datatypes
|
||||
AC_TYPE_SIZE_T
|
||||
AC_CHECK_SIZEOF(void*, 8)
|
||||
AC_CHECK_SIZEOF(int, 4)
|
||||
AC_CHECK_SIZEOF(long, 8)
|
||||
AC_CHECK_SIZEOF(mode_t, 4)
|
||||
|
||||
# Check for library functions
|
||||
#AC_REPLACE_FNMATCH
|
||||
#AC_FUNC_MALLOC
|
||||
#AC_FUNC_REALLOC
|
||||
AC_CHECK_FUNCS([atexit gethostname setenv])
|
||||
|
||||
# Check for OTF
|
||||
ACVT_CONF_TITLE([Open Trace Format (OTF) library and tools])
|
||||
ACVT_OTF
|
||||
AS_IF([test x"$use_extern_otf" = "xyes" -a x"$otf_error" = "xyes"], [exit 1])
|
||||
AM_CONDITIONAL(AMEXTERNOTF, test x"$use_extern_otf" = "xyes")
|
||||
|
||||
# Check for platform
|
||||
ACVT_CONF_TITLE([Platform specific setup])
|
||||
ACVT_PLATFORM
|
||||
|
||||
# Check for compiler instrumentation
|
||||
ACVT_CONF_TITLE([Compiler instrumentation])
|
||||
ACVT_COMPINST
|
||||
AS_IF([test x"$force_compinst" = "xyes" -a x"$compinst_error" = "xyes"], [exit 1])
|
||||
AS_IF([test x"$enable_config_titles" = "xyes" -a x"$check_compinst" = "xno"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_GNU, test x"$build_compinst_gnu" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_INTEL, test x"$build_compinst_intel" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_PGI, test x"$build_compinst_pgi" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_PHAT, test x"$build_compinst_phat" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_XL, test x"$build_compinst_xl" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDCOMPINST_FTRACE, test x"$build_compinst_ftrace" = "xyes")
|
||||
AM_CONDITIONAL(AMHAVEBFD, test x"$have_bfd" = "xyes")
|
||||
|
||||
# Check for binary instrumentation by Dyninst
|
||||
ACVT_CONF_TITLE([Binary instrumentation by Dyninst])
|
||||
ACVT_DYNINST
|
||||
AS_IF([test x"$force_dyninst" = "xyes" -a x"$dyninst_error" = "xyes"], [exit 1])
|
||||
AS_IF([test x"$force_dynattlib" = "xyes" -a x"$dynattlib_error" = "xyes"], [exit 1])
|
||||
AS_IF([test x"$enable_config_titles" = "xyes" -a x"$check_dyninst" = "xno"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
AM_CONDITIONAL(AMHAVEDYNINST, test x"$have_dyninst" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDDYNATTLIB, test x"$have_dyninst" = "xyes" -a x"$LDSHFLAG" != "x")
|
||||
AM_CONDITIONAL(AMHAVELIBERTY, test x"$have_liberty" = "xyes")
|
||||
|
||||
# Check for MPI and OpenMP
|
||||
check_omp="yes"; build_omp="yes"; force_omp="no"
|
||||
check_mpi="yes"; build_mpi="yes"; build_fmpi="no"; force_mpi="no"
|
||||
build_hyb="yes"
|
||||
AC_ARG_ENABLE(mpi,
|
||||
AC_HELP_STRING([--enable-mpi], [enable MPI support, default: enable if MPI-installation found by configure]),
|
||||
[
|
||||
AS_IF([test x"$enableval" = "xyes"],
|
||||
[force_mpi="yes"], [check_mpi="no"; build_mpi="no"])
|
||||
], [])
|
||||
|
||||
AC_ARG_ENABLE(omp,
|
||||
AC_HELP_STRING([--enable-omp], [enable OpenMP support, default: enable if given compiler supports OpenMP]),
|
||||
[
|
||||
AS_IF([test x"$enableval" = "xyes"],
|
||||
[force_omp="yes"], [check_omp="no"; build_omp="no"])
|
||||
], [])
|
||||
|
||||
AC_ARG_ENABLE(hyb,
|
||||
AC_HELP_STRING([--enable-hyb], [enable Hybrid (MPI/OpenMP) support, default: enable if MPI-installation found and given compiler supports OpenMP]),
|
||||
[
|
||||
AS_IF([test x"$enableval" = "xyes"],
|
||||
[check_omp="yes"; force_omp="yes"
|
||||
check_mpi="yes"; force_mpi="yes"],
|
||||
[build_hyb="no"])
|
||||
], [check_omp="yes"; check_mpi="yes"])
|
||||
|
||||
ACVT_CONF_TITLE([Message Passing Interface (MPI)])
|
||||
|
||||
AS_IF([test x"$check_mpi" = "xyes"],
|
||||
[
|
||||
ACVT_MPI
|
||||
AS_IF([test x"$mpi_error" = "xyes"],
|
||||
[
|
||||
AS_IF([test x"$force_mpi" = "xyes"], [exit 1])
|
||||
build_mpi="no"; build_fmpi="no"; build_hyb="no"
|
||||
])
|
||||
],
|
||||
[
|
||||
AS_IF([test x"$enable_config_titles" = "xyes"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
])
|
||||
AS_IF([test x"$MPICC" = x], [MPICC=$CC])
|
||||
|
||||
ACVT_CONF_TITLE([OpenMP parallelizer])
|
||||
|
||||
AS_IF([test x"$check_omp" = "xyes"],
|
||||
[
|
||||
ACVT_OMP
|
||||
AS_IF([test x"$omp_error" = "xyes"],
|
||||
[
|
||||
AS_IF([test x"$force_omp" = "xyes"], [exit 1])
|
||||
build_omp="no"; build_hyb="no"
|
||||
])
|
||||
],
|
||||
[
|
||||
AS_IF([test x"$enable_config_titles" = "xyes"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
])
|
||||
|
||||
AM_CONDITIONAL(AMBUILDMPI, test x"$build_mpi" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDFMPI, test x"$build_fmpi" = "xyes")
|
||||
AM_CONDITIONAL(AMHAVEOMP, test x"$have_omp" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDOMP, test x"$build_omp" = "xyes")
|
||||
AM_CONDITIONAL(AMBUILDHYB, test x"$build_hyb" = "xyes")
|
||||
|
||||
ACVT_CONF_TITLE([Additional tracing support])
|
||||
|
||||
# Check for memory tracing support
|
||||
ACVT_CONF_SUBTITLE([GLIBC's memory allocation tracing])
|
||||
ACVT_MEMHOOKS
|
||||
AS_IF([test x"$enable_config_titles" = "xyes" -a x"$check_memhooks" = "xno"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
AS_IF([test x"$force_memhooks" = "xyes" -a x"$memhooks_error" = "xyes"], [exit 1])
|
||||
AM_CONDITIONAL(AMHAVEMEMHOOKS, test x"$have_memhooks" = "xyes")
|
||||
|
||||
# Check for I/O tracing support
|
||||
ACVT_CONF_SUBTITLE([LIBC's I/O tracing])
|
||||
AS_IF([test x"$PLATFORM" = "xmacos"],
|
||||
[
|
||||
AC_MSG_NOTICE([not supported on MacOS])
|
||||
have_iowrap="no"
|
||||
],
|
||||
[
|
||||
ACVT_IOWRAP
|
||||
AS_IF([test x"$force_iowrap" = "xyes" -a x"$iowrap_error" = "xyes"], [exit 1])
|
||||
AS_IF([test x"$enable_config_titles" = "xyes" -a x"$check_iowrap" = "xno"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
])
|
||||
AM_CONDITIONAL(AMBUILDIOWRAP, test x"$have_iowrap" = "xyes")
|
||||
|
||||
# Check for PAPI hardware counter support
|
||||
ACVT_CONF_SUBTITLE([PAPI hardware counter])
|
||||
AS_IF([test x"$PLATFORM" = "xnecsx"],
|
||||
[
|
||||
AC_MSG_NOTICE([not supported on NEC SX])
|
||||
have_papi="no"
|
||||
],
|
||||
[
|
||||
ACVT_PAPI
|
||||
AS_IF([test x"$force_papi" = "xyes" -a x"$papi_error" = "xyes"], [exit 1])
|
||||
AS_IF([test x"$enable_config_titles" = "xyes" -a x"$check_papi" = "xno"],
|
||||
[AC_MSG_NOTICE([disabled via command line switch])])
|
||||
])
|
||||
AM_CONDITIONAL(AMHAVEPAPI, test x"$have_papi" = "xyes")
|
||||
|
||||
# Check path for node-local temporary directory
|
||||
ACVT_LTMPDIR
|
||||
|
||||
# Setup compiler wrappers
|
||||
ACVT_COMPWRAP
|
||||
|
||||
# Output files
|
||||
AC_CONFIG_FILES([Makefile
|
||||
extlib/Makefile
|
||||
vtlib/Makefile
|
||||
tools/Makefile
|
||||
tools/compwrap/Makefile
|
||||
tools/compwrap/vtcc-wrapper-data.txt
|
||||
tools/compwrap/vtcxx-wrapper-data.txt
|
||||
tools/compwrap/vtf77-wrapper-data.txt
|
||||
tools/compwrap/vtf90-wrapper-data.txt
|
||||
tools/opari/Makefile
|
||||
tools/opari/tool/Makefile
|
||||
tools/opari/doc/Makefile
|
||||
tools/vtdyn/Makefile
|
||||
tools/vtdyn/dynattlib/Makefile
|
||||
tools/vtfilter/Makefile
|
||||
tools/vtunify/Makefile
|
||||
doc/Makefile
|
||||
])
|
||||
|
||||
# Create output files
|
||||
ACVT_CONF_TITLE([Final output])
|
||||
AC_OUTPUT
|
||||
|
||||
# Show configure summary
|
||||
ACVT_CONF_SUMMARY
|
||||
|
584
ompi/contrib/vt/vt/depcomp
Исполняемый файл
584
ompi/contrib/vt/vt/depcomp
Исполняемый файл
@ -0,0 +1,584 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2006-10-15.18
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test -f "$tmpdepfile"; then :
|
||||
else
|
||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||
tmpdepfile="$stripped.u"
|
||||
fi
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
outname="$stripped.o"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
20
ompi/contrib/vt/vt/doc/FILTER.SPEC
Обычный файл
20
ompi/contrib/vt/vt/doc/FILTER.SPEC
Обычный файл
@ -0,0 +1,20 @@
|
||||
# VampirTrace region filter specification
|
||||
#
|
||||
# call limit definitions and region assignments
|
||||
#
|
||||
# syntax: <regions> -- <limit>
|
||||
#
|
||||
# regions semicolon-seperated list of regions
|
||||
# (can be wildcards)
|
||||
# limit assigned call limit
|
||||
# 0 = region(s) denied
|
||||
# -1 = unlimited
|
||||
#
|
||||
# example:
|
||||
#
|
||||
# add;sub;mul;div -- 1000
|
||||
# * -- 3000000
|
||||
#
|
||||
# These region filter directives cause that the functions "add", "sub",
|
||||
# "mul" and "div" be recorded at most 1000 times. The remaining
|
||||
# functions (*) will be recorded at most 3000000 times.
|
18
ompi/contrib/vt/vt/doc/GROUPS.SPEC
Обычный файл
18
ompi/contrib/vt/vt/doc/GROUPS.SPEC
Обычный файл
@ -0,0 +1,18 @@
|
||||
# VampirTrace region groups specification
|
||||
#
|
||||
# group definitions and region assignments
|
||||
#
|
||||
# syntax: <group>=<regions>
|
||||
#
|
||||
# group group name
|
||||
# regions semicolon-seperated list of regions
|
||||
# (can be wildcards)
|
||||
#
|
||||
# example:
|
||||
#
|
||||
# CALC=add;sub;mul;div
|
||||
# USER=app_*
|
||||
#
|
||||
# These group assignments make the functions "add", "sub", "mul" and "div"
|
||||
# associated with group "CALC" and all functions with the prefix "app_" are
|
||||
# associated with group "USER".
|
32
ompi/contrib/vt/vt/doc/LICENSE
Обычный файл
32
ompi/contrib/vt/vt/doc/LICENSE
Обычный файл
@ -0,0 +1,32 @@
|
||||
Copyright (c) 2005-2007, ZIH, TU Dresden, Federal Republic of Germany
|
||||
|
||||
Copyright (c) 1998-2005, Forschungszentrum Juelich GmbH, Federal
|
||||
Republic of Germany
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
- Neither the name of ZIH, TU Dresden or Forschungszentrum Juelich GmbH, nor the
|
||||
names of its contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
324
ompi/contrib/vt/vt/doc/METRICS.SPEC
Обычный файл
324
ompi/contrib/vt/vt/doc/METRICS.SPEC
Обычный файл
@ -0,0 +1,324 @@
|
||||
# VampirTrace metrics specification
|
||||
#
|
||||
# measurement definitions complement/extend native (and PAPI preset) definitions
|
||||
# measured metrics derive from a single measured counter (in principle)
|
||||
# all measure definitions are considered equivalent
|
||||
# (though some may be platform-specific)
|
||||
|
||||
### generic (PAPI) measurement aliases
|
||||
|
||||
### level 1 cache accesses
|
||||
measure L1_ACCESS = PAPI_L1_TCA
|
||||
measure L1_I_ACCESS = PAPI_L1_ICA
|
||||
measure L1_D_ACCESS = PAPI_L1_DCA
|
||||
|
||||
### level 1 cache reads
|
||||
measure L1_READ = PAPI_L1_TCR
|
||||
measure L1_I_READ = PAPI_L1_ICR # equivalent to PAPI_L1_ICA
|
||||
measure L1_D_READ = PAPI_L1_DCR
|
||||
|
||||
### level 1 cache writes
|
||||
measure L1_WRITE = PAPI_L1_TCW
|
||||
measure L1_I_WRITE = PAPI_L1_ICW # never defined
|
||||
measure L1_D_WRITE = PAPI_L1_DCW
|
||||
|
||||
### level 1 cache hits
|
||||
measure L1_HIT = PAPI_L1_TCH
|
||||
measure L1_I_HIT = PAPI_L1_ICH
|
||||
measure L1_D_HIT = PAPI_L1_DCH
|
||||
|
||||
### level 1 cache misses
|
||||
measure L1_MISS = PAPI_L1_TCM
|
||||
measure L1_I_MISS = PAPI_L1_ICM
|
||||
measure L1_D_MISS = PAPI_L1_DCM
|
||||
measure L1_D_READ_MISS = PAPI_L1_LDM
|
||||
measure L1_D_WRITE_MISS = PAPI_L1_STM
|
||||
|
||||
### alternate level 1 cache representation
|
||||
measure L1_INST = PAPI_L1_ICA
|
||||
measure L1_INST_HIT = PAPI_L1_ICH
|
||||
measure L1_INST_MISS = PAPI_L1_ICM
|
||||
measure L1_LOAD = PAPI_L1_DCR
|
||||
measure L1_LOAD_HIT = PAPI_L1_LDH # non-standard
|
||||
measure L1_LOAD_MISS = PAPI_L1_LDM
|
||||
measure L1_STORE = PAPI_L1_DCW
|
||||
measure L1_STORE_HIT = PAPI_L1_STH # non-standard
|
||||
measure L1_STORE_MISS = PAPI_L1_STM
|
||||
|
||||
### level 2 cache accesses
|
||||
measure L2_ACCESS = PAPI_L2_TCA
|
||||
measure L2_I_ACCESS = PAPI_L2_ICA
|
||||
measure L2_D_ACCESS = PAPI_L2_DCA
|
||||
|
||||
### level 2 cache reads
|
||||
measure L2_READ = PAPI_L2_TCR
|
||||
measure L2_I_READ = PAPI_L2_ICR # equivalent to PAPI_L2_ICA
|
||||
measure L2_D_READ = PAPI_L2_DCR
|
||||
|
||||
### level 2 cache writes
|
||||
measure L2_WRITE = PAPI_L2_TCW
|
||||
measure L2_I_WRITE = PAPI_L2_ICW # never defined
|
||||
measure L2_D_WRITE = PAPI_L2_DCW
|
||||
|
||||
### level 2 cache hits
|
||||
measure L2_HIT = PAPI_L2_TCH
|
||||
measure L2_I_HIT = PAPI_L2_ICH
|
||||
measure L2_D_HIT = PAPI_L2_DCH
|
||||
|
||||
### level 2 cache misses
|
||||
measure L2_MISS = PAPI_L2_TCM
|
||||
measure L2_I_MISS = PAPI_L2_ICM
|
||||
measure L2_D_MISS = PAPI_L2_DCM
|
||||
measure L2_D_READ_MISS = PAPI_L2_LDM
|
||||
measure L2_D_WRITE_MISS = PAPI_L2_STM
|
||||
|
||||
### alternate level 2 cache representation
|
||||
measure L2_INST = PAPI_L2_ICA
|
||||
measure L2_INST_HIT = PAPI_L2_ICH
|
||||
measure L2_INST_MISS = PAPI_L2_ICM
|
||||
measure L2_LOAD = PAPI_L2_DCR
|
||||
measure L2_LOAD_HIT = PAPI_L2_LDH # non-standard
|
||||
measure L2_LOAD_MISS = PAPI_L2_LDM
|
||||
measure L2_STORE = PAPI_L2_DCW
|
||||
measure L2_STORE_HIT = PAPI_L2_STH # non-standard
|
||||
measure L2_STORE_MISS = PAPI_L2_STM
|
||||
|
||||
### level 3 cache accesses
|
||||
measure L3_ACCESS = PAPI_L3_TCA
|
||||
measure L3_I_ACCESS = PAPI_L3_ICA
|
||||
measure L3_D_ACCESS = PAPI_L3_DCA
|
||||
|
||||
### level 3 cache reads
|
||||
measure L3_READ = PAPI_L3_TCR
|
||||
measure L3_I_READ = PAPI_L3_ICR # equivalent to PAPI_L3_ICA
|
||||
measure L3_D_READ = PAPI_L3_DCR
|
||||
|
||||
### level 3 cache writes
|
||||
measure L3_WRITE = PAPI_L3_TCW
|
||||
measure L3_I_WRITE = PAPI_L3_ICW # never defined
|
||||
measure L3_D_WRITE = PAPI_L3_DCW
|
||||
|
||||
### level 3 cache hits
|
||||
measure L3_HIT = PAPI_L3_TCH
|
||||
measure L3_I_HIT = PAPI_L3_ICH
|
||||
measure L3_D_HIT = PAPI_L3_DCH
|
||||
|
||||
### level 3 cache misses
|
||||
measure L3_MISS = PAPI_L3_TCM
|
||||
measure L3_I_MISS = PAPI_L3_ICM
|
||||
measure L3_D_MISS = PAPI_L3_DCM
|
||||
measure L3_D_READ_MISS = PAPI_L3_LDM
|
||||
measure L3_D_WRITE_MISS = PAPI_L3_STM
|
||||
|
||||
### alternate level 3 cache representation
|
||||
measure L3_INST = PAPI_L3_ICA
|
||||
measure L3_INST_HIT = PAPI_L3_ICH
|
||||
measure L3_INST_MISS = PAPI_L3_ICM
|
||||
measure L3_LOAD = PAPI_L3_DCR
|
||||
measure L3_LOAD_HIT = PAPI_L3_LDH # non-standard
|
||||
measure L3_LOAD_MISS = PAPI_L3_LDM
|
||||
measure L3_STORE = PAPI_L3_DCW
|
||||
measure L3_STORE_HIT = PAPI_L3_STH # non-standard
|
||||
measure L3_STORE_MISS = PAPI_L3_STM
|
||||
|
||||
### TLB misses
|
||||
measure TLB_MISS = PAPI_TLB_TL
|
||||
measure TLB_I_MISS = PAPI_TLB_IM
|
||||
measure TLB_D_MISS = PAPI_TLB_DM
|
||||
|
||||
### instructions
|
||||
measure INSTRUCTION = PAPI_TOT_INS
|
||||
measure INTEGER = PAPI_INT_INS
|
||||
measure FLOATING_POINT = PAPI_FP_INS
|
||||
measure FP_ADD = PAPI_FAD_INS
|
||||
measure FP_MUL = PAPI_FML_INS
|
||||
measure FP_FMA = PAPI_FMA_INS
|
||||
measure FP_DIV = PAPI_FDV_INS
|
||||
measure FP_INV = PAPI_FNV_INS
|
||||
measure FP_SQRT = PAPI_FSQ_INS
|
||||
measure VECTOR = PAPI_VEC_INS
|
||||
measure SYNCH = PAPI_SYC_INS
|
||||
measure LOAD_STORE = PAPI_LST_INS
|
||||
measure LOAD = PAPI_LD_INS
|
||||
measure STORE = PAPI_SR_INS
|
||||
measure COND_STORE = PAPI_CSR_TOT
|
||||
measure COND_STORE_SUCCESS = PAPI_CSR_SUC
|
||||
measure COND_STORE_UNSUCCESS = PAPI_CSR_FAL
|
||||
measure BRANCH = PAPI_BR_INS
|
||||
measure UNCOND_BRANCH = PAPI_BR_UCN
|
||||
measure COND_BRANCH = PAPI_BR_CN
|
||||
measure COND_BRANCH_TAKEN = PAPI_BR_TKN
|
||||
measure COND_BRANCH_NOTTAKEN = PAPI_BR_NTK
|
||||
measure COND_BRANCH_PRED = PAPI_BR_PRC
|
||||
measure COND_BRANCH_MISPRED = PAPI_BR_MSP
|
||||
|
||||
### cycles
|
||||
measure CYCLES = PAPI_TOT_CYC
|
||||
|
||||
### idle units
|
||||
measure INTEGER_UNIT_IDLE = PAPI_FXU_IDL
|
||||
measure FLOAT_UNIT_IDLE = PAPI_FPU_IDL
|
||||
measure BRANCH_UNIT_IDLE = PAPI_BRU_IDL
|
||||
measure LOADSTORE_UNIT_IDLE = PAPI_LSU_IDL
|
||||
|
||||
### stalls
|
||||
measure STALL_MEMORY_ACCESS = PAPI_MEM_SCY
|
||||
measure STALL_MEMORY_READ = PAPI_MEM_RCY
|
||||
measure STALL_MEMORY_WRITE = PAPI_MEM_WCY
|
||||
measure STALL_INST_ISSUE = PAPI_STL_ICY
|
||||
|
||||
# platform-specific measurement aliases
|
||||
# (complement or redefine generic measurement aliases)
|
||||
# may need to key to particular platform if ambiguity
|
||||
|
||||
### POWER4-specific metrics
|
||||
measure FP_LOAD = PM_LSU_LDF
|
||||
measure FP_STORE = PM_FPU_STF
|
||||
measure FP_MISC = PM_FPU_FMOV_FEST
|
||||
|
||||
### UltraSPARC-III/IV-specific metrics
|
||||
measure STALL_L1_MISS = Re_DC_miss # /1
|
||||
measure STALL_L2_MISS = Re_EC_miss # /1
|
||||
measure STALL_IC_MISS = Dispatch0_IC_miss # /0
|
||||
measure STALL_STOREQ = Rstall_storeQ # /0
|
||||
measure STALL_IU_USE = Rstall_IU_use # /0
|
||||
measure STALL_FP_USE = Rstall_FP_use # /1
|
||||
measure STALL_PC_MISS = Re_PC_miss # /1
|
||||
measure STALL_RAW_MISS = Re_RAW_miss # /1
|
||||
measure STALL_FPU_BYPASS = Re_FPU_bypass # /1
|
||||
measure STALL_MISPRED = Dispatch0_mispred # /1
|
||||
measure STALL_BR_TARGET = Dispatch0_br_target # /0
|
||||
measure STALL_2ND_BR = Dispatch0_2nd_br # /0
|
||||
measure STALL_L1_MSOVHD = Re_DC_missovhd # /1
|
||||
|
||||
### groupings of metrics for collective measurement
|
||||
|
||||
### Opteron groupings (max 4 in group, unrestricted)
|
||||
aggroup OPTERON_DC1 = DC_ACCESS DC_MISS DC_L2_REFILL_I DC_SYS_REFILL_I
|
||||
aggroup OPTERON_DC2 = DC_L2_REFILL_M DC_L2_REFILL_O DC_L2_REFILL_E DC_L2_REFILL_S
|
||||
aggroup OPTERON_DC3 = DC_SYS_REFILL_M DC_SYS_REFILL_O DC_SYS_REFILL_E DC_SYS_REFILL_S
|
||||
aggroup OPTERON_IC = IC_FETCH IC_MISS IC_L2_REFILL IC_SYS_REFILL
|
||||
aggroup OPTERON_TLB = DC_L1_DTLB_MISS_AND_L2_DTLB_MISS DC_L1_DTLB_MISS_AND_L2_DTLB_HIT IC_L1ITLB_MISS_AND_L2ITLB_MISS IC_L1ITLB_MISS_AND_L2ITLB_HIT
|
||||
|
||||
aggroup OPTERON_BR = FR_BR FR_BR_MIS FR_BR_TAKEN FR_BR_TAKEN_MIS
|
||||
aggroup OPTERON_FP = FP_ADD_PIPE FP_MULT_PIPE FP_ST_PIPE FP_FAST_FLAG
|
||||
aggroup OPTERON_FPU = FR_FPU_X87 FR_FPU_MMX_3D FR_FPU_SSE_SSE2_PACKED FR_FPU_SSE_SSE2_SCALAR
|
||||
|
||||
aggroup OPTERON_ST1 = IC_FETCH_STALL FR_DECODER_EMPTY FR_DISPATCH_STALLS FR_DISPATCH_STALLS_FULL_FPU
|
||||
aggroup OPTERON_ST2 = FR_DISPATCH_STALLS_FULL_LS FR_DISPATCH_STALLS_FULL_REORDER FR_DISPATCH_STALLS_FULL_RESERVATION FR_DISPATCH_STALLS_BR
|
||||
aggroup OPTERON_ST3 = FR_DISPATCH_STALLS_FAR FR_DISPATCH_STALLS_SER FR_DISPATCH_STALLS_SEG FR_DISPATCH_STALLS_QUIET
|
||||
|
||||
aggroup OPTERON_ETC = FR_X86_INS CPU_CLK_UNHALTED FR_HW_INTS FP_NONE_RET
|
||||
aggroup OPTERON_HTM = HT_LL_MEM_XFR HT_LR_MEM_XFR HT_RL_MEM_XFR
|
||||
aggroup OPTERON_HTI = HT_LL_IO_XFR HT_LR_IO_XFR HT_RL_IO_XFR
|
||||
|
||||
### POWER4-specific groupings (max 8 in group, restricted)
|
||||
aggroup POWER4_DC = PM_DATA_FROM_L2 PM_DATA_FROM_L25_SHR PM_DATA_FROM_L25_MOD PM_DATA_FROM_L275_SHR PM_DATA_FROM_L275_MOD PM_DATA_FROM_L3 PM_DATA_FROM_L35 PM_DATA_FROM_MEM # 5
|
||||
aggroup POWER4_IC = PM_INST_FROM_PREF PM_INST_FROM_L1 PM_INST_FROM_L2 PM_INST_FROM_L25_L275 PM_INST_FROM_L3 PM_INST_FROM_L35 PM_INST_FROM_MEM # 6
|
||||
aggroup POWER4_L1 = PM_LD_REF_L1 PM_LD_MISS_L1 PM_ST_REF_L1 PM_ST_MISS_L1 # 56
|
||||
aggroup POWER4_TLB = PM_ITLB_MISS PM_DTLB_MISS
|
||||
aggroup POWER4_LX = PM_ITLB_MISS PM_DTLB_MISS PM_LD_REF_L1 PM_LD_MISS_L1 PM_ST_REF_L1 PM_ST_MISS_L1 # 56
|
||||
aggroup POWER4_BR = PM_BR_ISSUED PM_BR_MPRED_CR PM_BR_MPRED_TA # 3,55,61
|
||||
aggroup POWER4_BRT = PM_BR_ISSUED PM_BR_MPRED_CR PM_BR_MPRED_TA PM_BIQ_IDU_FULL_CYC PM_BRQ_FULL_CYC PM_L1_WRITE_CYC PM_INST_CMPL PM_CYC # 55
|
||||
aggroup POWER4_LSF = PM_FPU_STF PM_LSU_LDF # 15,54,60
|
||||
aggroup POWER4_STL = PM_CYC PM_FPU_FULL_CYC PM_FPU_STALL3 # 54
|
||||
aggroup POWER4_LST = PM_INST_CMPL PM_FPU_STF PM_LSU_LDF PM_CYC PM_FPU_FULL_CYC PM_FPU_STALL3 # 54
|
||||
aggroup POWER4_FP = PM_FPU_FIN PM_FPU_FMA PM_FPU_FDIV PM_FPU_FSQRT PM_FPU_FMOV_FEST # 53
|
||||
aggroup POWER4_IFP = PM_FPU_FIN PM_FPU_FMA PM_FPU_FDIV PM_FPU_FSQRT PM_FPU_FMOV_FEST PM_FXU_FIN # 53
|
||||
aggroup POWER4_II = PM_INST_DISP PM_INST_CMPL # 1,2,18,20
|
||||
|
||||
### MIPS-R1200 groupings (max 32 in group, unrestricted)
|
||||
aggroup R12000_ALL = TLB_misses primary_data_cache_misses secondary_data_cache_misses primary_instruction_cache_misses secondary_instruction_cache_misses graduated_instructions mispredicted_branches graduated_loads graduated_stores graduated_floating-point_instructions decoded_instructions cycles prefetch_primary_data_cache_misses
|
||||
aggroup R12000_ALL_PAPI = PAPI_L1_DCM PAPI_L1_ICM PAPI_L2_DCM PAPI_L2_ICM PAPI_TLB_TL PAPI_TOT_INS PAPI_FP_INS PAPI_LD_INS PAPI_SR_INS PAPI_TOT_IIS PAPI_BR_CN PAPI_BR_MSP PAPI_CSR_TOT PAPI_CSR_FAL PAPI_TOT_CYC PAPI_PRF_DM PAPI_CA_INV PAPI_CA_ITV
|
||||
|
||||
### UltraSPARC-III/IV groupings (max 2 in group, restricted)
|
||||
aggroup US3_CPI = Cycle_cnt Instr_cnt # duplicates
|
||||
|
||||
# cycles/stalls groups
|
||||
aggroup US3_SMP = Dispatch_rs_mispred Dispatch0_mispred # stall misprediction
|
||||
aggroup US3_SUS = Rstall_IU_use Rstall_FP_use # stall IU/FP use
|
||||
aggroup US3_SST = Rstall_storeQ Re_RAW_miss # stall store
|
||||
aggroup US3_SCD = Cycle_cnt Re_DC_miss
|
||||
aggroup US3_SCO = Dispatch0_br_target Re_DC_missovhd
|
||||
aggroup US3_SCE = Dispatch0_2nd_br Re_EC_miss
|
||||
aggroup US3_SCP = Dispatch0_IC_miss Re_PC_miss
|
||||
aggroup US3_SCX = SI_ciq_flow Re_FPU_bypass # Re_FPU_bypass always zero?
|
||||
|
||||
# instruction and TLB groups
|
||||
aggroup US3_FPU = FA_pipe_completion FM_pipe_completion
|
||||
aggroup US3_BMS = IU_Stat_Br_miss_taken IU_Stat_Br_miss_untaken
|
||||
aggroup US3_BCS = IU_Stat_Br_count_taken IU_Stat_Br_count_untaken
|
||||
aggroup US3_ITL = Instr_cnt ITLB_miss
|
||||
aggroup US3_DTL = Cycle_cnt DTLB_miss
|
||||
|
||||
# memory and cache groups
|
||||
aggroup US3_ICH = IC_ref IC_miss
|
||||
aggroup US3_DCR = DC_rd DC_rd_miss
|
||||
aggroup US3_DCW = DC_wr DC_wr_miss
|
||||
aggroup US3_ECI = EC_write_hit_RTO EC_ic_miss
|
||||
aggroup US3_ECM = EC_rd_miss EC_misses
|
||||
|
||||
# locality/SSM and other miscellaneous groups
|
||||
aggroup US3_ECL = EC_miss_local EC_miss_remote # only SF15000/SF25000
|
||||
aggroup US3_ECX = EC_wb_remote EC_miss_mtag_remote # only SF15000/SF25000
|
||||
aggroup US3_ECW = EC_ref EC_wb
|
||||
aggroup US3_ECS = EC_snoop_inv EC_snoop_cb
|
||||
aggroup US3_PCR = PC_port0_rd PC_port1_rd
|
||||
aggroup US3_ETC = SI_snoop PC_MS_misses
|
||||
aggroup US3_WCM = SI_owned WC_miss
|
||||
|
||||
# memory controller groups
|
||||
aggroup US3_SM1 = MC_stalls_0 MC_stalls_1
|
||||
aggroup US3_SM2 = MC_stalls_2 MC_stalls_3
|
||||
aggroup US3_MC0 = MC_reads_0 MC_writes_0
|
||||
aggroup US3_MC1 = MC_reads_1 MC_writes_1
|
||||
aggroup US3_MC2 = MC_reads_2 MC_writes_2
|
||||
aggroup US3_MC3 = MC_reads_3 MC_writes_3
|
||||
|
||||
### Itanium2 groupings (max 4 in group, partially restricted)
|
||||
aggroup ITANIUM2_TLB = ITLB_MISSES_FETCH_L1ITLB ITLB_MISSES_FETCH_L2ITLB L2DTLB_MISSES L1DTLB_TRANSFER
|
||||
aggroup ITANIUM2_BR = BRANCH_EVENT BR_MISPRED_DETAIL_ALL_CORRECT_PRED BR_MISPRED_DETAIL_ALL_WRONG_PATH BR_MISPRED_DETAIL_ALL_WRONG_TARGET
|
||||
aggroup ITANIUM2_STL = DISP_STALLED BACK_END_BUBBLE_ALL BE_EXE_BUBBLE_ALL BE_EXE_BUBBLE_FRALL
|
||||
|
||||
aggroup ITANIUM2_L1D = DATA_REFERENCES_SET1 L1D_READS_SET1 L1D_READ_MISSES_ALL L2_DATA_REFERENCES_L2_ALL
|
||||
aggroup ITANIUM2_L2D = L2_DATA_REFERENCES_L2_DATA_READS L2_DATA_REFERENCES_L2_DATA_WRITES L3_READS_DATA_READ_ALL L3_WRITES_DATA_WRITE_ALL
|
||||
aggroup ITANIUM2_L3D = L3_READS_DATA_READ_HIT L3_READS_DATA_READ_MISS L3_WRITES_DATA_WRITE_HIT L3_WRITES_DATA_WRITE_MISS
|
||||
aggroup ITANIUM2_LXD = L2_MISSES L3_REFERENCES L3_READS_ALL_MISS L3_WRITES_ALL_MISS
|
||||
aggroup ITANIUM2_LXX = L3_MISSES L3_WRITES_L2_WB_HIT L3_WRITES_L2_WB_MISS
|
||||
|
||||
aggroup ITANIUM2_ICD = L1I_READS L2_INST_DEMAND_READS L3_READS_DINST_FETCH_HIT L3_READS_DINST_FETCH_MISS # instruction cache (demand-load only)
|
||||
aggroup ITANIUM2_ICP = L1I_PREFETCHES L2_INST_PREFETCHES L3_READS_INST_FETCH_HIT L3_READS_INST_FETCH_MISS # instruction cache (incl. prefetch)
|
||||
|
||||
aggroup ITANIUM2_IN1 = INST_DISPERSED IA32_INST_RETIRED IA64_INST_RETIRED LOADS_RETIRED
|
||||
aggroup ITANIUM2_IN2 = FP_OPS_RETIRED LOADS_RETIRED CPU_CYCLES ISA_TRANSITIONS
|
||||
aggroup ITANIUM2_ISA = IA32_INST_RETIRED IA64_INST_RETIRED IA32_ISA_TRANSITIONS STORES_RETIRED
|
||||
aggroup ITANIUM2_FLP = CPU_CYCLES FP_OPS_RETIRED INST_DISPERSED LOADS_RETIRED
|
||||
|
||||
### compositions are derived by combining measurements and create hierarchies
|
||||
### **** generic hierarchy ****
|
||||
|
||||
### cycles (including stalls)
|
||||
compose CYCLES = BUSY + STALL + IDLE
|
||||
compose STALL = DISPATCH + UNIT_USE + RECIRCULATE
|
||||
|
||||
### instructions
|
||||
compose INSTRUCTION = BRANCH + INTEGER + FLOATING_POINT + MEMORY
|
||||
compose BRANCH = BRANCH_PRED + BRANCH_MISP
|
||||
compose FLOATING_POINT = FP_ADD + FP_MUL + FP_FMA + FP_DIV + FP_INV + FP_SQRT + FP_MISC
|
||||
compose MEMORY = LOAD + STORE + SYNCH
|
||||
|
||||
### data accesses (to cache hierarchy & memory)
|
||||
compose DATA_ACCESS = DATA_HIT_L1$ + DATA_HIT_L2$ + DATA_HIT_L3$ + DATA_HIT_MEM
|
||||
compose DATA_HIT_L1$ = DATA_STORE_INTO_L1$ + DATA_LOAD_FROM_L1$
|
||||
compose DATA_HIT_L2$ = DATA_STORE_INTO_L2$ + DATA_LOAD_FROM_L2$
|
||||
compose DATA_HIT_L3$ = DATA_STORE_INTO_L3$ + DATA_LOAD_FROM_L3$
|
||||
compose DATA_HIT_MEM = DATA_STORE_INTO_MEM + DATA_LOAD_FROM_MEM
|
||||
|
||||
### instruction accesses (to cache hierarchy & memory)
|
||||
compose INST_ACCESS = INST_HIT_PREF + INST_HIT_L1$ + INST_HIT_L2$ + INST_HIT_L3$ + INST_HIT_MEM
|
||||
|
||||
### TLB accesses (instruction & data)
|
||||
compose TLB_ACCESS = DATA_TLB_ACCESS + INST_TLB_ACCESS
|
||||
compose DATA_TLB_ACCESS = DATA_TLB_HIT + DATA_TLB_MISS
|
||||
compose INST_TLB_ACCESS = INST_TLB_HIT + INST_TLB_MISS
|
||||
|
22
ompi/contrib/vt/vt/doc/Makefile.am
Обычный файл
22
ompi/contrib/vt/vt/doc/Makefile.am
Обычный файл
@ -0,0 +1,22 @@
|
||||
vtdata_DATA = \
|
||||
FILTER.SPEC \
|
||||
GROUPS.SPEC \
|
||||
METRICS.SPEC
|
||||
|
||||
vtdoc_DATA = \
|
||||
$(top_srcdir)/ChangeLog \
|
||||
\
|
||||
LICENSE \
|
||||
UserManual.html \
|
||||
UserManual.pdf
|
||||
|
||||
vtdatadir = $(datadir)
|
||||
vtdocdir = $(docdir)
|
||||
|
||||
LICENSE: $(top_srcdir)/COPYING
|
||||
cp $(top_srcdir)/COPYING LICENSE
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(vtdata_DATA) \
|
||||
$(vtdoc_DATA)
|
||||
|
435
ompi/contrib/vt/vt/doc/Makefile.in
Обычный файл
435
ompi/contrib/vt/vt/doc/Makefile.in
Обычный файл
@ -0,0 +1,435 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = doc
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(vtdatadir)" "$(DESTDIR)$(vtdocdir)"
|
||||
vtdataDATA_INSTALL = $(INSTALL_DATA)
|
||||
vtdocDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(vtdata_DATA) $(vtdoc_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BFDINCDIR = @BFDINCDIR@
|
||||
BFDLIB = @BFDLIB@
|
||||
BFDLIBDIR = @BFDLIBDIR@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASDEPMODE = @CCASDEPMODE@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
|
||||
CXX_FOR_BUILD = @CXX_FOR_BUILD@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLINCDIR = @DLINCDIR@
|
||||
DLLIB = @DLLIB@
|
||||
DLLIBDIR = @DLLIBDIR@
|
||||
DYNIINCDIR = @DYNIINCDIR@
|
||||
DYNILIB = @DYNILIB@
|
||||
DYNILIBDIR = @DYNILIBDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FC = @FC@
|
||||
FCFLAGS = @FCFLAGS@
|
||||
FFLAGS = @FFLAGS@
|
||||
FMPILIB = @FMPILIB@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
LDSHFLAG = @LDSHFLAG@
|
||||
LIBERTYINCDIR = @LIBERTYINCDIR@
|
||||
LIBERTYLIB = @LIBERTYLIB@
|
||||
LIBERTYLIBDIR = @LIBERTYLIBDIR@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPICC = @MPICC@
|
||||
MPICFLAGS = @MPICFLAGS@
|
||||
MPIDIR = @MPIDIR@
|
||||
MPIINCDIR = @MPIINCDIR@
|
||||
MPILIB = @MPILIB@
|
||||
MPILIBDIR = @MPILIBDIR@
|
||||
OBJEXT = @OBJEXT@
|
||||
OMPFLAG = @OMPFLAG@
|
||||
OTFDIR = @OTFDIR@
|
||||
OTFINCDIR = @OTFINCDIR@
|
||||
OTFLIB = @OTFLIB@
|
||||
OTFLIBDIR = @OTFLIBDIR@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PAPIINCDIR = @PAPIINCDIR@
|
||||
PAPILIB = @PAPILIB@
|
||||
PAPILIBDIR = @PAPILIBDIR@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PLATFORM = @PLATFORM@
|
||||
PMPILIB = @PMPILIB@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VTDYNATTLIB = @VTDYNATTLIB@
|
||||
VT_WRAPPER_AVAIL_INST = @VT_WRAPPER_AVAIL_INST@
|
||||
VT_WRAPPER_DEFAULT_INST = @VT_WRAPPER_DEFAULT_INST@
|
||||
VT_WRAPPER_EXTRA_CFLAGS = @VT_WRAPPER_EXTRA_CFLAGS@
|
||||
VT_WRAPPER_EXTRA_CXXFLAGS = @VT_WRAPPER_EXTRA_CXXFLAGS@
|
||||
VT_WRAPPER_EXTRA_FCFLAGS = @VT_WRAPPER_EXTRA_FCFLAGS@
|
||||
VT_WRAPPER_EXTRA_FFLAGS = @VT_WRAPPER_EXTRA_FFLAGS@
|
||||
VT_WRAPPER_EXTRA_LDFLAGS = @VT_WRAPPER_EXTRA_LDFLAGS@
|
||||
VT_WRAPPER_EXTRA_LIBS = @VT_WRAPPER_EXTRA_LIBS@
|
||||
VT_WRAPPER_INCDIR = @VT_WRAPPER_INCDIR@
|
||||
VT_WRAPPER_LIBDIR = @VT_WRAPPER_LIBDIR@
|
||||
VT_WRAPPER_OPARI_BIN = @VT_WRAPPER_OPARI_BIN@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_FC = @ac_ct_FC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
vtdata_DATA = \
|
||||
FILTER.SPEC \
|
||||
GROUPS.SPEC \
|
||||
METRICS.SPEC
|
||||
|
||||
vtdoc_DATA = \
|
||||
$(top_srcdir)/ChangeLog \
|
||||
\
|
||||
LICENSE \
|
||||
UserManual.html \
|
||||
UserManual.pdf
|
||||
|
||||
vtdatadir = $(datadir)
|
||||
vtdocdir = $(docdir)
|
||||
EXTRA_DIST = \
|
||||
$(vtdata_DATA) \
|
||||
$(vtdoc_DATA)
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-vtdataDATA: $(vtdata_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(vtdatadir)" || $(MKDIR_P) "$(DESTDIR)$(vtdatadir)"
|
||||
@list='$(vtdata_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(vtdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vtdatadir)/$$f'"; \
|
||||
$(vtdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vtdatadir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-vtdataDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(vtdata_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(vtdatadir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(vtdatadir)/$$f"; \
|
||||
done
|
||||
install-vtdocDATA: $(vtdoc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(vtdocdir)" || $(MKDIR_P) "$(DESTDIR)$(vtdocdir)"
|
||||
@list='$(vtdoc_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(vtdocDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vtdocdir)/$$f'"; \
|
||||
$(vtdocDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vtdocdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-vtdocDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(vtdoc_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(vtdocdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(vtdocdir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(vtdatadir)" "$(DESTDIR)$(vtdocdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-vtdataDATA install-vtdocDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-vtdataDATA uninstall-vtdocDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip install-vtdataDATA install-vtdocDATA \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-vtdataDATA \
|
||||
uninstall-vtdocDATA
|
||||
|
||||
|
||||
LICENSE: $(top_srcdir)/COPYING
|
||||
cp $(top_srcdir)/COPYING LICENSE
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
2141
ompi/contrib/vt/vt/doc/UserManual.html
Обычный файл
2141
ompi/contrib/vt/vt/doc/UserManual.html
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Двоичные данные
ompi/contrib/vt/vt/doc/UserManual.pdf
Обычный файл
Двоичные данные
ompi/contrib/vt/vt/doc/UserManual.pdf
Обычный файл
Двоичный файл не отображается.
46
ompi/contrib/vt/vt/examples/c/Makefile
Обычный файл
46
ompi/contrib/vt/vt/examples/c/Makefile
Обычный файл
@ -0,0 +1,46 @@
|
||||
include Makefile.config
|
||||
|
||||
TARGETS = $(HELLO_TGT1) $(HELLO_TGT2) $(HELLO_TGT3) \
|
||||
$(PI_TGT1) $(PI_TGT2) $(PI_TGT3) \
|
||||
$(RING_TGT1) $(RING_TGT2) $(RING_TGT3)
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGETS)
|
||||
|
||||
|
||||
### hello-man ###
|
||||
hello-man: hello.c
|
||||
$(MPICC) -vt:inst manual $(MPICFLAGS) -DMANUAL $^ -o $@ -DVTRACE $(MPILIB)
|
||||
### hello-comp ###
|
||||
hello-comp: hello.c
|
||||
$(MPICC) $(MPICFLAGS) $^ -o $@ $(MPILIB)
|
||||
### hello-dyn ###
|
||||
hello-dyn: hello.c
|
||||
$(MPICC) -vt:inst dyninst $(MPICFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
### pi-man ###
|
||||
pi-man: pi.c
|
||||
$(MPICC) -vt:inst manual $(MPICFLAGS) -DMANUAL $^ -o $@ -lm -DVTRACE $(MPILIB)
|
||||
### pi-comp ###
|
||||
pi-comp: pi.c
|
||||
$(MPICC) $(MPICFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
### pi-dyn ###
|
||||
pi-dyn: pi.c
|
||||
$(MPICC) -vt:inst dyninst $(MPICFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
|
||||
|
||||
### ring-man ###
|
||||
ring-man: ring.c
|
||||
$(MPICC) -vt:inst manual $(MPICFLAGS) -DMANUAL $^ -o $@ -DVTRACE $(MPILIB)
|
||||
### ring-comp ###
|
||||
ring-comp: ring.c
|
||||
$(MPICC) $(MPICFLAGS) $^ -o $@ $(MPILIB)
|
||||
### ring-dyn ###
|
||||
ring-dyn: ring.c
|
||||
$(MPICC) -vt:inst dyninst $(MPICFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(TARGETS) *~ *.o
|
26
ompi/contrib/vt/vt/examples/c/Makefile.config
Обычный файл
26
ompi/contrib/vt/vt/examples/c/Makefile.config
Обычный файл
@ -0,0 +1,26 @@
|
||||
# MPI C Compiler command, Compiler Flags, and MPI Library
|
||||
MPICC = vtcc -vt:cc mpicc
|
||||
MPICFLAGS = -g
|
||||
MPILIB =
|
||||
|
||||
# Example targets:
|
||||
# <prog>-man == manual: functions and loops by using VampirTrace's API
|
||||
# <prog>-comp == automatic: functions by using compiler
|
||||
# <prog>-dyn == binary-automatic: functions by using Dyninst
|
||||
# (comment line to disable a target)
|
||||
|
||||
# HELLO (Hello World (MPI))
|
||||
HELLO_TGT1 = hello-man
|
||||
HELLO_TGT2 = hello-comp
|
||||
#HELLO_TGT3 = hello-dyn
|
||||
|
||||
# PI (Approximates the value of pi (MPI))
|
||||
PI_TGT1 = pi-man
|
||||
PI_TGT2 = pi-comp
|
||||
#PI_TGT3 = pi-dyn
|
||||
|
||||
# RING (Send a trivial message around in a ring (MPI))
|
||||
RING_TGT1 = ring-man
|
||||
RING_TGT2 = ring-comp
|
||||
#RING_TGT3 = ring-dyn
|
||||
|
31
ompi/contrib/vt/vt/examples/c/hello.c
Обычный файл
31
ompi/contrib/vt/vt/examples/c/hello.c
Обычный файл
@ -0,0 +1,31 @@
|
||||
#include <stdio.h>
|
||||
#include <mpi.h>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int rank, size;
|
||||
|
||||
#if (defined(MANUAL))
|
||||
VT_USER_START("main");
|
||||
#endif
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &size);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
|
||||
printf("Hello from process %i of %i !\n", rank, size);
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END("main");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
95
ompi/contrib/vt/vt/examples/c/pi.c
Обычный файл
95
ompi/contrib/vt/vt/examples/c/pi.c
Обычный файл
@ -0,0 +1,95 @@
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <mpi.h>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
/* Constant for how many values we'll estimate */
|
||||
|
||||
#define NUM_ITERS 1000
|
||||
|
||||
/* Prototype the function that we'll use below. */
|
||||
|
||||
static double f(double);
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int iter, rank, size, i;
|
||||
double PI25DT = 3.141592653589793238462643;
|
||||
double mypi, pi, h, sum, x;
|
||||
double startwtime = 0.0, endwtime;
|
||||
int namelen;
|
||||
char processor_name[MPI_MAX_PROCESSOR_NAME];
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START("main");
|
||||
#endif
|
||||
|
||||
/* Normal MPI startup */
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &size);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
MPI_Get_processor_name(processor_name, &namelen);
|
||||
|
||||
printf("Process %d of %d on %s\n", rank, size, processor_name);
|
||||
|
||||
/* Do approximations for 1 to 100 points */
|
||||
|
||||
for (iter = 2; iter < NUM_ITERS; ++iter) {
|
||||
h = 1.0 / (double) iter;
|
||||
sum = 0.0;
|
||||
|
||||
/* A slightly better approach starts from large i and works back */
|
||||
|
||||
if (rank == 0)
|
||||
startwtime = MPI_Wtime();
|
||||
|
||||
for (i = rank + 1; i <= iter; i += size) {
|
||||
x = h * ((double) i - 0.5);
|
||||
sum += f(x);
|
||||
}
|
||||
mypi = h * sum;
|
||||
|
||||
MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
|
||||
|
||||
if (rank == 0) {
|
||||
printf("%d points: pi is approximately %.16f, error = %.16f\n",
|
||||
iter, pi, fabs(pi - PI25DT));
|
||||
endwtime = MPI_Wtime();
|
||||
printf("wall clock time = %f\n", endwtime - startwtime);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
|
||||
/* All done */
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END("main");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static double
|
||||
f(double a)
|
||||
{
|
||||
double e;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START("f");
|
||||
#endif
|
||||
|
||||
e = (4.0 / (1.0 + a * a));
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END("f");
|
||||
#endif
|
||||
return e;
|
||||
}
|
||||
|
96
ompi/contrib/vt/vt/examples/c/ring.c
Обычный файл
96
ompi/contrib/vt/vt/examples/c/ring.c
Обычный файл
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* Simple ring test program
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mpi.h>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
#define NRING 100
|
||||
#define TAG 4711
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int rank, size, next, prev, message;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START("main");
|
||||
#endif
|
||||
|
||||
/* Start up MPI */
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &size);
|
||||
|
||||
/* Calculate the rank of the next process in the ring. Use the
|
||||
modulus operator so that the last process "wraps around" to
|
||||
rank zero. */
|
||||
|
||||
next = (rank + 1) % size;
|
||||
prev = (rank + size - 1) % size;
|
||||
|
||||
/* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0),
|
||||
put the number of times to go around the ring in the
|
||||
message. */
|
||||
|
||||
if (0 == rank) {
|
||||
message = NRING;
|
||||
|
||||
printf("Process 0 sending %d to %d, tag %d (%d processes in ring)\n",
|
||||
message, next, TAG, size);
|
||||
MPI_Send(&message, 1, MPI_INT, next, TAG, MPI_COMM_WORLD);
|
||||
printf("Process 0 sent to %d\n", next);
|
||||
}
|
||||
|
||||
/* Pass the message around the ring. The exit mechanism works as
|
||||
follows: the message (a positive integer) is passed around the
|
||||
ring. Each time it passes rank 0, it is decremented. When
|
||||
each processes receives a message containing a 0 value, it
|
||||
passes the message on to the next process and then quits. By
|
||||
passing the 0 message first, every process gets the 0 message
|
||||
and can quit normally. */
|
||||
|
||||
while (1) {
|
||||
#ifdef MANUAL
|
||||
VT_USER_START("ring_loop");
|
||||
#endif
|
||||
MPI_Recv(&message, 1, MPI_INT, prev, TAG, MPI_COMM_WORLD,
|
||||
MPI_STATUS_IGNORE);
|
||||
|
||||
if (0 == rank) {
|
||||
--message;
|
||||
printf("Process 0 decremented value: %d\n", message);
|
||||
}
|
||||
|
||||
MPI_Send(&message, 1, MPI_INT, next, TAG, MPI_COMM_WORLD);
|
||||
if (0 == message) {
|
||||
printf("Process %d exiting\n", rank);
|
||||
break;
|
||||
}
|
||||
#ifdef MANUAL
|
||||
VT_USER_END("ring_loop");
|
||||
#endif
|
||||
}
|
||||
|
||||
/* The last process does one extra send to process 0, which needs
|
||||
to be received before the program can exit */
|
||||
|
||||
if (0 == rank) {
|
||||
MPI_Recv(&message, 1, MPI_INT, prev, TAG, MPI_COMM_WORLD,
|
||||
MPI_STATUS_IGNORE);
|
||||
}
|
||||
|
||||
/* All done */
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END("main");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
46
ompi/contrib/vt/vt/examples/cxx/Makefile
Обычный файл
46
ompi/contrib/vt/vt/examples/cxx/Makefile
Обычный файл
@ -0,0 +1,46 @@
|
||||
include Makefile.config
|
||||
|
||||
TARGETS = $(HELLO_TGT1) $(HELLO_TGT2) $(HELLO_TGT3) \
|
||||
$(PI_TGT1) $(PI_TGT2) $(PI_TGT3) \
|
||||
$(RING_TGT1) $(RING_TGT2) $(RING_TGT3)
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGETS)
|
||||
|
||||
|
||||
### hello-man ###
|
||||
hello-man: hello.cc
|
||||
$(MPICXX) -vt:inst manual $(MPICXXFLAGS) -DMANUAL $^ -o $@ -DVTRACE $(MPILIB)
|
||||
### hello-comp ###
|
||||
hello-comp: hello.cc
|
||||
$(MPICXX) $(MPICXXFLAGS) $^ -o $@ $(MPILIB)
|
||||
### hello-dyn ###
|
||||
hello-dyn: hello.cc
|
||||
$(MPICXX) -vt:inst dyninst $(MPICXXFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
### pi-man ###
|
||||
pi-man: pi.cc
|
||||
$(MPICXX) -vt:inst manual $(MPICXXFLAGS) -DMANUAL $^ -o $@ -lm $(MPILIB)
|
||||
### pi-comp ###
|
||||
pi-comp: pi.cc
|
||||
$(MPICXX) $(MPICXXFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
### pi-dyn ###
|
||||
pi-dyn: pi.cc
|
||||
$(MPICXX) -vt:inst dyninst $(MPICXXFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
|
||||
|
||||
### ring-man ###
|
||||
ring-man: ring.cc
|
||||
$(MPICXX) -vt:inst manual $(MPICXXFLAGS) -DMANUAL $^ -o $@ -DVTRACE $(MPILIB)
|
||||
### ring-comp ###
|
||||
ring-comp: ring.cc
|
||||
$(MPICXX) $(MPICXXFLAGS) $^ -o $@ $(MPILIB)
|
||||
### ring-dyn ###
|
||||
ring-dyn: ring.cc
|
||||
$(MPICXX) -vt:inst dyninst $(MPICXXFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(TARGETS) *~ *.o
|
26
ompi/contrib/vt/vt/examples/cxx/Makefile.config
Обычный файл
26
ompi/contrib/vt/vt/examples/cxx/Makefile.config
Обычный файл
@ -0,0 +1,26 @@
|
||||
# MPI C++ Compiler command, Compiler Flags, and MPI Library
|
||||
MPICXX = vtcxx -vt:cxx mpicxx
|
||||
MPICXXFLAGS = -g
|
||||
MPILIB =
|
||||
|
||||
# Example targets:
|
||||
# <prog>-man == manual: functions and loops by using VampirTrace's API
|
||||
# <prog>-comp == automatic: functions by using compiler
|
||||
# <prog>-dyn == binary-automatic: functions by using Dyninst
|
||||
# (comment line to disable a target)
|
||||
|
||||
# HELLO (Hello World (MPI))
|
||||
HELLO_TGT1 = hello-man
|
||||
HELLO_TGT2 = hello-comp
|
||||
#HELLO_TGT3 = hello-dyn
|
||||
|
||||
# PI (Approximates the value of pi (MPI))
|
||||
PI_TGT1 = pi-man
|
||||
PI_TGT2 = pi-comp
|
||||
#PI_TGT3 = pi-dyn
|
||||
|
||||
# RING (Send a trivial message around in a ring (MPI))
|
||||
RING_TGT1 = ring-man
|
||||
RING_TGT2 = ring-comp
|
||||
#RING_TGT3 = ring-dyn
|
||||
|
29
ompi/contrib/vt/vt/examples/cxx/hello.cc
Обычный файл
29
ompi/contrib/vt/vt/examples/cxx/hello.cc
Обычный файл
@ -0,0 +1,29 @@
|
||||
#include <mpi.h>
|
||||
#include <iostream>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int rank, size;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_TRACER("main");
|
||||
#endif
|
||||
|
||||
MPI::Init(argc, argv);
|
||||
size = MPI::COMM_WORLD.Get_size();
|
||||
rank = MPI::COMM_WORLD.Get_rank();
|
||||
|
||||
cout << "Hello from " << rank << " of " << size << " !" << endl;
|
||||
|
||||
MPI::Finalize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
65
ompi/contrib/vt/vt/examples/cxx/pi.cc
Обычный файл
65
ompi/contrib/vt/vt/examples/cxx/pi.cc
Обычный файл
@ -0,0 +1,65 @@
|
||||
#include <mpi.h>
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
#define NUM_ITERS 100000
|
||||
|
||||
using namespace std;
|
||||
|
||||
static double f(double);
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int n = NUM_ITERS;
|
||||
int rank, size, i;
|
||||
double PI25DT = 3.141592653589793238462643;
|
||||
double mypi, pi, h, sum, x;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_TRACER("main");
|
||||
#endif
|
||||
|
||||
MPI::Init(argc, argv);
|
||||
size = MPI::COMM_WORLD.Get_size();
|
||||
rank = MPI::COMM_WORLD.Get_rank();
|
||||
|
||||
h = 1.0 / (double) n;
|
||||
sum = 0.0;
|
||||
for (i = rank + 1; i <= n; i += size) {
|
||||
x = h * ((double)i - 0.5);
|
||||
sum += f(x);
|
||||
}
|
||||
mypi = h * sum;
|
||||
|
||||
// Combine all the partial results
|
||||
MPI::COMM_WORLD.Reduce(&mypi, &pi, 1, MPI::DOUBLE, MPI::SUM, 0);
|
||||
|
||||
if (rank == 0) {
|
||||
cout << "After " << n << " iterations, pi is approximately "
|
||||
<< pi << ", Error is " << fabs(pi - PI25DT) << endl;
|
||||
}
|
||||
|
||||
MPI::Finalize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static double
|
||||
f(double a)
|
||||
{
|
||||
double e;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_TRACER("f");
|
||||
#endif
|
||||
|
||||
e = (4.0 / (1.0 + a * a));
|
||||
|
||||
return e;
|
||||
}
|
||||
|
88
ompi/contrib/vt/vt/examples/cxx/ring.cc
Обычный файл
88
ompi/contrib/vt/vt/examples/cxx/ring.cc
Обычный файл
@ -0,0 +1,88 @@
|
||||
//
|
||||
// Simple ring test program
|
||||
//
|
||||
|
||||
#include <mpi.h>
|
||||
#include <iostream>
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.h"
|
||||
#endif
|
||||
|
||||
#define NRING 100
|
||||
#define TAG 4711
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int rank, size, next, prev, message;
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_TRACER("main");
|
||||
#endif
|
||||
|
||||
// Start up MPI
|
||||
|
||||
MPI::Init();
|
||||
rank = MPI::COMM_WORLD.Get_rank();
|
||||
size = MPI::COMM_WORLD.Get_size();
|
||||
|
||||
// Calculate the rank of the next process in the ring. Use the
|
||||
// modulus operator so that the last process "wraps around" to
|
||||
// rank zero.
|
||||
|
||||
next = (rank + 1) % size;
|
||||
prev = (rank + size - 1) % size;
|
||||
|
||||
// If we are the "master" process (i.e., MPI_COMM_WORLD rank 0),
|
||||
// put the number of times to go around the ring in the message.
|
||||
|
||||
if (0 == rank) {
|
||||
message = NRING;
|
||||
|
||||
std::cout << "Process 0 sending " << message << " to " << next
|
||||
<< ", tag " << TAG << " (" << size << " processes in ring)"
|
||||
<< std::endl;
|
||||
MPI::COMM_WORLD.Send(&message, 1, MPI::INT, next, TAG);
|
||||
std::cout << "Process 0 sent to " << next << std::endl;
|
||||
}
|
||||
|
||||
// Pass the message around the ring. The exit mechanism works as
|
||||
// follows: the message (a positive integer) is passed around the
|
||||
// ring. Each time it passes rank 0, it is decremented. When
|
||||
// each processes receives a message containing a 0 value, it
|
||||
// passes the message on to the next process and then quits. By
|
||||
// passing the 0 message first, every process gets the 0 message
|
||||
// and can quit normally.
|
||||
|
||||
while (1) {
|
||||
#ifdef MANUAL
|
||||
VT_TRACER("ring_loop");
|
||||
#endif
|
||||
MPI::COMM_WORLD.Recv(&message, 1, MPI::INT, prev, TAG);
|
||||
|
||||
if (0 == rank) {
|
||||
--message;
|
||||
std::cout << "Process 0 decremented value: " << message
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
MPI::COMM_WORLD.Send(&message, 1, MPI::INT, next, TAG);
|
||||
if (0 == message) {
|
||||
std::cout << "Process " << rank << " exiting" << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// The last process does one extra send to process 0, which needs
|
||||
// to be received before the program can exit */
|
||||
|
||||
if (0 == rank) {
|
||||
MPI::COMM_WORLD.Recv(&message, 1, MPI::INT, prev, TAG);
|
||||
}
|
||||
|
||||
// All done
|
||||
|
||||
MPI::Finalize();
|
||||
|
||||
return 0;
|
||||
}
|
46
ompi/contrib/vt/vt/examples/fortran/Makefile
Обычный файл
46
ompi/contrib/vt/vt/examples/fortran/Makefile
Обычный файл
@ -0,0 +1,46 @@
|
||||
include Makefile.config
|
||||
|
||||
TARGETS = $(HELLO_TGT1) $(HELLO_TGT2) $(HELLO_TGT3) \
|
||||
$(PI_TGT1) $(PI_TGT2) $(PI_TGT3) \
|
||||
$(RING_TGT1) $(RING_TGT2) $(RING_TGT3)
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGETS)
|
||||
|
||||
|
||||
### hello-man ###
|
||||
hello-man: hello.F
|
||||
$(MPIFC) -vt:inst manual $(MPIFFLAGS) $(FDOPT)MANUAL $^ -o $@ $(FDOPT)VTRACE $(MPILIB)
|
||||
### hello-comp ###
|
||||
hello-comp: hello.F
|
||||
$(MPIFC) $(MPIFFLAGS) $^ -o $@ $(MPILIB)
|
||||
### hello-dyn ###
|
||||
hello-dyn: hello.F
|
||||
$(MPIFC) -vt:inst dyninst $(MPIFFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
### pi-man ###
|
||||
pi-man: pi.F
|
||||
$(MPIFC) -vt:inst manual $(MPIFFLAGS) $(FDOPT)MANUAL $^ -o $@ -lm $(FDOPT)VTRACE $(MPILIB)
|
||||
### pi-comp ###
|
||||
pi-comp: pi.F
|
||||
$(MPIFC) $(MPIFFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
### pi-dyn ###
|
||||
pi-dyn: pi.F
|
||||
$(MPIFC) -vt:inst dyninst $(MPIFFLAGS) $^ -o $@ -lm $(MPILIB)
|
||||
|
||||
|
||||
### ring-man ###
|
||||
ring-man: ring.F
|
||||
$(MPIFC) -vt:inst manual $(MPIFFLAGS) $(FDOPT)MANUAL $^ -o $@ $(FDOPT)VTRACE $(MPILIB)
|
||||
### ring-comp ###
|
||||
ring-comp: ring.F
|
||||
$(MPIFC) $(MPIFFLAGS) $^ -o $@ $(MPILIB)
|
||||
### ring-dyn ###
|
||||
ring-dyn: ring.F
|
||||
$(MPIFC) -vt:inst dyninst $(MPIFFLAGS) $^ -o $@ $(MPILIB)
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(TARGETS) *~ *.o
|
29
ompi/contrib/vt/vt/examples/fortran/Makefile.config
Обычный файл
29
ompi/contrib/vt/vt/examples/fortran/Makefile.config
Обычный файл
@ -0,0 +1,29 @@
|
||||
# MPI Fortran Compiler command, Compiler Flags, and MPI Library
|
||||
MPIFC = vtf90 -vt:f90 mpif90
|
||||
MPIFFLAGS = -g
|
||||
MPILIB =
|
||||
FDOPT = -D
|
||||
#FDOPT = -WF,D
|
||||
|
||||
# Example targets:
|
||||
# targets and coresponding instrumentation type
|
||||
# <prog>-man == manual: functions and loops by using VampirTrace's API
|
||||
# <prog>-comp == automatic: functions by using compiler
|
||||
# <prog>-dyn == binary-automatic: functions by using Dyninst
|
||||
# (comment line to disable a target)
|
||||
|
||||
# HELLO (Hello World)
|
||||
HELLO_TGT1 = hello-man
|
||||
HELLO_TGT2 = hello-comp
|
||||
#HELLO_TGT3 = hello-dyn
|
||||
|
||||
# PI (Approximates the value of pi)
|
||||
PI_TGT1 = pi-man
|
||||
PI_TGT2 = pi-comp
|
||||
#PI_TGT3 = pi-dyn
|
||||
|
||||
# RING (Send a trivial message around in a ring)
|
||||
RING_TGT1 = ring-man
|
||||
RING_TGT2 = ring-comp
|
||||
#RING_TGT3 = ring-dyn
|
||||
|
28
ompi/contrib/vt/vt/examples/fortran/hello.F
Обычный файл
28
ompi/contrib/vt/vt/examples/fortran/hello.F
Обычный файл
@ -0,0 +1,28 @@
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.inc"
|
||||
#endif
|
||||
|
||||
program hello
|
||||
|
||||
include 'mpif.h'
|
||||
|
||||
integer rank, size
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('hello')
|
||||
#endif
|
||||
|
||||
call MPI_INIT(ierr)
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
|
||||
|
||||
print *, "Hello from process ", rank, " of ", size, " !"
|
||||
|
||||
call MPI_FINALIZE(rc)
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('hello')
|
||||
#endif
|
||||
|
||||
stop
|
||||
end
|
84
ompi/contrib/vt/vt/examples/fortran/pi.F
Обычный файл
84
ompi/contrib/vt/vt/examples/fortran/pi.F
Обычный файл
@ -0,0 +1,84 @@
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.inc"
|
||||
#endif
|
||||
|
||||
program calcpi
|
||||
|
||||
include 'mpif.h'
|
||||
|
||||
double precision PI25DT
|
||||
parameter (PI25DT = 3.141592653589793238462643d0)
|
||||
|
||||
double precision mypi, pi, h, sum, x, f, a
|
||||
integer num_iters, rank, size, i, rc
|
||||
|
||||
c Function to integrate
|
||||
|
||||
f(a) = 4.d0 / (1.d0 + a * a)
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('calcpi')
|
||||
#endif
|
||||
|
||||
c Normal MPI startup
|
||||
|
||||
call MPI_INIT(ierr)
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
|
||||
print *, "Process ", rank, " of ", size, " is alive"
|
||||
|
||||
c Loop until finished
|
||||
|
||||
num_iters = 1000
|
||||
do 20 iter = 2, num_iters
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('outer_loop');
|
||||
#endif
|
||||
|
||||
c Calculate the interval size
|
||||
|
||||
h = 1.0d0 / iter
|
||||
sum = 0.0d0
|
||||
|
||||
do 10 i = rank + 1, iter, size
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('inner_loop');
|
||||
#endif
|
||||
x = h * (dble(i) - 0.5d0)
|
||||
sum = sum + f(x)
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('inner_loop');
|
||||
#endif
|
||||
10 continue
|
||||
mypi = h * sum
|
||||
|
||||
c Collect all the partial sums
|
||||
|
||||
call MPI_REDUCE(mypi, pi, 1, MPI_DOUBLE_PRECISION, MPI_SUM, 0,
|
||||
$ MPI_COMM_WORLD, ierr)
|
||||
|
||||
c Node 0 prints the answer.
|
||||
|
||||
if (rank .eq. 0) then
|
||||
write(6, 97) iter, pi, abs(pi - PI25DT)
|
||||
97 format(i3, ' points: pi is approximately: ', F18.16,
|
||||
+ ' error is: ', F18.16)
|
||||
endif
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('outer_loop');
|
||||
#endif
|
||||
|
||||
20 continue
|
||||
|
||||
c All finished
|
||||
|
||||
call MPI_FINALIZE(rc)
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('calcpi')
|
||||
#endif
|
||||
|
||||
stop
|
||||
end
|
98
ompi/contrib/vt/vt/examples/fortran/ring.F
Обычный файл
98
ompi/contrib/vt/vt/examples/fortran/ring.F
Обычный файл
@ -0,0 +1,98 @@
|
||||
C
|
||||
C Simple ring test program
|
||||
C
|
||||
|
||||
#ifdef MANUAL
|
||||
#include "vt_user.inc"
|
||||
#endif
|
||||
|
||||
program ring
|
||||
implicit none
|
||||
include 'mpif.h'
|
||||
integer rank, size, tag, next, from, message, ierr
|
||||
integer status(MPI_STATUS_SIZE)
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('ring')
|
||||
#endif
|
||||
|
||||
C Start up MPI */
|
||||
|
||||
call MPI_INIT(ierr)
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
|
||||
|
||||
C Calculate the rank of the next process in the ring. Use the
|
||||
C modulus operator so that the last process "wraps around" to rank
|
||||
C zero.
|
||||
|
||||
tag = 4711
|
||||
next = mod((rank + 1), size)
|
||||
from = mod((rank + size - 1), size)
|
||||
|
||||
C If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put
|
||||
C the number of times to go around the ring in the message.
|
||||
|
||||
if (rank .eq. 0) then
|
||||
message = 100
|
||||
|
||||
print *, 'Process 0 sending ', message, ' to ', next, ' tag ',
|
||||
& tag, ' (', size, ' processes in ring)'
|
||||
call MPI_SEND(message, 1, MPI_INTEGER, next, tag,
|
||||
& MPI_COMM_WORLD, ierr)
|
||||
print *, 'Process 0 sent to ', next
|
||||
endif
|
||||
|
||||
C Pass the message around the ring. The exit mechanism works as
|
||||
C follows: the message (a positive integer) is passed around the
|
||||
C ring. Each time it passes rank 0, it is decremented. When each
|
||||
C processes receives a message containing a 0 value, it passes the
|
||||
C message on to the next process and then quits. By passing the 0
|
||||
C message first, every process gets the 0 message and can quit
|
||||
C normally.
|
||||
|
||||
10 continue
|
||||
#ifdef MANUAL
|
||||
VT_USER_START('ring_loop')
|
||||
#endif
|
||||
call MPI_RECV(message, 1, MPI_INTEGER, from, tag,
|
||||
& MPI_COMM_WORLD, status, ierr)
|
||||
|
||||
if (rank .eq. 0) then
|
||||
message = message - 1
|
||||
print *, 'Process 0 decremented value:', message
|
||||
endif
|
||||
|
||||
call MPI_SEND(message, 1, MPI_INTEGER, next, tag,
|
||||
& MPI_COMM_WORLD, ierr)
|
||||
|
||||
if (message .eq. 0) then
|
||||
print *, 'Process ', rank, ' exiting'
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('ring_loop')
|
||||
#endif
|
||||
goto 20
|
||||
endif
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('ring_loop')
|
||||
#endif
|
||||
goto 10
|
||||
|
||||
C The last process does one extra send to process 0, which needs to
|
||||
C be received before the program can exit
|
||||
|
||||
20 if (rank .eq. 0) then
|
||||
call MPI_RECV(message, 1, MPI_INTEGER, from, tag,
|
||||
& MPI_COMM_WORLD, status, ierr)
|
||||
endif
|
||||
|
||||
C All done
|
||||
|
||||
call MPI_FINALIZE(ierr)
|
||||
|
||||
#ifdef MANUAL
|
||||
VT_USER_END('ring')
|
||||
#endif
|
||||
|
||||
end
|
||||
|
6
ompi/contrib/vt/vt/extlib/Makefile.am
Обычный файл
6
ompi/contrib/vt/vt/extlib/Makefile.am
Обычный файл
@ -0,0 +1,6 @@
|
||||
if AMEXTERNOTF
|
||||
SUBDIRS =
|
||||
else
|
||||
SUBDIRS = otf
|
||||
endif
|
||||
|
525
ompi/contrib/vt/vt/extlib/Makefile.in
Обычный файл
525
ompi/contrib/vt/vt/extlib/Makefile.in
Обычный файл
@ -0,0 +1,525 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = extlib
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = otf
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BFDINCDIR = @BFDINCDIR@
|
||||
BFDLIB = @BFDLIB@
|
||||
BFDLIBDIR = @BFDLIBDIR@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASDEPMODE = @CCASDEPMODE@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
|
||||
CXX_FOR_BUILD = @CXX_FOR_BUILD@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLINCDIR = @DLINCDIR@
|
||||
DLLIB = @DLLIB@
|
||||
DLLIBDIR = @DLLIBDIR@
|
||||
DYNIINCDIR = @DYNIINCDIR@
|
||||
DYNILIB = @DYNILIB@
|
||||
DYNILIBDIR = @DYNILIBDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FC = @FC@
|
||||
FCFLAGS = @FCFLAGS@
|
||||
FFLAGS = @FFLAGS@
|
||||
FMPILIB = @FMPILIB@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
LDSHFLAG = @LDSHFLAG@
|
||||
LIBERTYINCDIR = @LIBERTYINCDIR@
|
||||
LIBERTYLIB = @LIBERTYLIB@
|
||||
LIBERTYLIBDIR = @LIBERTYLIBDIR@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPICC = @MPICC@
|
||||
MPICFLAGS = @MPICFLAGS@
|
||||
MPIDIR = @MPIDIR@
|
||||
MPIINCDIR = @MPIINCDIR@
|
||||
MPILIB = @MPILIB@
|
||||
MPILIBDIR = @MPILIBDIR@
|
||||
OBJEXT = @OBJEXT@
|
||||
OMPFLAG = @OMPFLAG@
|
||||
OTFDIR = @OTFDIR@
|
||||
OTFINCDIR = @OTFINCDIR@
|
||||
OTFLIB = @OTFLIB@
|
||||
OTFLIBDIR = @OTFLIBDIR@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PAPIINCDIR = @PAPIINCDIR@
|
||||
PAPILIB = @PAPILIB@
|
||||
PAPILIBDIR = @PAPILIBDIR@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PLATFORM = @PLATFORM@
|
||||
PMPILIB = @PMPILIB@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VTDYNATTLIB = @VTDYNATTLIB@
|
||||
VT_WRAPPER_AVAIL_INST = @VT_WRAPPER_AVAIL_INST@
|
||||
VT_WRAPPER_DEFAULT_INST = @VT_WRAPPER_DEFAULT_INST@
|
||||
VT_WRAPPER_EXTRA_CFLAGS = @VT_WRAPPER_EXTRA_CFLAGS@
|
||||
VT_WRAPPER_EXTRA_CXXFLAGS = @VT_WRAPPER_EXTRA_CXXFLAGS@
|
||||
VT_WRAPPER_EXTRA_FCFLAGS = @VT_WRAPPER_EXTRA_FCFLAGS@
|
||||
VT_WRAPPER_EXTRA_FFLAGS = @VT_WRAPPER_EXTRA_FFLAGS@
|
||||
VT_WRAPPER_EXTRA_LDFLAGS = @VT_WRAPPER_EXTRA_LDFLAGS@
|
||||
VT_WRAPPER_EXTRA_LIBS = @VT_WRAPPER_EXTRA_LIBS@
|
||||
VT_WRAPPER_INCDIR = @VT_WRAPPER_INCDIR@
|
||||
VT_WRAPPER_LIBDIR = @VT_WRAPPER_LIBDIR@
|
||||
VT_WRAPPER_OPARI_BIN = @VT_WRAPPER_OPARI_BIN@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_FC = @ac_ct_FC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@AMEXTERNOTF_FALSE@SUBDIRS = otf
|
||||
@AMEXTERNOTF_TRUE@SUBDIRS =
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extlib/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu extlib/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am check check-am clean clean-generic ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||
tags-recursive uninstall uninstall-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
5
ompi/contrib/vt/vt/extlib/otf/AUTHORS
Обычный файл
5
ompi/contrib/vt/vt/extlib/otf/AUTHORS
Обычный файл
@ -0,0 +1,5 @@
|
||||
Andreas Knuepfer <andreas.knuepfer AT tu-dresden.de>
|
||||
Ronny Brendel <ronny.brendel AT tu-dresden.de>
|
||||
Matthias Jurenz <matthias.jurenz AT tu-dresden.de>
|
||||
Holger Brunst <holger.brunst AT tu-dresden.de>
|
||||
Hartmut Mix <hartmut.mix AT tu-dresden.de>
|
29
ompi/contrib/vt/vt/extlib/otf/COPYING
Обычный файл
29
ompi/contrib/vt/vt/extlib/otf/COPYING
Обычный файл
@ -0,0 +1,29 @@
|
||||
Copyright (c) 2005-2007, ZIH, Technische Universitaet Dresden,
|
||||
Federal Republic of Germany
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
- Neither the name of ZIH, TU Dresden nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
206
ompi/contrib/vt/vt/extlib/otf/ChangeLog
Обычный файл
206
ompi/contrib/vt/vt/extlib/otf/ChangeLog
Обычный файл
@ -0,0 +1,206 @@
|
||||
1.0.x
|
||||
- initial version
|
||||
|
||||
1.1.1
|
||||
- OTF_Reader now considers the return values of the handlers
|
||||
- added OTF_VERBOSE, OTF_DEBUG macro for error treatment
|
||||
- introduced 'UnknownRecord' handler which allows to catch
|
||||
unknown record types
|
||||
|
||||
1.1.2
|
||||
- inverted return value of call-back handlers:
|
||||
'0' is non-error, '!= 0' is regarded as an error, now!
|
||||
(this makes OTF conform with the VTF3 scheme.)
|
||||
|
||||
1.1.3
|
||||
- fixed a minor bug in otfaux
|
||||
|
||||
1.1.4
|
||||
- fixed a bug in OTF_Reader which might have caused the very first
|
||||
time stamp of a trace to be not properly sorted
|
||||
- introduced '--snapshots' and '--statistics' switches to do only
|
||||
snapshots or statistics. for statistics a selective mode is allowed
|
||||
which regards only some streams. By this means statistics can be created
|
||||
in parallel by calling otfaux multiple times.
|
||||
|
||||
1.1.5
|
||||
- have UnknownRecord report handle incomplete records or additional bytes at
|
||||
the end of a file.
|
||||
|
||||
1.2.0
|
||||
- introduce transparent zlib compression
|
||||
|
||||
1.2.1
|
||||
- added progress functions using read bytes instead of timestamps
|
||||
|
||||
1.2.2
|
||||
- important bugfix: definitionstream 0 was ignored since version 1.2.0
|
||||
|
||||
1.2.3
|
||||
- bugfix: provided copy handlers returned wrong value
|
||||
|
||||
1.2.4
|
||||
- bugfix: zlib compression bug, wrong sanity check fixed
|
||||
|
||||
1.2.5
|
||||
- bugfix: correctly handle process groups with more than 1000 entries
|
||||
|
||||
1.2.6
|
||||
- support shared libraries
|
||||
1.2.7
|
||||
- added progress functions to OTF_RStream
|
||||
- added a progress counter to otfmerge
|
||||
1.2.8
|
||||
- allow suffix '.dylib' for zlib library file (from Mac OS X)
|
||||
- removed configure warning
|
||||
|
||||
1.2.9
|
||||
- changeable zlevel
|
||||
- changeable zbuffersize
|
||||
|
||||
1.2.10
|
||||
- bugfix: otfmerge does no longer accept traces with local streams
|
||||
|
||||
1.2.11
|
||||
- changed OTF_RETURN*( 0=success, !0 = error )
|
||||
- added these macros to all internal functions and tools for better
|
||||
consistency
|
||||
- fixed various memoryleaks in otf and otfmerge
|
||||
- added otfconfig to tools. otfconfig shows installationparameters
|
||||
important for developers
|
||||
- updated documentation
|
||||
|
||||
1.2.12
|
||||
- removed intel compiler warnings in otfmerge
|
||||
- removed debug output
|
||||
- fixed 64bit issue
|
||||
|
||||
1.2.13
|
||||
- removed intel compiler warnings
|
||||
- changed OTF_FILETYPE_*-macros
|
||||
- fixed issues with OTF_getFilename()
|
||||
|
||||
1.2.14
|
||||
- do not linke with '-lz' if '--with-zlibsymbols' was specified
|
||||
- added zlib include line to otflib/Makefile.am
|
||||
|
||||
1.2.15
|
||||
- 3 new records introduced (NOTE: these are experimental):
|
||||
- DefFile
|
||||
- DefFileGroup
|
||||
- FileOperation
|
||||
1.2.16
|
||||
- fixed a problem with comments in otfmerge
|
||||
- 2 new records introduced (NOTE: these are experimental):
|
||||
- OpenFileSnapshot
|
||||
- FileOperationSummary
|
||||
1.2.17
|
||||
- bugfixed parser (wrong treatment of unknown records)
|
||||
- added FileGroupOperationSummary record
|
||||
- changed FileOperation-, OpenFileSnapshot- and FileOperationSummary- record
|
||||
NOTE: these records are still experimental
|
||||
- included file operation records into all tools
|
||||
NOTE: some parameters were added/changed
|
||||
- the byte-parameter in the FileOperation record does now contain the
|
||||
new position in the file file after the seek operation
|
||||
- bugfixed otfmerge
|
||||
|
||||
1.2.18
|
||||
- added fwrite check for writting less bytes than expected
|
||||
- re-write of otfdump. Now, it uses OTF read lib instead of plain scanf.
|
||||
It produces nicer output and numbers records in read order.
|
||||
|
||||
1.2.19
|
||||
- finished otfdump
|
||||
- removed debug output in OTF_Reader.c
|
||||
- re-introduced DefVersion record as read only
|
||||
|
||||
1.2.20
|
||||
- added own inttypes definitions in case there is no on the platform
|
||||
(necessary on NEC SX6)
|
||||
|
||||
1.2.21
|
||||
- fixed "--with-zlib-symbols"-bug
|
||||
|
||||
1.2.22
|
||||
- fixed inttypes/stdint bug
|
||||
|
||||
1.2.23
|
||||
- removed libtool from autoconf to make configure much faster,
|
||||
libtool was not used by automake anyhow
|
||||
- removed some autoconf-generated files from CVS,
|
||||
you might need to re-run 'sh bootstrap' yourself
|
||||
|
||||
1.2.24
|
||||
- minor change in otf[de|un]compress
|
||||
- strictly avoid writing of unsorted time stamps. Now, there will be an
|
||||
error message and the corresponding buffer/stream will be disabled for
|
||||
further writing. The write routines provide an invlaid return code but
|
||||
currently there is no way to "repair" the buffer/stream after an unsorted
|
||||
time stamp has been issued.
|
||||
|
||||
1.3.0
|
||||
- integrated libtool for shared and static linkage to otf
|
||||
- removed the possibility to include zlib symbols into otf
|
||||
- fixed warning which appeared when not using zlib
|
||||
- added python bindings to the otf library
|
||||
|
||||
1.3.1
|
||||
- if an fopen() call fails an error is now printed out every time
|
||||
- OTF_READ_ERROR was introduced as an error return value for all
|
||||
OTF_Reader_readXXX and OTF_RStream_readXXX functions. So (uint64_t)-1 is
|
||||
now a reserved value, thus cannot be used as record limit.
|
||||
The record limit always has to be smaller than or equal to
|
||||
OTF_READ_MAXRECORDS.
|
||||
- fixed issue in otfmerge, when using many streams
|
||||
|
||||
1.3.2
|
||||
- added small functions to convert various variable types to common
|
||||
counter type uint64_t. By this means, other types can be transported
|
||||
as uint64_t and re-casted during reading.
|
||||
This requires type information as additional counter property flags!
|
||||
|
||||
1.3.3
|
||||
- fixed configure bug when searching for zlib on mac
|
||||
- fixed bug in otfmerge, where the parameter "-n 0" caused an error
|
||||
- added macros for specifing the data type of the counter
|
||||
(OTF_COUNTER_VARTYPE_*)
|
||||
- fixed otfconfig help text
|
||||
- fixed bugs when using make dist
|
||||
- python bindings disabled by default
|
||||
- fixed configure bug, when using python bindings
|
||||
- updated python bindings to support user defined counters
|
||||
|
||||
1.3.4
|
||||
- bug fix in otfmerge: missing handling of DefCollectiveOperation
|
||||
- bugfix in the documentation: overview.eps was broken
|
||||
|
||||
1.3.5
|
||||
- added doxygen html documentation (docu/doxygen/html/index.html)
|
||||
- fixed issue, where newlines were forbidden in def, stats and snaps
|
||||
- added missing const to OTF_WStream_writeDefProcessGroup()
|
||||
|
||||
1.3.6
|
||||
- OTF_{Keywords.h,Parse.h,Platform.h} will no longer be installed
|
||||
- added a compile time assert making sure the correct sizes of the
|
||||
integer types ([u]int*_T)
|
||||
- OTF is now Windows Visual Studio compatible
|
||||
|
||||
1.3.7
|
||||
- added example for using OTF_MasterControl to the doxygen documentation
|
||||
- general improvement of the documentation
|
||||
- improved autoconf's m4 scripts for cross buildings
|
||||
|
||||
1.3.8
|
||||
- generate OTF_inttypes.h during configuring which provides
|
||||
the integer types like int64_t, int8_t,...
|
||||
- shared OTF library will be linked with zlib, thus additionally
|
||||
linking with zlib is not necessary
|
||||
- bugfix in otf2vtf: correctly handle function leave records with id 0
|
||||
|
||||
1.3.9
|
||||
- fixed a portability bug: use own implementation of function
|
||||
'strdup()'
|
||||
- install a symbolic link 'otfdecompress' which is a synonym for
|
||||
'otfcompress -d'
|
||||
|
295
ompi/contrib/vt/vt/extlib/otf/INSTALL
Обычный файл
295
ompi/contrib/vt/vt/extlib/otf/INSTALL
Обычный файл
@ -0,0 +1,295 @@
|
||||
(See specific OTF related information at the end of this file.)
|
||||
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions. OTF-specific options can be
|
||||
found at the end of this document.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
will cause the specified gcc to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
|
||||
OTF specific `configure' Examples
|
||||
=================================
|
||||
|
||||
|
||||
The '--with-vtf3' option allows to specify VTF3 include path and library path.
|
||||
By default '../vtf3' is searched for headers & library unless '--without-vtf3'
|
||||
is specified. Additional options '--with-vtf3-lib-dir' and
|
||||
'--with-vtf3-include-dir' allow to give headers location and library location
|
||||
separately.
|
||||
|
||||
|
||||
Further options '--with-debug' and '--with-verbose' make the OTF library and
|
||||
tools perform stricter checks and produce more verbose output (warnings/errors)
|
||||
on stderr respectively.
|
||||
|
||||
|
||||
On some platforms an error like "dereferencing type-punned pointer will break
|
||||
strict-aliasing rules" may occur. If that is the case add "-fno-strict-aliasing"
|
||||
(thats the parameter for gcc. It may be a bit different for other compilers)
|
||||
to the CFLAGS and CXXFLAGS.
|
||||
|
||||
|
||||
The '--with-zlib' option (default) enables tranparent compression/decompression
|
||||
by ZLib, '--without-zlib' disables this feature. If '--with-zlibsymbols' is
|
||||
specified in addition, all symbols from libz.a are directly included into
|
||||
libotf.a. This makes it unnecessary to append '-lz' to another programs linker
|
||||
list. However, it might cause collisions if '-lz' is present with the other
|
||||
program already.
|
||||
Note that '--with-zlibsymbols' is not compatible with shared libraries. The option
|
||||
'--disable-shared' is necessary when ZLib symbols are included into OTF library.
|
||||
|
||||
|
||||
Installing 32-bit and 64-bit Libraries Concurrently
|
||||
===================================================
|
||||
|
||||
Some platforms support 32-bit and 64-bit executables and libraries. Please chose
|
||||
one flavor as default and set appropriate options via './configure'. Then do
|
||||
'make' and 'make install'. This will have everything built and installed with
|
||||
default flavor: library, header files and tools.
|
||||
In order to have alternative library flavor created, re-run './configure' with
|
||||
alternative options and do 'make' but NOT 'make install'. Rather, copy the
|
||||
library manually to the desired location. Make sure not to overwrite the default
|
||||
library. Header files and tools are not affected by this issue because always
|
||||
only the default version will be necessary.
|
||||
|
||||
|
||||
Example configure Command Line
|
||||
==============================
|
||||
|
||||
example on Linux:
|
||||
%> ./configure CFLAGS="-O3 -g -Wall -Werror" CXXFLAGS="-O3 -g -Wall -Werror"
|
||||
--with-vtf3=$HOME/prog/vtf/ --with-zlib --with-zlibsymbols --disable-shared
|
||||
--prefix=$HOME
|
||||
|
||||
example on SGI Irix:
|
||||
%> ./configure CC=cc CFLAGS="-O3 -n32 -g -ansiW" --with-vtf3=$HOME/prog/vtf/
|
||||
|
||||
example on NEC SX6i front end with cross compiler
|
||||
%> ./configure AR="sxar" RANLIB="sxar st" CC="sxcc -sx5" CXX="sxc++ -sx5"
|
||||
--host=sx6-nec-superux14.1 --build=i686-pc-linux-gnu
|
||||
--without-zlib --prefix=/home_sx6i/knuepfe/
|
15
ompi/contrib/vt/vt/extlib/otf/Makefile.am
Обычный файл
15
ompi/contrib/vt/vt/extlib/otf/Makefile.am
Обычный файл
@ -0,0 +1,15 @@
|
||||
if AMHAVEPYTHONSWIG
|
||||
SUBDIRS = \
|
||||
otflib \
|
||||
otflib_py \
|
||||
tools
|
||||
else
|
||||
SUBDIRS = \
|
||||
otflib \
|
||||
tools
|
||||
endif
|
||||
EXTRA_DIST= \
|
||||
docu/api/specification.pdf \
|
||||
docu/tools/otftools.pdf \
|
||||
docu/doxygen.conf \
|
||||
otf_vc05.sln
|
669
ompi/contrib/vt/vt/extlib/otf/Makefile.in
Обычный файл
669
ompi/contrib/vt/vt/extlib/otf/Makefile.in
Обычный файл
@ -0,0 +1,669 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
TODO config.guess config.sub depcomp install-sh ltmain.sh \
|
||||
missing py-compile
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = otflib tools otflib_py
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
|
||||
PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
|
||||
PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
SWIG = @SWIG@
|
||||
SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
|
||||
SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
|
||||
VERSION = @VERSION@
|
||||
VTF3_INCLUDE_DIR = @VTF3_INCLUDE_DIR@
|
||||
VTF3_INCLUDE_LINE = @VTF3_INCLUDE_LINE@
|
||||
VTF3_LIB_DIR = @VTF3_LIB_DIR@
|
||||
VTF3_LIB_LINE = @VTF3_LIB_LINE@
|
||||
ZLIB_INCLUDE_DIR = @ZLIB_INCLUDE_DIR@
|
||||
ZLIB_INCLUDE_LINE = @ZLIB_INCLUDE_LINE@
|
||||
ZLIB_LIB_DIR = @ZLIB_LIB_DIR@
|
||||
ZLIB_LIB_LINE = @ZLIB_LIB_LINE@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
have_inttypes_h = @have_inttypes_h@
|
||||
have_stdint_h = @have_stdint_h@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sizeof_long = @sizeof_long@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@AMHAVEPYTHONSWIG_FALSE@SUBDIRS = \
|
||||
@AMHAVEPYTHONSWIG_FALSE@ otflib \
|
||||
@AMHAVEPYTHONSWIG_FALSE@ tools
|
||||
|
||||
@AMHAVEPYTHONSWIG_TRUE@SUBDIRS = \
|
||||
@AMHAVEPYTHONSWIG_TRUE@ otflib \
|
||||
@AMHAVEPYTHONSWIG_TRUE@ otflib_py \
|
||||
@AMHAVEPYTHONSWIG_TRUE@ tools
|
||||
|
||||
EXTRA_DIST = \
|
||||
docu/api/specification.pdf \
|
||||
docu/tools/otftools.pdf \
|
||||
docu/doxygen.conf \
|
||||
otf_vc05.sln
|
||||
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
0
ompi/contrib/vt/vt/extlib/otf/NEWS
Обычный файл
0
ompi/contrib/vt/vt/extlib/otf/NEWS
Обычный файл
17
ompi/contrib/vt/vt/extlib/otf/README
Обычный файл
17
ompi/contrib/vt/vt/extlib/otf/README
Обычный файл
@ -0,0 +1,17 @@
|
||||
Open Trace Format (OTF)
|
||||
|
||||
Detailed program analysis of massively parallel programs requires the recording of event based performance data during run-time and its visualisation with appropriate software tools like the Vampir framework.
|
||||
|
||||
The specification of a convenient and powerful trace file format has to fulfill a large number of requirements. It must allow an efficient collection of the event based performance data on a parallel program environment. On the other hand it has to provide a very fast and convenient access to the large amount of performance data and the corresponding event definitions by the analysis software tools.
|
||||
|
||||
To improve scalability for very large and massively parallel traces the Open Trace Format (OTF) has been developed at ZIH as a successor format to the Vampir Trace Format (VTF3).
|
||||
|
||||
The Open Trace Format makes use of a portable ASCII encoding. It distributes single traces to multiple so called streams with one or more files each. Merging of records from multiple files is done transparently by the OTF library. The number of possible streams is not limited by the number of available file handles.
|
||||
|
||||
The provided read/write library should be used as a convenient interface for third party software. The library supports efficient parallel and distributed access to trace data and offers selective reading access regarding arbitrary time intervals, process selection and record types.
|
||||
Optional auxiliary information can assist this selective access.
|
||||
|
||||
The software package contains additional tools for trace date conversion or preparation.
|
||||
More information can be found in the provided documentation.
|
||||
|
||||
OTF version is available as open source software under the BSD license, see 'COPYING'. The software comes as a source code package. It can be installed by using autoconf procedures, see 'INSTALL'.
|
28
ompi/contrib/vt/vt/extlib/otf/TODO
Обычный файл
28
ompi/contrib/vt/vt/extlib/otf/TODO
Обычный файл
@ -0,0 +1,28 @@
|
||||
- re-design OTF's error/success return values for handlers and functions
|
||||
|
||||
- ideas for future development
|
||||
- add memory allocation/deallocation record types, how?
|
||||
- have more semantics
|
||||
- have less semantics
|
||||
- add general purpose record types like (type/owner,key,value) with no semantics,
|
||||
-- can be used freely, ignored if unknown,
|
||||
-- key/value are either uint64_t, array of uint64_t or text
|
||||
|
||||
- add record to write wall clock time or epoch or year:month:day:hour:minute:second
|
||||
with this, VT can record time at start and end of trace (request by Robert Henschel)
|
||||
|
||||
- create a (graphical) tool for changing definition records:
|
||||
- grouping functions
|
||||
- ...
|
||||
|
||||
- solve the problem that when only reading statistic records one cannot
|
||||
determine the begin and end of a process !!!!!
|
||||
You might introduce a new record for this. ( maybe like begin/endprocess
|
||||
for events? )
|
||||
You could also write a statistics comment record when the first event appears,
|
||||
(in otfaux)
|
||||
|
||||
- add new statistics record type that gives the caller-callee relation
|
||||
- only write this at the end of a trace run
|
||||
|
||||
- use asynchronous write (aio_write) and maybe even read for performance
|
478
ompi/contrib/vt/vt/extlib/otf/acinclude.m4
Обычный файл
478
ompi/contrib/vt/vt/extlib/otf/acinclude.m4
Обычный файл
@ -0,0 +1,478 @@
|
||||
dnl have the vtf3 dirs specified
|
||||
AC_DEFUN([CHECK_VTF3],
|
||||
[
|
||||
vtf3_error="no"
|
||||
check_vtf3="yes"
|
||||
force_vtf3="no"
|
||||
have_vtf3="no"
|
||||
|
||||
AH_TEMPLATE(HAVE_VTF3, [], [defined if vtf3 library is to be used])
|
||||
|
||||
AC_ARG_WITH([vtf3],
|
||||
AC_HELP_STRING([--with-vtf3],
|
||||
[use vtf3, default: yes if found by configure]),
|
||||
[if test "$withval" = "yes"; then force_vtf3="yes"; else check_vtf3="no"; fi])
|
||||
|
||||
AC_ARG_WITH([vtf3-dir],
|
||||
AC_HELP_STRING([--with-vtf3-dir],
|
||||
[give the path for vtf3, default: /usr]),
|
||||
[vtf3_dir="$withval/"])
|
||||
|
||||
AC_ARG_WITH([vtf3-inc-dir],
|
||||
AC_HELP_STRING([--with-vtf3-inc-dir],
|
||||
[give the path dir vtf3-include files, default: VTF3DIR/include]),
|
||||
[vtf3_inc_dir="$withval/"],
|
||||
[if test x"$vtf3_dir" != x; then vtf3_inc_dir="$vtf3_dir"include/; fi])
|
||||
|
||||
AC_ARG_WITH([vtf3-lib-dir],
|
||||
AC_HELP_STRING([--with-vtf3-lib-dir],
|
||||
[give the path for VTF3-libraries, default: VTF3DIR/lib]),
|
||||
[vtf3_lib_dir="$withval/"],
|
||||
[if test x"$vtf3_dir" != x; then vtf3_lib_dir="$vtf3_dir"lib/; fi])
|
||||
|
||||
AC_ARG_WITH([vtf3-lib],
|
||||
AC_HELP_STRING([--with-vtf3-lib],
|
||||
[use given vtf3, default: -lvtf3]),
|
||||
[vtf3_lib="$withval"])
|
||||
|
||||
if test "$check_vtf3" = "yes"; then
|
||||
sav_CPPFLAGS=$CPPFLAGS
|
||||
if test x"$vtf3_inc_dir" != x; then
|
||||
CPPFLAGS="$CPPFLAGS -I$vtf3_inc_dir"
|
||||
fi
|
||||
AC_CHECK_HEADER([vtf3.h], [],
|
||||
[
|
||||
AC_MSG_NOTICE([error: no vtf3.h found; check path for VTF3 package first...])
|
||||
vtf3_error="yes"
|
||||
])
|
||||
CPPFLAGS=$sav_CPPFLAGS
|
||||
|
||||
if test x"$vtf3_lib" = x -a "$vtf3_error" = "no"; then
|
||||
sav_LIBS=$LIBS
|
||||
cl="-lvtf3"
|
||||
if test x"$vtf3_lib_dir" != x; then
|
||||
cl="-L$vtf3_lib_dir $cl"
|
||||
fi
|
||||
LIBS="$LIBS $cl"
|
||||
AC_MSG_CHECKING([whether linking with -lvtf3 works])
|
||||
AC_TRY_LINK([],[],
|
||||
[AC_MSG_RESULT([yes]); vtf3_lib=-lvtf3],[AC_MSG_RESULT([no])])
|
||||
LIBS=$sav_LIBS
|
||||
fi
|
||||
|
||||
if test x"$vtf3_lib" = x -a "$vtf3_error" = "no"; then
|
||||
AC_MSG_NOTICE([error: no libvtf3 found; check path for VTF3 package first...])
|
||||
vtf3_error="yes"
|
||||
fi
|
||||
|
||||
if test $vtf3_error = "no"; then
|
||||
AC_DEFINE(HAVE_VTF3)
|
||||
have_vtf3="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
VTF3_LIB_DIR=$vtf3_lib_dir
|
||||
VTF3_LIB_LINE=$vtf3_lib
|
||||
if test x"$vtf3_lib_dir" != x; then
|
||||
VTF3_LIB_LINE="-L$vtf3_lib_dir $VTF3_LIB_LINE"
|
||||
fi
|
||||
|
||||
VTF3_INCLUDE_DIR=$vtf3_inc_dir
|
||||
VTF3_INCLUDE_LINE=
|
||||
if test x"$vtf3_inc_dir" != x; then
|
||||
VTF3_INCLUDE_LINE="-I$vtf3_inc_dir"
|
||||
fi
|
||||
|
||||
AC_SUBST(VTF3_LIB_DIR)
|
||||
AC_SUBST(VTF3_LIB_LINE)
|
||||
AC_SUBST(VTF3_INCLUDE_DIR)
|
||||
AC_SUBST(VTF3_INCLUDE_LINE)
|
||||
])
|
||||
dnl have the zlib dirs specified
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
[
|
||||
zlib_error="no"
|
||||
check_zlib="yes"
|
||||
force_zlib="no"
|
||||
have_zlib="no"
|
||||
|
||||
AH_TEMPLATE(HAVE_ZLIB, [], [defined if zlib library is to be used])
|
||||
|
||||
AC_ARG_WITH([zlib],
|
||||
AC_HELP_STRING([--with-zlib],
|
||||
[use zlib, default: yes if found by configure]),
|
||||
[if test "$withval" = "yes"; then force_zlib="yes"; else check_zlib="no"; fi])
|
||||
|
||||
AC_ARG_WITH([zlib-dir],
|
||||
AC_HELP_STRING([--with-zlib-dir],
|
||||
[give the path for zlib, default: /usr]),
|
||||
[zlib_dir="$withval/"])
|
||||
|
||||
AC_ARG_WITH([zlib-inc-dir],
|
||||
AC_HELP_STRING([--with-zlib-inc-dir],
|
||||
[give the path dir zlib-include files, default: ZLIBDIR/include]),
|
||||
[zlib_inc_dir="$withval/"],
|
||||
[if test x"$zlib_dir" != x; then zlib_inc_dir="$zlib_dir"include/; fi])
|
||||
|
||||
AC_ARG_WITH([zlib-lib-dir],
|
||||
AC_HELP_STRING([--with-zlib-lib-dir],
|
||||
[give the path for ZLIB-libraries, default: ZLIBDIR/lib]),
|
||||
[zlib_lib_dir="$withval/"],
|
||||
[if test x"$zlib_dir" != x; then zlib_lib_dir="$zlib_dir"lib/; fi])
|
||||
|
||||
AC_ARG_WITH([zlib-lib],
|
||||
AC_HELP_STRING([--with-zlib-lib],
|
||||
[use given zlib, default: -lz]),
|
||||
[zlib_lib="$withval"])
|
||||
|
||||
if test "$check_zlib" = "yes"; then
|
||||
sav_CPPFLAGS=$CPPFLAGS
|
||||
if test x"$zlib_inc_dir" != x; then
|
||||
CPPFLAGS="$CPPFLAGS -I$zlib_inc_dir"
|
||||
fi
|
||||
AC_CHECK_HEADER([zlib.h], [],
|
||||
[
|
||||
AC_MSG_NOTICE([error: no zlib.h found; check path for ZLIB package first...])
|
||||
zlib_error="yes"
|
||||
])
|
||||
CPPFLAGS=$sav_CPPFLAGS
|
||||
|
||||
if test x"$zlib_lib" = x -a "$zlib_error" = "no"; then
|
||||
sav_LIBS=$LIBS
|
||||
cl="-lz"
|
||||
if test x"$zlib_lib_dir" != x; then
|
||||
cl="-L$zlib_lib_dir $cl"
|
||||
fi
|
||||
LIBS="$LIBS $cl"
|
||||
AC_MSG_CHECKING([whether linking with -lz works])
|
||||
AC_TRY_LINK([],[],
|
||||
[AC_MSG_RESULT([yes]); zlib_lib=-lz],[AC_MSG_RESULT([no])])
|
||||
LIBS=$sav_LIBS
|
||||
fi
|
||||
|
||||
if test x"$zlib_lib" = x -a "$zlib_error" = "no"; then
|
||||
AC_MSG_NOTICE([error: no libz found; check path for ZLIB package first...])
|
||||
zlib_error="yes"
|
||||
fi
|
||||
|
||||
if test $zlib_error = "no"; then
|
||||
AC_DEFINE(HAVE_ZLIB)
|
||||
have_zlib="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
ZLIB_LIB_DIR=$zlib_lib_dir
|
||||
ZLIB_LIB_LINE=$zlib_lib
|
||||
if test x"$zlib_lib_dir" != x; then
|
||||
ZLIB_LIB_LINE="-L$zlib_lib_dir $ZLIB_LIB_LINE"
|
||||
fi
|
||||
|
||||
ZLIB_INCLUDE_DIR=$zlib_inc_dir
|
||||
ZLIB_INCLUDE_LINE=
|
||||
if test x"$zlib_inc_dir" != x; then
|
||||
ZLIB_INCLUDE_LINE="-I$zlib_inc_dir"
|
||||
fi
|
||||
|
||||
AC_SUBST(ZLIB_LIB_DIR)
|
||||
AC_SUBST(ZLIB_LIB_LINE)
|
||||
AC_SUBST(ZLIB_INCLUDE_DIR)
|
||||
AC_SUBST(ZLIB_INCLUDE_LINE)
|
||||
])
|
||||
dnl switch on/off additonal debug output in otf lib
|
||||
AC_DEFUN([WITH_DEBUG],
|
||||
[
|
||||
AH_TEMPLATE(OTF_DEBUG, [], [switch on/off additonal debug checks in otf lib])
|
||||
|
||||
AC_ARG_WITH([debug],
|
||||
AC_HELP_STRING([--with-debug],[additonal debug checks]),
|
||||
[debug=$withval],
|
||||
[debug=""])
|
||||
|
||||
AC_CACHE_CHECK([debug],
|
||||
[debug],
|
||||
[debug=])
|
||||
|
||||
if test "$debug" = yes; then
|
||||
AC_DEFINE(OTF_DEBUG)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl switch on/off additonal debug output in otf lib
|
||||
AC_DEFUN([WITH_VERBOSE],
|
||||
[
|
||||
AH_TEMPLATE(OTF_VERBOSE, [], [switch on/off verbose output in otf lib])
|
||||
|
||||
AC_ARG_WITH([verbose],
|
||||
AC_HELP_STRING([--with-verbose],[additonal verbose output]),
|
||||
[verbose=$withval],
|
||||
[verbose=""])
|
||||
|
||||
AC_CACHE_CHECK([verbose],
|
||||
[verbose],
|
||||
[verbose=])
|
||||
|
||||
if test "$verbose" = yes; then
|
||||
AC_DEFINE(OTF_VERBOSE)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([SWIG_PYTHON],[
|
||||
|
||||
#
|
||||
#enable python bindings
|
||||
#
|
||||
AC_ARG_ENABLE([python-bindings],
|
||||
AC_HELP_STRING([--enable-python-bindings],
|
||||
[force generation of Python bindings]),
|
||||
[enable_python_bindings="yes"],
|
||||
[enable_python_bindings=""])
|
||||
|
||||
|
||||
#
|
||||
#with python version
|
||||
#
|
||||
AC_ARG_WITH([python-version],
|
||||
AC_HELP_STRING([--with-python-version=VERSION],
|
||||
[force a custom python version]),
|
||||
[PYTHON_VERSION=$withval])
|
||||
|
||||
|
||||
#
|
||||
#only check if the user did --enable-python-bindings
|
||||
#
|
||||
if test x"$enable_python_bindings" = xyes; then
|
||||
|
||||
#
|
||||
#test for swig >= 1.3
|
||||
#
|
||||
AC_PROG_SWIG(1.3)
|
||||
|
||||
#
|
||||
#test for python-dev
|
||||
#
|
||||
AC_PYTHON_DEVEL
|
||||
|
||||
test "x$1" != "xno" || swig_shadow=" -noproxy"
|
||||
|
||||
#
|
||||
#set the swig options
|
||||
#
|
||||
AC_SUBST([SWIG_PYTHON_OPT],[-python])
|
||||
|
||||
#
|
||||
#set the python compiler flags
|
||||
#
|
||||
AC_SUBST([SWIG_PYTHON_CPPFLAGS],[$PYTHON_CPPFLAGS])
|
||||
|
||||
fi
|
||||
|
||||
])
|
||||
AC_DEFUN([AC_PYTHON_DEVEL],[
|
||||
|
||||
#
|
||||
# Allow the use of a (user set) custom python version
|
||||
#
|
||||
AC_ARG_VAR([PYTHON_VERSION],[The installed Python
|
||||
version to use, for example '2.3'. This string
|
||||
will be appended to the Python interpreter
|
||||
canonical name.])
|
||||
|
||||
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
|
||||
if test -z "$PYTHON"; then
|
||||
|
||||
AC_MSG_WARN([Cannot find python$PYTHON_VERSION in your system path])
|
||||
PYTHON_VERSION=""
|
||||
|
||||
else
|
||||
|
||||
|
||||
#
|
||||
# Check for Python include path
|
||||
#
|
||||
AC_MSG_CHECKING([for python include path])
|
||||
if test -z "$PYTHON_CPPFLAGS"; then
|
||||
python_path=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();" 2> /dev/null`
|
||||
if test -n "${python_path}"; then
|
||||
python_path="-I$python_path"
|
||||
fi
|
||||
PYTHON_CPPFLAGS=$python_path
|
||||
fi
|
||||
if test -n "$PYTHON_CPPFLAGS"; then
|
||||
AC_MSG_RESULT([$PYTHON_CPPFLAGS])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST([PYTHON_CPPFLAGS])
|
||||
|
||||
#
|
||||
# Check for Python library path
|
||||
#
|
||||
AC_MSG_CHECKING([for python library path])
|
||||
if test -z "$PYTHON_LDFLAGS"; then
|
||||
# (makes two attempts to ensure we've got a version number
|
||||
# from the interpreter)
|
||||
py_version=`$PYTHON -c "from distutils.sysconfig import *; \
|
||||
from string import join; \
|
||||
print join(get_config_vars('VERSION'))" 2> /dev/null`
|
||||
if test "$py_version" == "[None]" -o -z "$py_version"; then
|
||||
if test -n "$PYTHON_VERSION"; then
|
||||
py_version=$PYTHON_VERSION
|
||||
else
|
||||
py_version=`$PYTHON -c "import sys; \
|
||||
print sys.version[[:3]]"`
|
||||
fi
|
||||
fi
|
||||
|
||||
PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
|
||||
from string import join; \
|
||||
print '-L' + get_python_lib(0,1), \
|
||||
'-lpython';" 2> /dev/null`$py_version
|
||||
fi
|
||||
if test ! "$PYTHON_LDFLAGS" == "$py_version"; then
|
||||
AC_MSG_RESULT([$PYTHON_LDFLAGS])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST([PYTHON_LDFLAGS])
|
||||
|
||||
#
|
||||
# Check for site packages
|
||||
#
|
||||
AC_MSG_CHECKING([for python site-packages path])
|
||||
if test -z "$PYTHON_SITE_PKG"; then
|
||||
PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
|
||||
print distutils.sysconfig.get_python_lib(0,0);" 2> /dev/null`
|
||||
fi
|
||||
if test -n "$PYTHON_SITE_PKG"; then
|
||||
AC_MSG_RESULT([$PYTHON_SITE_PKG])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST([PYTHON_SITE_PKG])
|
||||
|
||||
#
|
||||
# libraries which must be linked in when embedding
|
||||
#
|
||||
AC_MSG_CHECKING(python extra libraries)
|
||||
if test -z "$PYTHON_EXTRA_LIBS"; then
|
||||
PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
|
||||
conf = distutils.sysconfig.get_config_var; \
|
||||
print conf('LOCALMODLIBS'), conf('LIBS')" 2> /dev/null`
|
||||
fi
|
||||
if test -n "$PYTHON_EXTRA_LIBS"; then
|
||||
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST(PYTHON_EXTRA_LIBS)
|
||||
|
||||
#
|
||||
# linking flags needed when embedding
|
||||
#
|
||||
AC_MSG_CHECKING(python extra linking flags)
|
||||
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
|
||||
PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
|
||||
conf = distutils.sysconfig.get_config_var; \
|
||||
print conf('LINKFORSHARED')" 2> /dev/null`
|
||||
fi
|
||||
if test -n "$PYTHON_EXTRA_LDFLAGS"; then
|
||||
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST(PYTHON_EXTRA_LDFLAGS)
|
||||
|
||||
#
|
||||
# final check to see if everything compiles alright
|
||||
#
|
||||
AC_MSG_CHECKING([consistency of all components of python development environment])
|
||||
AC_LANG_PUSH([C])
|
||||
# save current global flags
|
||||
LIBS="$ac_save_LIBS $PYTHON_LDFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
|
||||
AC_TRY_LINK([
|
||||
#include <Python.h>
|
||||
],[
|
||||
Py_Initialize();
|
||||
],[pythonexists=yes],[pythonexists=no])
|
||||
|
||||
AC_MSG_RESULT([$pythonexists])
|
||||
|
||||
if test ! "$pythonexists" = "yes"; then
|
||||
AC_MSG_ERROR([Cannot find python development environment. You probably have to install the development version of the python package.])
|
||||
PYTHON_VERSION=""
|
||||
fi
|
||||
|
||||
AC_LANG_POP
|
||||
# turn back to default flags
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
|
||||
|
||||
#get the paths where to install the package
|
||||
AC_SUBST([pkgpythondir],
|
||||
['${prefix}'/lib/python${py_version}/site-packages/otf])
|
||||
|
||||
AC_SUBST([pkgpyexecdir],
|
||||
['${exec_prefix}'/lib/python${py_version}/site-packages/otf])
|
||||
|
||||
fi
|
||||
|
||||
])
|
||||
AC_DEFUN([AC_PROG_SWIG],[
|
||||
AC_PATH_PROG([SWIG],[swig])
|
||||
if test -z "$SWIG" ; then
|
||||
|
||||
AC_MSG_ERROR([Cannot find 'swig' program.])
|
||||
|
||||
elif test -n "$1" ; then
|
||||
AC_MSG_CHECKING([for swig version])
|
||||
[swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
|
||||
AC_MSG_RESULT([$swig_version])
|
||||
if test -n "$swig_version" ; then
|
||||
# Calculate the required version number components
|
||||
[required=$1]
|
||||
[required_major=`echo $required | sed 's/[^0-9].*//'`]
|
||||
if test -z "$required_major" ; then
|
||||
[required_major=0]
|
||||
fi
|
||||
[required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
|
||||
[required_minor=`echo $required | sed 's/[^0-9].*//'`]
|
||||
if test -z "$required_minor" ; then
|
||||
[required_minor=0]
|
||||
fi
|
||||
[required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
|
||||
[required_patch=`echo $required | sed 's/[^0-9].*//'`]
|
||||
if test -z "$required_patch" ; then
|
||||
[required_patch=0]
|
||||
fi
|
||||
# Calculate the available version number components
|
||||
[available=$swig_version]
|
||||
[available_major=`echo $available | sed 's/[^0-9].*//'`]
|
||||
if test -z "$available_major" ; then
|
||||
[available_major=0]
|
||||
fi
|
||||
[available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
|
||||
[available_minor=`echo $available | sed 's/[^0-9].*//'`]
|
||||
if test -z "$available_minor" ; then
|
||||
[available_minor=0]
|
||||
fi
|
||||
[available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
|
||||
[available_patch=`echo $available | sed 's/[^0-9].*//'`]
|
||||
if test -z "$available_patch" ; then
|
||||
[available_patch=0]
|
||||
fi
|
||||
if test $available_major -ne $required_major \
|
||||
-o $available_minor -ne $required_minor \
|
||||
-o $available_patch -lt $required_patch ; then
|
||||
AC_MSG_ERROR([swig version >= $1 is required. You have $swig_version.])
|
||||
else
|
||||
swigexists=yes
|
||||
fi
|
||||
else
|
||||
AC_MSG_ERROR([Cannot determine swig version])
|
||||
fi
|
||||
fi
|
||||
|
||||
])
|
||||
|
7440
ompi/contrib/vt/vt/extlib/otf/aclocal.m4
поставляемый
Обычный файл
7440
ompi/contrib/vt/vt/extlib/otf/aclocal.m4
поставляемый
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
1516
ompi/contrib/vt/vt/extlib/otf/config.guess
поставляемый
Исполняемый файл
1516
ompi/contrib/vt/vt/extlib/otf/config.guess
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
82
ompi/contrib/vt/vt/extlib/otf/config.h.in
Обычный файл
82
ompi/contrib/vt/vt/extlib/otf/config.h.in
Обычный файл
@ -0,0 +1,82 @@
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#undef HAVE_STRDUP
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* */
|
||||
#undef HAVE_VTF3
|
||||
|
||||
/* */
|
||||
#undef HAVE_ZLIB
|
||||
|
||||
/* */
|
||||
#undef OTF_DEBUG
|
||||
|
||||
/* */
|
||||
#undef OTF_VERBOSE
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
1626
ompi/contrib/vt/vt/extlib/otf/config.sub
поставляемый
Исполняемый файл
1626
ompi/contrib/vt/vt/extlib/otf/config.sub
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
23140
ompi/contrib/vt/vt/extlib/otf/configure
поставляемый
Исполняемый файл
23140
ompi/contrib/vt/vt/extlib/otf/configure
поставляемый
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
85
ompi/contrib/vt/vt/extlib/otf/configure.in
Обычный файл
85
ompi/contrib/vt/vt/extlib/otf/configure.in
Обычный файл
@ -0,0 +1,85 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT(OTF, 1.3.9, andreas.knuepfer@tu-dresden.de )
|
||||
AC_CANONICAL_SYSTEM
|
||||
AM_INIT_AUTOMAKE(OTF, 1.3.9)
|
||||
AC_CONFIG_SRCDIR([config.h.in])
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CC
|
||||
AC_DISABLE_SHARED
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
# Own stuff
|
||||
|
||||
CHECK_VTF3
|
||||
if test x"$force_vtf3" = "xyes" -a x"$vtf3_error" = "xyes"; then exit 1; fi
|
||||
AM_CONDITIONAL(AMHAVEVTF3, test x"$have_vtf3" = xyes)
|
||||
|
||||
CHECK_ZLIB
|
||||
if test x"$force_zlib" = "xyes" -a x"$zlib_error" = "xyes"; then exit 1; fi
|
||||
AM_CONDITIONAL(AMHAVEZLIB, test x"$have_zlib" = xyes)
|
||||
AM_CONDITIONAL(AMDEPZLIB, test x"$have_zlib" = xyes -a x"$enable_shared" = xyes)
|
||||
|
||||
#checking for swig and python-dev
|
||||
SWIG_PYTHON
|
||||
AM_CONDITIONAL(AMHAVEPYTHONSWIG, [test "$pythonexists" = yes -a "$swigexists" = yes] )
|
||||
|
||||
WITH_DEBUG
|
||||
WITH_VERBOSE
|
||||
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([stddef.h stdlib.h string.h sys/time.h unistd.h])
|
||||
AC_CHECK_HEADER([stdint.h], [have_stdint_h=1], [have_stdint_h=0])
|
||||
AC_CHECK_HEADER([inttypes.h], [have_inttypes_h=1], [have_inttypes_h=0])
|
||||
AC_SUBST([have_stdint_h])
|
||||
AC_SUBST([have_inttypes_h])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_CHECK_FUNCS([strdup])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
# AC_C_CONST ### do not use this if you want to do C++ programs because it might define 'const'
|
||||
# to an empty string which produces a total mess later on!!!
|
||||
|
||||
AC_TYPE_SIZE_T
|
||||
#AC_HEADER_TIME
|
||||
|
||||
# Checks for library functions.
|
||||
# AC_FUNC_FSEEKO
|
||||
#AC_FUNC_MALLOC
|
||||
#AC_FUNC_REALLOC
|
||||
#AC_FUNC_STAT
|
||||
#AC_CHECK_FUNCS([gettimeofday memmove strdup])
|
||||
|
||||
# Checks for datatype sizes.
|
||||
AC_CHECK_SIZEOF(long, 8)
|
||||
sizeof_long=$ac_cv_sizeof_long
|
||||
AC_SUBST([sizeof_long])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
tools/Makefile
|
||||
tools/otfdump/Makefile
|
||||
tools/otfmerge/Makefile
|
||||
tools/vtf2otf/Makefile
|
||||
tools/otf2vtf/Makefile
|
||||
tools/otfaux/Makefile
|
||||
otflib/Makefile
|
||||
otflib_py/Makefile
|
||||
otflib/OTF_inttypes.h
|
||||
tools/otfcompress/Makefile
|
||||
tools/otfconfig/Makefile
|
||||
])
|
||||
# tools/otfdump/Makefile
|
||||
|
||||
## workaround for stupid warning caused by newer autoconf versions
|
||||
AC_DEFUN([AC_DATAROOTDIR_CHECKED])
|
||||
|
||||
AC_OUTPUT
|
584
ompi/contrib/vt/vt/extlib/otf/depcomp
Исполняемый файл
584
ompi/contrib/vt/vt/extlib/otf/depcomp
Исполняемый файл
@ -0,0 +1,584 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2006-10-15.18
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test -f "$tmpdepfile"; then :
|
||||
else
|
||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||
tmpdepfile="$stripped.u"
|
||||
fi
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
outname="$stripped.o"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
Двоичные данные
ompi/contrib/vt/vt/extlib/otf/docu/api/specification.pdf
Обычный файл
Двоичные данные
ompi/contrib/vt/vt/extlib/otf/docu/api/specification.pdf
Обычный файл
Двоичный файл не отображается.
946
ompi/contrib/vt/vt/extlib/otf/docu/doxygen.conf
Обычный файл
946
ompi/contrib/vt/vt/extlib/otf/docu/doxygen.conf
Обычный файл
@ -0,0 +1,946 @@
|
||||
# Doxyfile 1.2.15
|
||||
|
||||
# This file describes the settings to be used by the documentation system
|
||||
# doxygen (www.doxygen.org) for a project
|
||||
#
|
||||
# All text after a hash (#) is considered a comment and will be ignored
|
||||
# The format is:
|
||||
# TAG = value [value, ...]
|
||||
# For lists items can also be appended using:
|
||||
# TAG += value [value, ...]
|
||||
# Values that contain spaces should be placed between quotes (" ")
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||
# by quotes) that should identify the project.
|
||||
|
||||
PROJECT_NAME = "Open Trace Format API"
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER =
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
# If a relative path is entered, it will be relative to the location
|
||||
# where doxygen was started. If left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doxygen
|
||||
|
||||
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
|
||||
# documentation generated by doxygen is written. Doxygen will use this
|
||||
# information to generate all constant output in the proper language.
|
||||
# The default language is English, other supported languages are:
|
||||
# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
|
||||
# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
|
||||
# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
|
||||
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
|
||||
# documentation are documented, even if no documentation was available.
|
||||
# Private class members and static file members will be hidden unless
|
||||
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
|
||||
|
||||
EXTRACT_ALL = NO
|
||||
|
||||
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_PRIVATE = NO
|
||||
|
||||
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||
# defined locally in source files will be included in the documentation.
|
||||
# If set to NO only classes defined in header files are included.
|
||||
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
|
||||
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
|
||||
# undocumented members of documented classes, files or namespaces.
|
||||
# If set to NO (the default) these members will be included in the
|
||||
# various overviews, but no documentation section is generated.
|
||||
# This option has no effect if EXTRACT_ALL is enabled.
|
||||
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
|
||||
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
|
||||
# undocumented classes that are normally visible in the class hierarchy.
|
||||
# If set to NO (the default) these class will be included in the various
|
||||
# overviews. This option has no effect if EXTRACT_ALL is enabled.
|
||||
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||
# include brief member descriptions after the members that are listed in
|
||||
# the file and class documentation (similar to JavaDoc).
|
||||
# Set to NO to disable this.
|
||||
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
|
||||
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
|
||||
# the brief description of a member or function before the detailed description.
|
||||
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
|
||||
# brief descriptions will be completely suppressed.
|
||||
|
||||
REPEAT_BRIEF = YES
|
||||
|
||||
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
|
||||
# Doxygen will generate a detailed section even if there is only a brief
|
||||
# description.
|
||||
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
|
||||
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
|
||||
# members of a class in the documentation of that class as if those members were
|
||||
# ordinary class members. Constructors, destructors and assignment operators of
|
||||
# the base classes will not be shown.
|
||||
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
|
||||
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
|
||||
# path before files name in the file list and in the header files. If set
|
||||
# to NO the shortest path that makes the file name unique will be used.
|
||||
|
||||
FULL_PATH_NAMES = NO
|
||||
|
||||
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
|
||||
# can be used to strip a user defined part of the path. Stripping is
|
||||
# only done if one of the specified strings matches the left-hand part of
|
||||
# the path. It is allowed to use relative paths in the argument list.
|
||||
|
||||
STRIP_FROM_PATH =
|
||||
|
||||
# The INTERNAL_DOCS tag determines if documentation
|
||||
# that is typed after a \internal command is included. If the tag is set
|
||||
# to NO (the default) then the documentation will be excluded.
|
||||
# Set it to YES to include the internal documentation.
|
||||
|
||||
INTERNAL_DOCS = NO
|
||||
|
||||
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
|
||||
# doxygen to hide any special comment blocks from generated source code
|
||||
# fragments. Normal C and C++ comments will always remain visible.
|
||||
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
|
||||
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
|
||||
# file names in lower case letters. If set to YES upper case letters are also
|
||||
# allowed. This is useful if you have classes or files whose names only differ
|
||||
# in case and if your file system supports case sensitive file names. Windows
|
||||
# users are adviced to set this option to NO.
|
||||
|
||||
CASE_SENSE_NAMES = YES
|
||||
|
||||
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
|
||||
# (but less readable) file names. This can be useful is your file systems
|
||||
# doesn't support long names like on DOS, Mac, or CD-ROM.
|
||||
|
||||
SHORT_NAMES = NO
|
||||
|
||||
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
|
||||
# will show members with their full class and namespace scopes in the
|
||||
# documentation. If set to YES the scope will be hidden.
|
||||
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
|
||||
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
|
||||
# will generate a verbatim copy of the header file for each class for
|
||||
# which an include is specified. Set to NO to disable this.
|
||||
|
||||
VERBATIM_HEADERS = YES
|
||||
|
||||
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
|
||||
# will put list of the files that are included by a file in the documentation
|
||||
# of that file.
|
||||
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
|
||||
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
|
||||
# will interpret the first line (until the first dot) of a JavaDoc-style
|
||||
# comment as the brief description. If set to NO, the JavaDoc
|
||||
# comments will behave just like the Qt-style comments (thus requiring an
|
||||
# explict @brief command for a brief description.
|
||||
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
|
||||
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
|
||||
# member inherits the documentation from any documented member that it
|
||||
# reimplements.
|
||||
|
||||
INHERIT_DOCS = YES
|
||||
|
||||
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
|
||||
# is inserted in the documentation for inline members.
|
||||
|
||||
INLINE_INFO = YES
|
||||
|
||||
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
|
||||
# will sort the (detailed) documentation of file and class members
|
||||
# alphabetically by member name. If set to NO the members will appear in
|
||||
# declaration order.
|
||||
|
||||
SORT_MEMBER_DOCS = NO
|
||||
|
||||
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
|
||||
# tag is set to YES, then doxygen will reuse the documentation of the first
|
||||
# member in the group (if any) for the other members of the group. By default
|
||||
# all members of a group must be documented explicitly.
|
||||
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
|
||||
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
|
||||
# Doxygen uses this value to replace tabs by spaces in code fragments.
|
||||
|
||||
TAB_SIZE = 4
|
||||
|
||||
# The GENERATE_TODOLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the todo list. This list is created by putting \todo
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_TODOLIST = YES
|
||||
|
||||
# The GENERATE_TESTLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the test list. This list is created by putting \test
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_TESTLIST = YES
|
||||
|
||||
# The GENERATE_BUGLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the bug list. This list is created by putting \bug
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_BUGLIST = YES
|
||||
|
||||
# This tag can be used to specify a number of aliases that acts
|
||||
# as commands in the documentation. An alias has the form "name=value".
|
||||
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
|
||||
# put the command \sideeffect (or @sideeffect) in the documentation, which
|
||||
# will result in a user defined paragraph with heading "Side Effects:".
|
||||
# You can put \n's in the value part of an alias to insert newlines.
|
||||
|
||||
ALIASES =
|
||||
|
||||
# The ENABLED_SECTIONS tag can be used to enable conditional
|
||||
# documentation sections, marked by \if sectionname ... \endif.
|
||||
|
||||
ENABLED_SECTIONS =
|
||||
|
||||
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
|
||||
# the initial value of a variable or define consist of for it to appear in
|
||||
# the documentation. If the initializer consists of more lines than specified
|
||||
# here it will be hidden. Use a value of 0 to hide initializers completely.
|
||||
# The appearance of the initializer of individual variables and defines in the
|
||||
# documentation can be controlled using \showinitializer or \hideinitializer
|
||||
# command in the documentation regardless of this setting.
|
||||
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
|
||||
# only. Doxygen will then generate output that is more tailored for C.
|
||||
# For instance some of the names that are used will be different. The list
|
||||
# of all members will be omitted, etc.
|
||||
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
|
||||
# only. Doxygen will then generate output that is more tailored for Java.
|
||||
# For instance namespaces will be presented as packages, qualified scopes
|
||||
# will look different, etc.
|
||||
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
|
||||
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
|
||||
# at the bottom of the documentation of classes and structs. If set to YES the
|
||||
# list will mention the files that were used to generate the documentation.
|
||||
|
||||
SHOW_USED_FILES = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The QUIET tag can be used to turn on/off the messages that are generated
|
||||
# by doxygen. Possible values are YES and NO. If left blank NO is used.
|
||||
|
||||
QUIET = NO
|
||||
|
||||
# The WARNINGS tag can be used to turn on/off the warning messages that are
|
||||
# generated by doxygen. Possible values are YES and NO. If left blank
|
||||
# NO is used.
|
||||
|
||||
WARNINGS = YES
|
||||
|
||||
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
|
||||
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
|
||||
# automatically be disabled.
|
||||
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
|
||||
# The WARN_FORMAT tag determines the format of the warning messages that
|
||||
# doxygen can produce. The string should contain the $file, $line, and $text
|
||||
# tags, which will be replaced by the file and line number from which the
|
||||
# warning originated and the warning text.
|
||||
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
|
||||
# The WARN_LOGFILE tag can be used to specify a file to which warning
|
||||
# and error messages should be written. If left blank the output is written
|
||||
# to stderr.
|
||||
|
||||
WARN_LOGFILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The INPUT tag can be used to specify the files and/or directories that contain
|
||||
# documented source files. You may enter file names like "myfile.cpp" or
|
||||
# directories like "/usr/src/myproject". Separate the files or directories
|
||||
# with spaces.
|
||||
|
||||
INPUT = ../otflib/OTF_Reader.h \
|
||||
../otflib/OTF_RStream.h \
|
||||
../otflib/OTF_Writer.h \
|
||||
../otflib/OTF_WStream.h \
|
||||
../otflib/OTF_HandlerArray.h \
|
||||
../otflib/OTF_MasterControl.h \
|
||||
../otflib/OTF_FileManager.h \
|
||||
../otflib/otf.h \
|
||||
../otflib/
|
||||
|
||||
# If the value of the INPUT tag contains directories, you can use the
|
||||
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||
# and *.h) to filter out the source-files in the directories. If left
|
||||
# blank the following patterns are tested:
|
||||
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
|
||||
# *.h++ *.idl *.odl
|
||||
|
||||
FILE_PATTERNS = *.h
|
||||
|
||||
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
|
||||
# should be searched for input files as well. Possible values are YES and NO.
|
||||
# If left blank NO is used.
|
||||
|
||||
RECURSIVE = NO
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
|
||||
EXCLUDE =
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
|
||||
# that are symbolic links (a Unix filesystem feature) are excluded from the input.
|
||||
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
|
||||
# If the value of the INPUT tag contains directories, you can use the
|
||||
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
|
||||
# certain files from those directories.
|
||||
|
||||
EXCLUDE_PATTERNS =
|
||||
|
||||
# The EXAMPLE_PATH tag can be used to specify one or more files or
|
||||
# directories that contain example code fragments that are included (see
|
||||
# the \include command).
|
||||
|
||||
EXAMPLE_PATH =
|
||||
|
||||
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||
# and *.h) to filter out the source-files in the directories. If left
|
||||
# blank all files are included.
|
||||
|
||||
EXAMPLE_PATTERNS =
|
||||
|
||||
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
||||
# searched for input files to be used with the \include or \dontinclude
|
||||
# commands irrespective of the value of the RECURSIVE tag.
|
||||
# Possible values are YES and NO. If left blank NO is used.
|
||||
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
||||
# The IMAGE_PATH tag can be used to specify one or more files or
|
||||
# directories that contain image that are included in the documentation (see
|
||||
# the \image command).
|
||||
|
||||
IMAGE_PATH =
|
||||
|
||||
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||
# invoke to filter for each input file. Doxygen will invoke the filter program
|
||||
# by executing (via popen()) the command <filter> <input-file>, where <filter>
|
||||
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
|
||||
# input file. Doxygen will then use the output that the filter program writes
|
||||
# to standard output.
|
||||
|
||||
INPUT_FILTER =
|
||||
|
||||
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
||||
# INPUT_FILTER) will be used to filter the input files when producing source
|
||||
# files to browse.
|
||||
|
||||
FILTER_SOURCE_FILES = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
|
||||
# be generated. Documented entities will be cross-referenced with these sources.
|
||||
|
||||
SOURCE_BROWSER = NO
|
||||
|
||||
# Setting the INLINE_SOURCES tag to YES will include the body
|
||||
# of functions and classes directly in the documentation.
|
||||
|
||||
INLINE_SOURCES = NO
|
||||
|
||||
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
|
||||
# then for each documented function all documented
|
||||
# functions referencing it will be listed.
|
||||
|
||||
REFERENCED_BY_RELATION = YES
|
||||
|
||||
# If the REFERENCES_RELATION tag is set to YES (the default)
|
||||
# then for each documented function all documented entities
|
||||
# called/used by that function will be listed.
|
||||
|
||||
REFERENCES_RELATION = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
|
||||
# of all compounds will be generated. Enable this if the project
|
||||
# contains a lot of classes, structs, unions or interfaces.
|
||||
|
||||
ALPHABETICAL_INDEX = NO
|
||||
|
||||
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
|
||||
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
|
||||
# in which this list will be split (can be a number in the range [1..20])
|
||||
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
|
||||
# In case all classes in a project start with a common prefix, all
|
||||
# classes will be put under the same header in the alphabetical index.
|
||||
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
|
||||
# should be ignored while generating the index headers.
|
||||
|
||||
IGNORE_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
|
||||
# generate HTML output.
|
||||
|
||||
GENERATE_HTML = YES
|
||||
|
||||
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `html' will be used as the default path.
|
||||
|
||||
HTML_OUTPUT = html
|
||||
|
||||
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
|
||||
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
|
||||
# doxygen will generate files with .html extension.
|
||||
|
||||
HTML_FILE_EXTENSION = .html
|
||||
|
||||
# The HTML_HEADER tag can be used to specify a personal HTML header for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard header.
|
||||
|
||||
HTML_HEADER =
|
||||
|
||||
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard footer.
|
||||
|
||||
HTML_FOOTER =
|
||||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
# fine-tune the look of the HTML output. If the tag is left blank doxygen
|
||||
# will generate a default style sheet
|
||||
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
||||
# files or namespaces will be aligned in HTML using tables. If set to
|
||||
# NO a bullet list will be used.
|
||||
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
|
||||
# will be generated that can be used as input for tools like the
|
||||
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
|
||||
# of the generated HTML documentation.
|
||||
|
||||
GENERATE_HTMLHELP = NO
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
|
||||
# controls if a separate .chi index file is generated (YES) or that
|
||||
# it should be included in the master .chm file (NO).
|
||||
|
||||
GENERATE_CHI = NO
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
|
||||
# controls whether a binary table of contents is generated (YES) or a
|
||||
# normal table of contents (NO) in the .chm file.
|
||||
|
||||
BINARY_TOC = NO
|
||||
|
||||
# The TOC_EXPAND flag can be set to YES to add extra items for group members
|
||||
# to the contents of the Html help documentation and to the tree view.
|
||||
|
||||
TOC_EXPAND = NO
|
||||
|
||||
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
|
||||
# top of each HTML page. The value NO (the default) enables the index and
|
||||
# the value YES disables it.
|
||||
|
||||
DISABLE_INDEX = NO
|
||||
|
||||
# This tag can be used to set the number of enum values (range [1..20])
|
||||
# that doxygen will group on one line in the generated HTML documentation.
|
||||
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
|
||||
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
|
||||
# generated containing a tree-like index structure (just like the one that
|
||||
# is generated for HTML Help). For this to work a browser that supports
|
||||
# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
|
||||
# or Internet explorer 4.0+). Note that for large projects the tree generation
|
||||
# can take a very long time. In such cases it is better to disable this feature.
|
||||
# Windows users are probably better off using the HTML help feature.
|
||||
|
||||
GENERATE_TREEVIEW = NO
|
||||
|
||||
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
|
||||
# used to set the initial width (in pixels) of the frame in which the tree
|
||||
# is shown.
|
||||
|
||||
TREEVIEW_WIDTH = 250
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
|
||||
# generate Latex output.
|
||||
|
||||
GENERATE_LATEX = YES
|
||||
|
||||
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `latex' will be used as the default path.
|
||||
|
||||
LATEX_OUTPUT = latex
|
||||
|
||||
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name.
|
||||
|
||||
LATEX_CMD_NAME = latex
|
||||
|
||||
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
|
||||
# generate index for LaTeX. If left blank `makeindex' will be used as the
|
||||
# default command name.
|
||||
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
|
||||
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
|
||||
# LaTeX documents. This may be useful for small projects and may help to
|
||||
# save some trees in general.
|
||||
|
||||
COMPACT_LATEX = YES
|
||||
|
||||
# The PAPER_TYPE tag can be used to set the paper type that is used
|
||||
# by the printer. Possible values are: a4, a4wide, letter, legal and
|
||||
# executive. If left blank a4wide will be used.
|
||||
|
||||
PAPER_TYPE = a4wide
|
||||
|
||||
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
|
||||
# packages that should be included in the LaTeX output.
|
||||
|
||||
EXTRA_PACKAGES =
|
||||
|
||||
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
|
||||
# the generated latex document. The header should contain everything until
|
||||
# the first chapter. If it is left blank doxygen will generate a
|
||||
# standard header. Notice: only use this tag if you know what you are doing!
|
||||
|
||||
LATEX_HEADER =
|
||||
|
||||
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
|
||||
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
|
||||
# contain links (just like the HTML output) instead of page references
|
||||
# This makes the output suitable for online browsing using a pdf viewer.
|
||||
|
||||
PDF_HYPERLINKS = YES
|
||||
|
||||
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
|
||||
# plain latex in the generated Makefile. Set this option to YES to get a
|
||||
# higher quality PDF documentation.
|
||||
|
||||
USE_PDFLATEX = YES
|
||||
|
||||
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
|
||||
# command to the generated LaTeX files. This will instruct LaTeX to keep
|
||||
# running if errors occur, instead of asking the user for help.
|
||||
# This option is also used when generating formulas in HTML.
|
||||
|
||||
LATEX_BATCHMODE = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
|
||||
# The RTF output is optimised for Word 97 and may not look very pretty with
|
||||
# other RTF readers or editors.
|
||||
|
||||
GENERATE_RTF = NO
|
||||
|
||||
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `rtf' will be used as the default path.
|
||||
|
||||
RTF_OUTPUT = rtf
|
||||
|
||||
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
|
||||
# RTF documents. This may be useful for small projects and may help to
|
||||
# save some trees in general.
|
||||
|
||||
COMPACT_RTF = NO
|
||||
|
||||
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
|
||||
# will contain hyperlink fields. The RTF file will
|
||||
# contain links (just like the HTML output) instead of page references.
|
||||
# This makes the output suitable for online browsing using WORD or other
|
||||
# programs which support those fields.
|
||||
# Note: wordpad (write) and others do not support links.
|
||||
|
||||
RTF_HYPERLINKS = YES
|
||||
|
||||
# Load stylesheet definitions from file. Syntax is similar to doxygen's
|
||||
# config file, i.e. a series of assigments. You only have to provide
|
||||
# replacements, missing definitions are set to their default value.
|
||||
|
||||
RTF_STYLESHEET_FILE =
|
||||
|
||||
# Set optional variables used in the generation of an rtf document.
|
||||
# Syntax is similar to doxygen's config file.
|
||||
|
||||
RTF_EXTENSIONS_FILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
|
||||
# generate man pages
|
||||
|
||||
GENERATE_MAN = NO
|
||||
|
||||
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `man' will be used as the default path.
|
||||
|
||||
MAN_OUTPUT = man
|
||||
|
||||
# The MAN_EXTENSION tag determines the extension that is added to
|
||||
# the generated man pages (default is the subroutine's section .3)
|
||||
|
||||
MAN_EXTENSION = .3
|
||||
|
||||
# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
|
||||
# then it will generate one additional man file for each entity
|
||||
# documented in the real man page(s). These additional files
|
||||
# only source the real man page, but without them the man command
|
||||
# would be unable to find the correct page. The default is NO.
|
||||
|
||||
MAN_LINKS = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_XML tag is set to YES Doxygen will
|
||||
# generate an XML file that captures the structure of
|
||||
# the code including all documentation. Note that this
|
||||
# feature is still experimental and incomplete at the
|
||||
# moment.
|
||||
|
||||
GENERATE_XML = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
|
||||
# generate an AutoGen Definitions (see autogen.sf.net) file
|
||||
# that captures the structure of the code including all
|
||||
# documentation. Note that this feature is still experimental
|
||||
# and incomplete at the moment.
|
||||
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
|
||||
# evaluate all C-preprocessor directives found in the sources and include
|
||||
# files.
|
||||
|
||||
ENABLE_PREPROCESSING = YES
|
||||
|
||||
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
|
||||
# names in the source code. If set to NO (the default) only conditional
|
||||
# compilation will be performed. Macro expansion can be done in a controlled
|
||||
# way by setting EXPAND_ONLY_PREDEF to YES.
|
||||
|
||||
MACRO_EXPANSION = NO
|
||||
|
||||
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
|
||||
# then the macro expansion is limited to the macros specified with the
|
||||
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
|
||||
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
|
||||
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
|
||||
# in the INCLUDE_PATH (see below) will be search if a #include is found.
|
||||
|
||||
SEARCH_INCLUDES = YES
|
||||
|
||||
# The INCLUDE_PATH tag can be used to specify one or more directories that
|
||||
# contain include files that are not input files but should be processed by
|
||||
# the preprocessor.
|
||||
|
||||
INCLUDE_PATH =
|
||||
|
||||
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
|
||||
# patterns (like *.h and *.hpp) to filter out the header-files in the
|
||||
# directories. If left blank, the patterns specified with FILE_PATTERNS will
|
||||
# be used.
|
||||
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
|
||||
# The PREDEFINED tag can be used to specify one or more macro names that
|
||||
# are defined before the preprocessor is started (similar to the -D option of
|
||||
# gcc). The argument of the tag is a list of macros of the form: name
|
||||
# or name=definition (no spaces). If the definition and the = are
|
||||
# omitted =1 is assumed.
|
||||
|
||||
PREDEFINED =
|
||||
|
||||
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
|
||||
# this tag can be used to specify a list of macro names that should be expanded.
|
||||
# The macro definition that is found in the sources will be used.
|
||||
# Use the PREDEFINED tag if you want to use a different macro definition.
|
||||
|
||||
EXPAND_AS_DEFINED =
|
||||
|
||||
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
|
||||
# doxygen's preprocessor will remove all function-like macros that are alone
|
||||
# on a line and do not end with a semicolon. Such function macros are typically
|
||||
# used for boiler-plate code, and will confuse the parser if not removed.
|
||||
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The TAGFILES tag can be used to specify one or more tagfiles.
|
||||
|
||||
TAGFILES =
|
||||
|
||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
|
||||
# a tag file that is based on the input files it reads.
|
||||
|
||||
GENERATE_TAGFILE =
|
||||
|
||||
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
|
||||
# in the class index. If set to NO only the inherited external classes
|
||||
# will be listed.
|
||||
|
||||
ALLEXTERNALS = NO
|
||||
|
||||
# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
|
||||
# in the modules index. If set to NO, only the current project's groups will
|
||||
# be listed.
|
||||
|
||||
EXTERNAL_GROUPS = YES
|
||||
|
||||
# The PERL_PATH should be the absolute path and name of the perl script
|
||||
# interpreter (i.e. the result of `which perl').
|
||||
|
||||
PERL_PATH = /usr/bin/perl
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
|
||||
# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
|
||||
# super classes. Setting the tag to NO turns the diagrams off. Note that this
|
||||
# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
|
||||
# recommended to install and use dot, since it yield more powerful graphs.
|
||||
|
||||
CLASS_DIAGRAMS = YES
|
||||
|
||||
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
|
||||
# available from the path. This tool is part of Graphviz, a graph visualization
|
||||
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
||||
# have no effect if this option is set to NO (the default)
|
||||
|
||||
HAVE_DOT = NO
|
||||
|
||||
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
# indirect inheritance relations. Setting this tag to YES will force the
|
||||
# the CLASS_DIAGRAMS tag to NO.
|
||||
|
||||
CLASS_GRAPH = YES
|
||||
|
||||
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
# indirect implementation dependencies (inheritance, containment, and
|
||||
# class references variables) of the class with other documented classes.
|
||||
|
||||
COLLABORATION_GRAPH = YES
|
||||
|
||||
# If set to YES, the inheritance and collaboration graphs will show the
|
||||
# relations between templates and their instances.
|
||||
|
||||
TEMPLATE_RELATIONS = YES
|
||||
|
||||
# If set to YES, the inheritance and collaboration graphs will hide
|
||||
# inheritance and usage relations if the target is undocumented
|
||||
# or is not a class.
|
||||
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
|
||||
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
|
||||
# tags are set to YES then doxygen will generate a graph for each documented
|
||||
# file showing the direct and indirect include dependencies of the file with
|
||||
# other documented files.
|
||||
|
||||
INCLUDE_GRAPH = YES
|
||||
|
||||
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
|
||||
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
|
||||
# documented header file showing the documented files that directly or
|
||||
# indirectly include this file.
|
||||
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
|
||||
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
|
||||
# will graphical hierarchy of all classes instead of a textual one.
|
||||
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
|
||||
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
||||
# generated by dot. Possible values are png, jpg, or gif
|
||||
# If left blank png will be used.
|
||||
|
||||
DOT_IMAGE_FORMAT = png
|
||||
|
||||
# The tag DOT_PATH can be used to specify the path where the dot tool can be
|
||||
# found. If left blank, it is assumed the dot tool can be found on the path.
|
||||
|
||||
DOT_PATH =
|
||||
|
||||
# The DOTFILE_DIRS tag can be used to specify one or more directories that
|
||||
# contain dot files that are included in the documentation (see the
|
||||
# \dotfile command).
|
||||
|
||||
DOTFILE_DIRS =
|
||||
|
||||
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
|
||||
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
|
||||
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
|
||||
# generate a legend page explaining the meaning of the various boxes and
|
||||
# arrows in the dot generated graphs.
|
||||
|
||||
GENERATE_LEGEND = YES
|
||||
|
||||
# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
|
||||
# remove the intermedate dot files that are used to generate
|
||||
# the various graphs.
|
||||
|
||||
DOT_CLEANUP = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The SEARCHENGINE tag specifies whether or not a search engine should be
|
||||
# used. If set to NO the values of all tags below this one will be ignored.
|
||||
|
||||
SEARCHENGINE = NO
|
||||
|
||||
# The CGI_NAME tag should be the name of the CGI script that
|
||||
# starts the search engine (doxysearch) with the correct parameters.
|
||||
# A script with this name will be generated by doxygen.
|
||||
|
||||
CGI_NAME = search.cgi
|
||||
|
||||
# The CGI_URL tag should be the absolute URL to the directory where the
|
||||
# cgi binaries are located. See the documentation of your http daemon for
|
||||
# details.
|
||||
|
||||
CGI_URL =
|
||||
|
||||
# The DOC_URL tag should be the absolute URL to the directory where the
|
||||
# documentation is located. If left blank the absolute path to the
|
||||
# documentation, with file:// prepended to it, will be used.
|
||||
|
||||
DOC_URL =
|
||||
|
||||
# The DOC_ABSPATH tag should be the absolute path to the directory where the
|
||||
# documentation is located. If left blank the directory on the local machine
|
||||
# will be used.
|
||||
|
||||
DOC_ABSPATH =
|
||||
|
||||
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
|
||||
# is installed.
|
||||
|
||||
BIN_ABSPATH = /usr/local/bin/
|
||||
|
||||
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
|
||||
# documentation generated for other projects. This allows doxysearch to search
|
||||
# the documentation for these projects as well.
|
||||
|
||||
EXT_DOC_PATHS =
|
Двоичные данные
ompi/contrib/vt/vt/extlib/otf/docu/tools/otftools.pdf
Обычный файл
Двоичные данные
ompi/contrib/vt/vt/extlib/otf/docu/tools/otftools.pdf
Обычный файл
Двоичный файл не отображается.
507
ompi/contrib/vt/vt/extlib/otf/install-sh
Исполняемый файл
507
ompi/contrib/vt/vt/extlib/otf/install-sh
Исполняемый файл
@ -0,0 +1,507 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2006-10-14.15
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
posix_glob=
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
no_target_directory=
|
||||
|
||||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
-c (ignored)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
shift
|
||||
shift
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dstarg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dstarg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dstarg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src ;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dstarg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dstarg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst ;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dstarg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix=/ ;;
|
||||
-*) prefix=./ ;;
|
||||
*) prefix= ;;
|
||||
esac
|
||||
|
||||
case $posix_glob in
|
||||
'')
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=true
|
||||
else
|
||||
posix_glob=false
|
||||
fi ;;
|
||||
esac
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob && set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob && set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||
|| {
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
if test -f "$dst"; then
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null \
|
||||
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
|
||||
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
} || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
6930
ompi/contrib/vt/vt/extlib/otf/ltmain.sh
Обычный файл
6930
ompi/contrib/vt/vt/extlib/otf/ltmain.sh
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
367
ompi/contrib/vt/vt/extlib/otf/missing
Исполняемый файл
367
ompi/contrib/vt/vt/extlib/otf/missing
Исполняемый файл
@ -0,0 +1,367 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2006-05-10.23
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program).
|
||||
case $1 in
|
||||
lex|yacc)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $1 in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
56
ompi/contrib/vt/vt/extlib/otf/otf_vc05.sln
Обычный файл
56
ompi/contrib/vt/vt/extlib/otf/otf_vc05.sln
Обычный файл
@ -0,0 +1,56 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libotf", "otflib\libotf_vs05.vcproj", "{6B9B49C9-75CD-400D-B736-5EACA04D0A82}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otfaux", "tools\otfaux\otfaux_vs05.vcproj", "{24587836-ED5E-49DF-A7AD-419FDC208C08}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82} = {6B9B49C9-75CD-400D-B736-5EACA04D0A82}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otfcompress", "tools\otfcompress\otfcompress_vs05.vcproj", "{B6BBC220-1492-4BEA-A299-9D062133ABAA}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82} = {6B9B49C9-75CD-400D-B736-5EACA04D0A82}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otfdump", "tools\otfdump\otfdump_vs05.vcproj", "{508A823C-8EAB-4C56-9DFE-4D85B0D24491}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82} = {6B9B49C9-75CD-400D-B736-5EACA04D0A82}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otfmerge", "tools\otfmerge\otfmerge_vs05.vcproj", "{1B9223C8-DE20-4538-8214-776C6017D22B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82} = {6B9B49C9-75CD-400D-B736-5EACA04D0A82}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6B9B49C9-75CD-400D-B736-5EACA04D0A82}.Release|Win32.Build.0 = Release|Win32
|
||||
{24587836-ED5E-49DF-A7AD-419FDC208C08}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{24587836-ED5E-49DF-A7AD-419FDC208C08}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{24587836-ED5E-49DF-A7AD-419FDC208C08}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{24587836-ED5E-49DF-A7AD-419FDC208C08}.Release|Win32.Build.0 = Release|Win32
|
||||
{B6BBC220-1492-4BEA-A299-9D062133ABAA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B6BBC220-1492-4BEA-A299-9D062133ABAA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B6BBC220-1492-4BEA-A299-9D062133ABAA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B6BBC220-1492-4BEA-A299-9D062133ABAA}.Release|Win32.Build.0 = Release|Win32
|
||||
{508A823C-8EAB-4C56-9DFE-4D85B0D24491}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{508A823C-8EAB-4C56-9DFE-4D85B0D24491}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{508A823C-8EAB-4C56-9DFE-4D85B0D24491}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{508A823C-8EAB-4C56-9DFE-4D85B0D24491}.Release|Win32.Build.0 = Release|Win32
|
||||
{1B9223C8-DE20-4538-8214-776C6017D22B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{1B9223C8-DE20-4538-8214-776C6017D22B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{1B9223C8-DE20-4538-8214-776C6017D22B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{1B9223C8-DE20-4538-8214-776C6017D22B}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
53
ompi/contrib/vt/vt/extlib/otf/otflib/Makefile.am
Обычный файл
53
ompi/contrib/vt/vt/extlib/otf/otflib/Makefile.am
Обычный файл
@ -0,0 +1,53 @@
|
||||
INCLUDES = $(ZLIB_INCLUDE_LINE)
|
||||
|
||||
if AMDEPZLIB
|
||||
LIBS += $(ZLIB_LIB_LINE)
|
||||
endif
|
||||
|
||||
include_HEADERS = otf.h \
|
||||
OTF_CopyHandler.h \
|
||||
OTF_Definitions.h \
|
||||
OTF_File.h \
|
||||
OTF_FileManager.h \
|
||||
OTF_Filenames.h \
|
||||
OTF_HandlerArray.h \
|
||||
OTF_MasterControl.h \
|
||||
OTF_RBuffer.h \
|
||||
OTF_RStream.h \
|
||||
OTF_Reader.h \
|
||||
OTF_WBuffer.h \
|
||||
OTF_WStream.h \
|
||||
OTF_Writer.h
|
||||
|
||||
nodist_include_HEADERS = OTF_inttypes.h
|
||||
|
||||
noinst_HEADERS = OTF_Keywords.h \
|
||||
OTF_Parse.h \
|
||||
OTF_Platform.h
|
||||
|
||||
lib_LTLIBRARIES = libotf.la
|
||||
|
||||
libotf_la_SOURCES = \
|
||||
OTF_CopyHandler.c \
|
||||
OTF_File.c \
|
||||
OTF_FileManager.c \
|
||||
OTF_Filenames.c \
|
||||
OTF_HandlerArray.c \
|
||||
OTF_MasterControl.c \
|
||||
OTF_Parse.c \
|
||||
OTF_Platform.c \
|
||||
OTF_RBuffer.c \
|
||||
OTF_Reader.c \
|
||||
OTF_RStream.c \
|
||||
OTF_WBuffer.c \
|
||||
OTF_Writer.c \
|
||||
OTF_WStream.c \
|
||||
OTF_inttypes.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
libotf_vs05.vcproj
|
||||
|
||||
|
||||
.PHONY: doc
|
||||
doc:
|
||||
doxygen
|
600
ompi/contrib/vt/vt/extlib/otf/otflib/Makefile.in
Обычный файл
600
ompi/contrib/vt/vt/extlib/otf/otflib/Makefile.in
Обычный файл
@ -0,0 +1,600 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
@AMDEPZLIB_TRUE@am__append_1 = $(ZLIB_LIB_LINE)
|
||||
subdir = otflib
|
||||
DIST_COMMON = $(include_HEADERS) $(noinst_HEADERS) \
|
||||
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/OTF_inttypes.h.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = OTF_inttypes.h
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
|
||||
"$(DESTDIR)$(includedir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libotf_la_LIBADD =
|
||||
am_libotf_la_OBJECTS = OTF_CopyHandler.lo OTF_File.lo \
|
||||
OTF_FileManager.lo OTF_Filenames.lo OTF_HandlerArray.lo \
|
||||
OTF_MasterControl.lo OTF_Parse.lo OTF_Platform.lo \
|
||||
OTF_RBuffer.lo OTF_Reader.lo OTF_RStream.lo OTF_WBuffer.lo \
|
||||
OTF_Writer.lo OTF_WStream.lo OTF_inttypes.lo
|
||||
libotf_la_OBJECTS = $(am_libotf_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(libotf_la_SOURCES)
|
||||
DIST_SOURCES = $(libotf_la_SOURCES)
|
||||
includeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
nodist_includeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) \
|
||||
$(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@ $(am__append_1)
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
|
||||
PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
|
||||
PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
SWIG = @SWIG@
|
||||
SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
|
||||
SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
|
||||
VERSION = @VERSION@
|
||||
VTF3_INCLUDE_DIR = @VTF3_INCLUDE_DIR@
|
||||
VTF3_INCLUDE_LINE = @VTF3_INCLUDE_LINE@
|
||||
VTF3_LIB_DIR = @VTF3_LIB_DIR@
|
||||
VTF3_LIB_LINE = @VTF3_LIB_LINE@
|
||||
ZLIB_INCLUDE_DIR = @ZLIB_INCLUDE_DIR@
|
||||
ZLIB_INCLUDE_LINE = @ZLIB_INCLUDE_LINE@
|
||||
ZLIB_LIB_DIR = @ZLIB_LIB_DIR@
|
||||
ZLIB_LIB_LINE = @ZLIB_LIB_LINE@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
have_inttypes_h = @have_inttypes_h@
|
||||
have_stdint_h = @have_stdint_h@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sizeof_long = @sizeof_long@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
INCLUDES = $(ZLIB_INCLUDE_LINE)
|
||||
include_HEADERS = otf.h \
|
||||
OTF_CopyHandler.h \
|
||||
OTF_Definitions.h \
|
||||
OTF_File.h \
|
||||
OTF_FileManager.h \
|
||||
OTF_Filenames.h \
|
||||
OTF_HandlerArray.h \
|
||||
OTF_MasterControl.h \
|
||||
OTF_RBuffer.h \
|
||||
OTF_RStream.h \
|
||||
OTF_Reader.h \
|
||||
OTF_WBuffer.h \
|
||||
OTF_WStream.h \
|
||||
OTF_Writer.h
|
||||
|
||||
nodist_include_HEADERS = OTF_inttypes.h
|
||||
noinst_HEADERS = OTF_Keywords.h \
|
||||
OTF_Parse.h \
|
||||
OTF_Platform.h
|
||||
|
||||
lib_LTLIBRARIES = libotf.la
|
||||
libotf_la_SOURCES = \
|
||||
OTF_CopyHandler.c \
|
||||
OTF_File.c \
|
||||
OTF_FileManager.c \
|
||||
OTF_Filenames.c \
|
||||
OTF_HandlerArray.c \
|
||||
OTF_MasterControl.c \
|
||||
OTF_Parse.c \
|
||||
OTF_Platform.c \
|
||||
OTF_RBuffer.c \
|
||||
OTF_Reader.c \
|
||||
OTF_RStream.c \
|
||||
OTF_WBuffer.c \
|
||||
OTF_Writer.c \
|
||||
OTF_WStream.c \
|
||||
OTF_inttypes.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
libotf_vs05.vcproj
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu otflib/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu otflib/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
OTF_inttypes.h: $(top_builddir)/config.status $(srcdir)/OTF_inttypes.h.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libotf.la: $(libotf_la_OBJECTS) $(libotf_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(libdir) $(libotf_la_OBJECTS) $(libotf_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_CopyHandler.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_File.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_FileManager.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_Filenames.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_HandlerArray.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_MasterControl.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_Parse.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_Platform.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_RBuffer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_RStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_Reader.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_WBuffer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_WStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_Writer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OTF_inttypes.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-includeHEADERS: $(include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
|
||||
@list='$(include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(include_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
install-nodist_includeHEADERS: $(nodist_include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
|
||||
@list='$(nodist_include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(nodist_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
$(nodist_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-nodist_includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(nodist_include_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-includeHEADERS install-nodist_includeHEADERS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
|
||||
uninstall-nodist_includeHEADERS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-includeHEADERS install-info \
|
||||
install-info-am install-libLTLIBRARIES install-man \
|
||||
install-nodist_includeHEADERS install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-includeHEADERS \
|
||||
uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS
|
||||
|
||||
|
||||
.PHONY: doc
|
||||
doc:
|
||||
doxygen
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
364
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_CopyHandler.c
Обычный файл
364
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_CopyHandler.c
Обычный файл
@ -0,0 +1,364 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
#include "OTF_CopyHandler.h"
|
||||
#include "OTF_Writer.h"
|
||||
|
||||
|
||||
/* *** Definition handlers *** ************************************* */
|
||||
|
||||
int OTF_CopyHandler_DefinitionComment( void* userData, uint32_t stream,
|
||||
const char* comment ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefinitionComment( (OTF_Writer*)userData, stream,
|
||||
comment ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefTimerResolution( void* userData,
|
||||
uint32_t stream, uint64_t ticksPerSecond ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefTimerResolution( (OTF_Writer*)userData, stream,
|
||||
ticksPerSecond ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefProcess( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name, uint32_t parent ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefProcess( (OTF_Writer*)userData, stream,
|
||||
deftoken, name, parent ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefProcessGroup( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name, uint32_t n, const uint32_t* procs ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefProcessGroup( (OTF_Writer*)userData, stream, deftoken,
|
||||
name, n, procs ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefFunction( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name,
|
||||
uint32_t group, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefFunction( (OTF_Writer*)userData, stream, deftoken,
|
||||
name, group, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefFunctionGroup( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefFunctionGroup( (OTF_Writer*)userData, stream,
|
||||
deftoken, name ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefCollectiveOperation( void* userData, uint32_t stream,
|
||||
uint32_t collOp, const char* name, uint32_t type ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefCollectiveOperation( (OTF_Writer*)userData, stream,
|
||||
collOp, name, type ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefCounter( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name, uint32_t properties,
|
||||
uint32_t countergroup, const char* unit ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefCounter( (OTF_Writer*)userData, stream,
|
||||
deftoken, name, properties, countergroup, unit ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefCounterGroup( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* name ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefCounterGroup( (OTF_Writer*)userData, stream,
|
||||
deftoken, name ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefScl( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, uint32_t sclfile, uint32_t sclline ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefScl( (OTF_Writer*)userData, stream, deftoken,
|
||||
sclfile, sclline ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefSclFile( void* userData, uint32_t stream,
|
||||
uint32_t deftoken, const char* filename ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefSclFile( (OTF_Writer*)userData, stream,
|
||||
deftoken, filename ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefVersion( void* userData, uint32_t stream,
|
||||
uint8_t major, uint8_t minor, uint8_t sub, const char* string ) {
|
||||
|
||||
|
||||
/* version is writen implicitly */
|
||||
|
||||
return OTF_RETURN_OK; /* success */
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefCreator( void* userData, uint32_t stream,
|
||||
const char* creator ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefCreator( (OTF_Writer*)userData, stream, creator )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefFile( void* userData, uint32_t stream, uint32_t token,
|
||||
const char* name, uint32_t group ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefFile( (OTF_Writer*)userData, stream, token,
|
||||
name, group ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_DefFileGroup( void* userData, uint32_t stream,
|
||||
uint32_t token, const char* name ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeDefFileGroup( (OTF_Writer*)userData, stream, token,
|
||||
name ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
/* *** Event handlers *** ****************************************** */
|
||||
|
||||
|
||||
int OTF_CopyHandler_EventComment( void* userData, uint64_t time, uint32_t process,
|
||||
const char* comment ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeEventComment( (OTF_Writer*)userData, time,
|
||||
process, comment ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_Counter( void* userData, uint64_t time,
|
||||
uint32_t process, uint32_t counter_token, uint64_t value ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeCounter( (OTF_Writer*)userData, time,
|
||||
process, counter_token, value ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_Enter( void* userData, uint64_t time,
|
||||
uint32_t statetoken, uint32_t cpuid, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeEnter( (OTF_Writer*)userData, time,
|
||||
statetoken, cpuid, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_CollectiveOperation( void* userData, uint64_t time,
|
||||
uint32_t process, uint32_t functionToken, uint32_t communicator,
|
||||
uint32_t rootprocess, uint32_t sent, uint32_t received,
|
||||
uint64_t duration, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeCollectiveOperation( (OTF_Writer*)userData, time,
|
||||
process, functionToken, communicator, rootprocess,
|
||||
sent, received, duration, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_RecvMsg( void* userData, uint64_t time,
|
||||
uint32_t receiver, uint32_t sender, uint32_t communicator,
|
||||
uint32_t msgtype, uint32_t msglength, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeRecvMsg( (OTF_Writer*)userData, time, receiver,
|
||||
sender, communicator, msgtype, msglength, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_SendMsg( void* userData, uint64_t time,
|
||||
uint32_t sender, uint32_t receiver, uint32_t communicator,
|
||||
uint32_t msgtype, uint32_t msglength, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeSendMsg( (OTF_Writer*)userData, time, sender,
|
||||
receiver, communicator, msgtype, msglength, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_Leave( void* userData, uint64_t time,
|
||||
uint32_t statetoken, uint32_t cpuid, uint32_t scltoken ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeLeave( (OTF_Writer*)userData, time, statetoken,
|
||||
cpuid, scltoken ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_BeginProcess( void* userData, uint64_t time,
|
||||
uint32_t process ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeBeginProcess( (OTF_Writer*)userData, time,
|
||||
process ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_EndProcess( void* userData, uint64_t time,
|
||||
uint32_t process ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeEndProcess( (OTF_Writer*)userData, time,
|
||||
process ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_FileOperation( void* userData, uint64_t time, uint32_t fileid,
|
||||
uint32_t process, uint64_t handleid, uint32_t operation, uint64_t bytes,
|
||||
uint64_t duration, uint32_t source ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeFileOperation( (OTF_Writer*)userData, time, fileid,
|
||||
process, handleid, operation, bytes, duration, source )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
/* *** snapshot handlers ********************************************** */
|
||||
|
||||
|
||||
int OTF_CopyHandler_SnapshotComment( void* userData, uint64_t time,
|
||||
uint32_t process, const char* comment ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeSnapshotComment( (OTF_Writer*)userData,
|
||||
time, process, comment ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_EnterSnapshot( void *userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t function, uint32_t process,
|
||||
uint32_t source ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeEnterSnapshot( (OTF_Writer*)userData,
|
||||
time, originaltime, function, process, source )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_SendSnapshot( void *userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t sender, uint32_t receiver,
|
||||
uint32_t procGroup, uint32_t tag, uint32_t source ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeSendSnapshot( (OTF_Writer*)userData,
|
||||
time, originaltime, sender, receiver, procGroup, tag, source )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_OpenFileSnapshot( void* userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t fileid, uint32_t process, uint64_t handleid,
|
||||
uint32_t source ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeOpenFileSnapshot( (OTF_Writer*)userData, time,
|
||||
originaltime, fileid, process, handleid, source )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
/* *** summary handlers ********************************************** */
|
||||
int OTF_CopyHandler_SummaryComment( void * userData, uint64_t time,
|
||||
uint32_t process, const char* comment ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeSummaryComment( (OTF_Writer*)userData,
|
||||
time, process, comment ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_FunctionSummary( void* userData,
|
||||
uint64_t time, uint32_t function, uint32_t process,
|
||||
uint64_t count, uint64_t excltime, uint64_t incltime ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeFunctionSummary( (OTF_Writer*)userData,
|
||||
time, function, process, count, excltime, incltime )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_FunctionGroupSummary( void* userData,
|
||||
uint64_t time, uint32_t functiongroup, uint32_t process,
|
||||
uint64_t count, uint64_t excltime, uint64_t incltime ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeFunctionGroupSummary( (OTF_Writer*)userData,
|
||||
time, functiongroup, process, count, excltime, incltime )
|
||||
) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_MessageSummary( void* userData, uint64_t time,
|
||||
uint32_t process, uint32_t peer, uint32_t comm, uint32_t type,
|
||||
uint64_t sentNumber, uint64_t receivedNumber, uint64_t sentBytes,
|
||||
uint64_t receivedBytes ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeMessageSummary((OTF_Writer*) userData,
|
||||
time, process, peer, comm, type, sentNumber, receivedNumber, sentBytes,
|
||||
receivedBytes ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_FileOperationSummary( void* userData, uint64_t time,
|
||||
uint32_t fileid, uint32_t process, uint64_t nopen, uint64_t nclose,
|
||||
uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
|
||||
uint64_t byteswrite ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeFileOperationSummary( (OTF_Writer*) userData,
|
||||
time, fileid, process, nopen, nclose, nread, nwrite, nseek,
|
||||
bytesread, byteswrite ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
int OTF_CopyHandler_FileGroupOperationSummary( void* userData, uint64_t time,
|
||||
uint32_t groupid, uint32_t process, uint64_t nopen, uint64_t nclose,
|
||||
uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
|
||||
uint64_t byteswrite ) {
|
||||
|
||||
|
||||
return ( 0 == OTF_Writer_writeFileOperationSummary( (OTF_Writer*) userData,
|
||||
time, groupid, process, nopen, nclose, nread, nwrite, nseek,
|
||||
bytesread, byteswrite ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
|
||||
}
|
148
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_CopyHandler.h
Обычный файл
148
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_CopyHandler.h
Обычный файл
@ -0,0 +1,148 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_CopyHandler.h
|
||||
*
|
||||
* @brief Provides handlers for copying a trace.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
#ifndef OTF_COPYOTF_CopyHandler_R_H
|
||||
#define OTF_COPYOTF_CopyHandler_R_H
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
|
||||
|
||||
|
||||
/* *** Definition OTF_CopyHandler_r *** ************************************* */
|
||||
|
||||
int OTF_CopyHandler_DefinitionComment( void* userData, uint32_t stream,
|
||||
const char* comment );
|
||||
|
||||
int OTF_CopyHandler_DefTimerResolution( void* userData, uint32_t stream,
|
||||
uint64_t ticksPerSecond );
|
||||
|
||||
int OTF_CopyHandler_DefProcess( void* userData, uint32_t stream, uint32_t process,
|
||||
const char* name, uint32_t parent );
|
||||
|
||||
int OTF_CopyHandler_DefProcessGroup( void* userData, uint32_t stream,
|
||||
uint32_t procGroup, const char* name, uint32_t numberOfProcs,
|
||||
const uint32_t* procs );
|
||||
|
||||
int OTF_CopyHandler_DefFunction( void* userData, uint32_t stream, uint32_t func,
|
||||
const char* name, uint32_t funcGroup, uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_DefFunctionGroup( void* userData, uint32_t stream,
|
||||
uint32_t funcGroup, const char* name );
|
||||
|
||||
int OTF_CopyHandler_DefCollectiveOperation( void* userData, uint32_t stream,
|
||||
uint32_t collOp, const char* name, uint32_t type );
|
||||
|
||||
int OTF_CopyHandler_DefCounter( void* userData, uint32_t stream, uint32_t counter,
|
||||
const char* name, uint32_t properties, uint32_t counterGroup,
|
||||
const char* unit );
|
||||
|
||||
int OTF_CopyHandler_DefCounterGroup( void* userData, uint32_t stream,
|
||||
uint32_t counterGroup, const char* name );
|
||||
|
||||
int OTF_CopyHandler_DefScl( void* userData, uint32_t stream, uint32_t source,
|
||||
uint32_t sourceFile, uint32_t line );
|
||||
|
||||
int OTF_CopyHandler_DefSclFile( void* userData, uint32_t stream,
|
||||
uint32_t sourceFile, const char* name );
|
||||
|
||||
int OTF_CopyHandler_DefVersion( void* userData, uint32_t stream,
|
||||
uint8_t major, uint8_t minor, uint8_t sub, const char* string );
|
||||
|
||||
int OTF_CopyHandler_DefCreator( void* userData, uint32_t stream,
|
||||
const char* creator );
|
||||
|
||||
int OTF_CopyHandler_DefFile( void* userData, uint32_t stream, uint32_t token,
|
||||
const char* name, uint32_t group );
|
||||
|
||||
int OTF_CopyHandler_DefFileGroup( void* userData, uint32_t stream,
|
||||
uint32_t token, const char* name );
|
||||
|
||||
|
||||
int OTF_CopyHandler_Enter( void* userData, uint64_t time, uint32_t function,
|
||||
uint32_t process, uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_Leave( void* userData, uint64_t time, uint32_t function,
|
||||
uint32_t process, uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_SendMsg( void* userData, uint64_t time, uint32_t sender,
|
||||
uint32_t receiver, uint32_t group, uint32_t type, uint32_t length,
|
||||
uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_RecvMsg( void* userData, uint64_t time, uint32_t recvProc,
|
||||
uint32_t sendProc, uint32_t group, uint32_t type, uint32_t length,
|
||||
uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_Counter( void* userData, uint64_t time, uint32_t process,
|
||||
uint32_t counter, uint64_t value );
|
||||
|
||||
int OTF_CopyHandler_CollectiveOperation( void* userData, uint64_t time,
|
||||
uint32_t process, uint32_t collective, uint32_t procGroup,
|
||||
uint32_t rootProc, uint32_t sent, uint32_t received, uint64_t duration,
|
||||
uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_EventComment( void* userData, uint64_t time, uint32_t process,
|
||||
const char* comment );
|
||||
|
||||
int OTF_CopyHandler_BeginProcess( void* userData, uint64_t time, uint32_t process );
|
||||
|
||||
int OTF_CopyHandler_EndProcess( void* userData, uint64_t time, uint32_t process );
|
||||
|
||||
int OTF_CopyHandler_SnapshotComment( void* userData, uint64_t time,
|
||||
uint32_t process, const char* comment );
|
||||
|
||||
int OTF_CopyHandler_FileOperation( void* userData, uint64_t time, uint32_t fileid,
|
||||
uint32_t process, uint64_t handleid, uint32_t operation, uint64_t bytes,
|
||||
uint64_t duration, uint32_t source );
|
||||
|
||||
|
||||
int OTF_CopyHandler_EnterSnapshot( void *userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t function, uint32_t process,
|
||||
uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_SendSnapshot( void *userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t sender, uint32_t receiver,
|
||||
uint32_t procGroup, uint32_t tag, uint32_t source );
|
||||
|
||||
int OTF_CopyHandler_OpenFileSnapshot( void* userData, uint64_t time,
|
||||
uint64_t originaltime, uint32_t fileid, uint32_t process, uint64_t handleid,
|
||||
uint32_t source );
|
||||
|
||||
|
||||
int OTF_CopyHandler_SummaryComment( void * userData, uint64_t time,
|
||||
uint32_t process, const char* comment );
|
||||
|
||||
int OTF_CopyHandler_FunctionSummary( void* userData, uint64_t time,
|
||||
uint32_t function, uint32_t process, uint64_t invocations,
|
||||
uint64_t exclTime, uint64_t inclTime );
|
||||
|
||||
int OTF_CopyHandler_FunctionGroupSummary( void* userData, uint64_t time,
|
||||
uint32_t funcGroup, uint32_t process, uint64_t invocations,
|
||||
uint64_t exclTime, uint64_t inclTime );
|
||||
|
||||
int OTF_CopyHandler_MessageSummary( void* userData, uint64_t time, uint32_t process,
|
||||
uint32_t peer, uint32_t comm, uint32_t type, uint64_t sentNumber,
|
||||
uint64_t receivedNumber, uint64_t sentBytes, uint64_t receivedBytes );
|
||||
|
||||
int OTF_CopyHandler_FileOperationSummary( void* userData, uint64_t time,
|
||||
uint32_t fileid, uint32_t process, uint64_t nopen, uint64_t nclose,
|
||||
uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
|
||||
uint64_t byteswrite );
|
||||
|
||||
int OTF_CopyHandler_FileGroupOperationSummary( void* userData, uint64_t time,
|
||||
uint32_t groupid, uint32_t process, uint64_t nopen, uint64_t nclose,
|
||||
uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
|
||||
uint64_t byteswrite );
|
||||
|
||||
#endif /* OTF_COPYOTF_CopyHandler_R_H */
|
||||
|
173
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Definitions.h
Обычный файл
173
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Definitions.h
Обычный файл
@ -0,0 +1,173 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_Definitions.h
|
||||
*
|
||||
* @brief Provides many many macros for different purposes.
|
||||
*
|
||||
* \ingroup misc
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_DEFINITIONS_H
|
||||
#define OTF_DEFINITIONS_H
|
||||
|
||||
|
||||
/* version information */
|
||||
|
||||
#define OTF_VERSION_MAYOR 1
|
||||
#define OTF_VERSION_MINOR 3
|
||||
#define OTF_VERSION_SUB 9
|
||||
#define OTF_VERSION_STRING "jellyfish"
|
||||
|
||||
/* version history:
|
||||
|
||||
0.2.1 "octopussy"
|
||||
0.3.1 "starfish"
|
||||
0.3.2 "starfish"
|
||||
0.4.0 "starfish"
|
||||
0.4.1 "starfish"
|
||||
0.5.0 "starfish"
|
||||
1.0.* "starfish"
|
||||
1.1.* "starfish"
|
||||
1.2.* "pufferfish"
|
||||
1.3.* "jellyfish"
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* definitions of record type identifiers */
|
||||
|
||||
|
||||
/* Event records*/
|
||||
|
||||
#define OTF_EVENTCOMMENT_RECORD 0
|
||||
#define OTF_COUNTER_RECORD 1
|
||||
#define OTF_ENTER_RECORD 2
|
||||
|
||||
#define OTF_COLLOP_RECORD 5
|
||||
|
||||
#define OTF_RECEIVE_RECORD 10
|
||||
#define OTF_SEND_RECORD 11
|
||||
#define OTF_LEAVE_RECORD 12
|
||||
|
||||
#define OTF_BEGINPROCESS_RECORD 35
|
||||
#define OTF_ENDPROCESS_RECORD 36
|
||||
|
||||
#define OTF_FILEOPERATION_RECORD 42
|
||||
|
||||
/* Definition records*/
|
||||
|
||||
#define OTF_DEFTIMERRESOLUTION_RECORD 13
|
||||
#define OTF_DEFPROCESS_RECORD 14
|
||||
#define OTF_DEFPROCESSGROUP_RECORD 15
|
||||
#define OTF_DEFFUNCTION_RECORD 16
|
||||
#define OTF_DEFFUNCTIONGROUP_RECORD 17
|
||||
#define OTF_DEFCOUNTER_RECORD 18
|
||||
#define OTF_DEFCOUNTERGROUP_RECORD 19
|
||||
#define OTF_DEFCOLLOP_RECORD 20
|
||||
#define OTF_DEFSCL_RECORD 21
|
||||
#define OTF_DEFSCLFILE_RECORD 22
|
||||
#define OTF_DEFVERSION_RECORD 23
|
||||
#define OTF_DEFCREATOR_RECORD 24
|
||||
#define OTF_DEFFILE_RECORD 25
|
||||
#define OTF_DEFFILEGROUP_RECORD 26
|
||||
|
||||
|
||||
#define OTF_FUNCTIONSUMMARY_RECORD 28
|
||||
#define OTF_FUNCTIONGROUPSUMMARY_RECORD 29
|
||||
#define OTF_MESSAGESUMMARY_RECORD 30
|
||||
#define OTF_FILEOPERATIONSUMMARY_RECORD 31
|
||||
#define OTF_FILEGROUPOPERATIONSUMMARY_RECORD 32
|
||||
|
||||
#define OTF_DEFINITIONCOMMENT_RECORD 34
|
||||
|
||||
#define OTF_ENTERSNAPSHOT_RECORD 37
|
||||
#define OTF_SENDSNAPSHOT_RECORD 38
|
||||
|
||||
#define OTF_SUMMARYCOMMENT_RECORD 39
|
||||
#define OTF_SNAPSHOTCOMMENT_RECORD 40
|
||||
#define OTF_OPENFILESNAPSHOT_RECORD 43
|
||||
|
||||
#define OTF_UNKNOWN_RECORD 41
|
||||
|
||||
|
||||
/* Number of records */
|
||||
#define OTF_NRECORDS 44
|
||||
|
||||
/* Stream format definition */
|
||||
|
||||
#define OTF_WSTREAM_FORMAT_SHORT 0
|
||||
#define OTF_WSTREAM_FORMAT_LONG 1
|
||||
|
||||
|
||||
/* Counter properties */
|
||||
|
||||
/* 1st-2nd bit */
|
||||
#define OTF_COUNTER_TYPE_BITS 3
|
||||
#define OTF_COUNTER_TYPE_ACC 0
|
||||
#define OTF_COUNTER_TYPE_ABS 1
|
||||
|
||||
/* 3rd-4th bit */
|
||||
#define OTF_COUNTER_SCOPE_BITS 12
|
||||
#define OTF_COUNTER_SCOPE_START 0
|
||||
#define OTF_COUNTER_SCOPE_POINT 4
|
||||
#define OTF_COUNTER_SCOPE_LAST 8
|
||||
#define OTF_COUNTER_SCOPE_NEXT 12
|
||||
|
||||
/* 6th-9th bit */
|
||||
#define OTF_COUNTER_VARTYPE_ISINTEGER(x) (x < 256)
|
||||
#define OTF_COUNTER_VARTYPE_ISSIGNED(x) ((x&32) == 32)
|
||||
#define OTF_COUNTER_VARTYPE_ISUNSIGNED(x) ((x&32) == 0)
|
||||
|
||||
#define OTF_COUNTER_VARTYPE_BITS 480 /* 1111xxxxx */
|
||||
#define OTF_COUNTER_VARTYPE_UNSIGNED8 0 /* 0000 */
|
||||
#define OTF_COUNTER_VARTYPE_SIGNED8 32 /* 00001 */
|
||||
#define OTF_COUNTER_VARTYPE_UNSIGNED4 64 /* 0010 */
|
||||
#define OTF_COUNTER_VARTYPE_SIGNED4 96 /* 0011 */
|
||||
#define OTF_COUNTER_VARTYPE_UNSIGNED2 128 /* 0100 */
|
||||
#define OTF_COUNTER_VARTYPE_SIGNED2 160 /* 0101 */
|
||||
#define OTF_COUNTER_VARTYPE_FLOAT 256 /* 1000 */
|
||||
#define OTF_COUNTER_VARTYPE_DOUBLE 288 /* 1001 */
|
||||
|
||||
|
||||
|
||||
#define OTF_COUNTER_PROP_DEFAULT 0
|
||||
|
||||
|
||||
/* Types of collective operations */
|
||||
|
||||
#define OTF_COLLECTIVE_TYPE_UNKNOWN 0
|
||||
#define OTF_COLLECTIVE_TYPE_BARRIER 1
|
||||
#define OTF_COLLECTIVE_TYPE_ONE2ALL 2
|
||||
#define OTF_COLLECTIVE_TYPE_ALL2ONE 3
|
||||
#define OTF_COLLECTIVE_TYPE_ALL2ALL 4
|
||||
|
||||
|
||||
/* File Operations */
|
||||
#define OTF_FILEOP_OPEN 0
|
||||
#define OTF_FILEOP_CLOSE 1
|
||||
#define OTF_FILEOP_READ 2
|
||||
#define OTF_FILEOP_WRITE 3
|
||||
#define OTF_FILEOP_SEEK 4
|
||||
|
||||
|
||||
/* return values for handlers. they are not yet evaluated!!! */
|
||||
|
||||
/** When writing an own handler, use these macros to tell OTF, what to do.
|
||||
if you return OTF_RETURN_OK OTF continues reading the trace and calling the
|
||||
appropriate handlers. If you return OTF_RETURN_BREAK or OTF_RETURN_ABORT OTF
|
||||
stops reading immediately */
|
||||
#define OTF_RETURN_OK 0
|
||||
/** @see OTF_RETURN_OK */
|
||||
#define OTF_RETURN_BREAK 1
|
||||
/** @see OTF_RETURN_OK */
|
||||
#define OTF_RETURN_ABORT 1
|
||||
|
||||
#define OTF_READ_ERROR (uint64_t)-1
|
||||
#define OTF_READ_MAXRECORDS (uint64_t)-2
|
||||
|
||||
#endif /* OTF_DEFINITIONS_H */
|
1241
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_File.c
Обычный файл
1241
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_File.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
88
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_File.h
Обычный файл
88
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_File.h
Обычный файл
@ -0,0 +1,88 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_File.h
|
||||
*
|
||||
* @brief Provides a low-level API for accessing files.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_FILE_H
|
||||
#define OTF_FILE_H
|
||||
|
||||
|
||||
#include "OTF_FileManager.h"
|
||||
#include "OTF_Filenames.h"
|
||||
|
||||
|
||||
/** mode determining what to do with a file */
|
||||
enum enum_OTF_FileMode {
|
||||
|
||||
OTF_FILEMODE_NOTHING = 0,
|
||||
OTF_FILEMODE_READ= 1,
|
||||
OTF_FILEMODE_WRITE= 2,
|
||||
OTF_FILEMODE_SEEK= 3
|
||||
};
|
||||
typedef enum enum_OTF_FileMode OTF_FileMode;
|
||||
|
||||
/** status of a file */
|
||||
enum enum_OTF_FileStatus {
|
||||
|
||||
OTF_FILESTATUS_ACTIVE= 1,
|
||||
OTF_FILESTATUS_SUSPENDED= 2,
|
||||
OTF_FILESTATUS_CLOSED= 3
|
||||
};
|
||||
typedef enum enum_OTF_FileStatus OTF_FileStatus;
|
||||
|
||||
/** initialize a OTF_File object */
|
||||
void OTF_File_init( OTF_File* o );
|
||||
|
||||
/** finalize a OTF_File object */
|
||||
void OTF_File_finalize( OTF_File* o );
|
||||
|
||||
/** open an OTF_File */
|
||||
OTF_File* OTF_File_open( const char* filename, OTF_FileManager* manager,
|
||||
OTF_FileMode mode );
|
||||
|
||||
/** OTF_File to an OTF_File */
|
||||
size_t OTF_File_write( OTF_File* file, const void* ptr, size_t size );
|
||||
|
||||
/** read from an OTF_File */
|
||||
size_t OTF_File_read( OTF_File* file, void* ptr, size_t size );
|
||||
|
||||
/** seek absolute position in an OTF_File */
|
||||
int OTF_File_seek( OTF_File* file, uint64_t pos );
|
||||
|
||||
/** get absolut position from an OTF_File */
|
||||
uint64_t OTF_File_tell( OTF_File* file );
|
||||
|
||||
/** return the file size in bytes*/
|
||||
uint64_t OTF_File_size( OTF_File* file );
|
||||
|
||||
/** close OTF_File */
|
||||
int OTF_File_close( OTF_File* file );
|
||||
|
||||
/** return OTF_File status */
|
||||
OTF_FileStatus OTF_File_status( OTF_File* file );
|
||||
|
||||
|
||||
/** suspend OTF_File - internal use only. */
|
||||
void OTF_File_suspend( OTF_File* file );
|
||||
|
||||
/** re-open the file when closed or suspended - internal use only.
|
||||
return 1 on success, 0 otherwise */
|
||||
int OTF_File_revive( OTF_File* file, OTF_FileMode mode );
|
||||
|
||||
void OTF_File_setZBufferSize( OTF_File* file, uint32_t size );
|
||||
|
||||
|
||||
/** internal use */
|
||||
OTF_File* OTF_File_open_zlevel( const char* filename, OTF_FileManager* manager,
|
||||
OTF_FileMode mode, OTF_FileCompression compression );
|
||||
|
||||
#endif /* OTF_FILE_H */
|
531
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_FileManager.c
Обычный файл
531
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_FileManager.c
Обычный файл
@ -0,0 +1,531 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
#include "OTF_FileManager.h"
|
||||
#include "OTF_File.h"
|
||||
|
||||
|
||||
/* *** structs *** */
|
||||
|
||||
|
||||
/** entry of doubly linked list, used by struct struct_OTF_FileManager below. */
|
||||
struct struct_OTF_FileList {
|
||||
|
||||
|
||||
OTF_File* file;
|
||||
struct struct_OTF_FileList* prev;
|
||||
struct struct_OTF_FileList* next;
|
||||
};
|
||||
typedef struct struct_OTF_FileList OTF_FileList;
|
||||
|
||||
|
||||
/** file handles management structure */
|
||||
struct struct_OTF_FileManager {
|
||||
|
||||
/** number of files currently opened */
|
||||
uint32_t count;
|
||||
|
||||
/** number of files allow to be opened simultaneously */
|
||||
uint32_t number;
|
||||
|
||||
/** list of objects of type OTF_RBuffer or OTF_WBuffer */
|
||||
OTF_FileList* list;
|
||||
};
|
||||
|
||||
|
||||
/* *** headers *** */
|
||||
|
||||
void OTF_FileManager_init( OTF_FileManager* fh );
|
||||
void OTF_FileManager_finalize( OTF_FileManager* fh );
|
||||
|
||||
int OTF_FileManager_listInsertAtHead( OTF_FileList** list, OTF_File* entry );
|
||||
int OTF_FileManager_listUnlinkAtHead( OTF_FileList** list, OTF_File* entry );
|
||||
int OTF_FileManager_listUnlinkAtTail( OTF_FileList** list, OTF_File* entry );
|
||||
void OTF_FileManager_listPrint( OTF_FileList** list );
|
||||
|
||||
|
||||
/* *** implementation *** */
|
||||
|
||||
|
||||
void OTF_FileManager_init( OTF_FileManager* fh ) {
|
||||
|
||||
|
||||
fh->count= 0;
|
||||
fh->number= 10;
|
||||
|
||||
fh->list= NULL;
|
||||
}
|
||||
|
||||
|
||||
void OTF_FileManager_finalize( OTF_FileManager* manager ) {
|
||||
|
||||
|
||||
OTF_FileList* pos;
|
||||
|
||||
|
||||
# ifdef OTF_DEBUG
|
||||
if ( 0 < manager->count ) {
|
||||
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"open file remaining.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
}
|
||||
# endif /* OTF_DEBUG */
|
||||
|
||||
if ( NULL != manager->list ) {
|
||||
|
||||
pos= manager->list;
|
||||
|
||||
pos->prev->next= NULL;
|
||||
|
||||
while ( NULL != pos ) {
|
||||
|
||||
pos= pos->next;
|
||||
|
||||
free( pos );
|
||||
}
|
||||
}
|
||||
|
||||
manager->list= NULL;
|
||||
}
|
||||
|
||||
|
||||
OTF_FileManager* OTF_FileManager_open( uint32_t number ) {
|
||||
|
||||
|
||||
OTF_FileManager* ret= (OTF_FileManager*) malloc( sizeof(OTF_FileManager) );
|
||||
if( NULL == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_FileManager_init( ret );
|
||||
|
||||
OTF_FileManager_setNumber( ret, number );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void OTF_FileManager_close( OTF_FileManager* fh ) {
|
||||
|
||||
|
||||
OTF_FileManager_finalize( fh );
|
||||
|
||||
free( fh );
|
||||
}
|
||||
|
||||
|
||||
uint32_t OTF_FileManager_getCount( OTF_FileManager* fh ) {
|
||||
|
||||
|
||||
return fh->count;
|
||||
}
|
||||
|
||||
|
||||
uint32_t OTF_FileManager_getNumber( OTF_FileManager* fh ) {
|
||||
|
||||
|
||||
return fh->number;
|
||||
}
|
||||
|
||||
|
||||
uint32_t OTF_FileManager_setNumber( OTF_FileManager* fh, uint32_t number ) {
|
||||
|
||||
|
||||
if ( 0 == number ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"illegal value 0 ignored.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return fh->number;
|
||||
}
|
||||
|
||||
fh->number= number;
|
||||
|
||||
return fh->number;
|
||||
}
|
||||
|
||||
|
||||
/** ensure there is a free file handle available after this call.
|
||||
return 1 on success, 0 otherwise (which is not supposed to happen) */
|
||||
int OTF_FileManager_guaranteeFile( OTF_FileManager* m ) {
|
||||
|
||||
|
||||
/*
|
||||
fprintf( stderr, "OTF_FileManager_guaranteeFile()\n" );
|
||||
*/
|
||||
|
||||
if ( m->count < m->number ) {
|
||||
|
||||
/* free file handles available */
|
||||
|
||||
/*
|
||||
fprintf( stderr, " OTF_FileManager_guaranteeFile() free handles left\n" );
|
||||
*/
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
fprintf( stderr, " OTF_FileManager_guaranteeFile() need new handles\n" );
|
||||
*/
|
||||
|
||||
/* suspend last entry in list */
|
||||
if ( 0 == OTF_FileManager_suspendFile( m, m->list->file ) ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_FileManager_suspendFile() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
fprintf( stderr, "post suspend %u / %u\n", m->count, m->number );
|
||||
*/
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/** registers the 'file' as open. return 1 on success, 0 otherwise. */
|
||||
int OTF_FileManager_registerFile( OTF_FileManager* m, OTF_File* file ) {
|
||||
|
||||
|
||||
/*
|
||||
fprintf( stderr, "OTF_FileManager_registerFile()\n" );
|
||||
*/
|
||||
|
||||
if ( OTF_FILESTATUS_ACTIVE != OTF_File_status( file ) ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"file not open.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( m->count >= m->number ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"cannot register new file because limit %u exceeded, call "
|
||||
"'OTF_FileManager_guaranteeFile()' before.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, m->number );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
OTF_FileManager_listInsertAtHead( &(m->list), file );
|
||||
|
||||
/*
|
||||
fprintf( stderr, " c++ %u -> %u\n", m->count, m->count+1 );
|
||||
*/
|
||||
m->count++;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/** marks currently opened 'file' as used which is important for the
|
||||
scheduling strategy, i.e. the internal decision which file to suspend next.
|
||||
return 1 on success or 0 for an suspended file. */
|
||||
int OTF_FileManager_touchFile( OTF_FileManager* m, OTF_File* file ) {
|
||||
|
||||
|
||||
/*
|
||||
fprintf( stderr, "OTF_FileManager_touchFile()\n" );
|
||||
*/
|
||||
|
||||
if ( OTF_FILESTATUS_ACTIVE != OTF_File_status( file ) ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* unlink 'file' from somewhere in the list and put it to head */
|
||||
|
||||
OTF_FileManager_listUnlinkAtHead( &(m->list), file );
|
||||
OTF_FileManager_listInsertAtHead( &(m->list), file );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/** suspend an open file explicitly. this may be called externaly or
|
||||
internally. return 1 on success, 0 otherwise. */
|
||||
int OTF_FileManager_suspendFile( OTF_FileManager* m, OTF_File* file ) {
|
||||
|
||||
|
||||
/*
|
||||
fprintf( stderr, "OTF_FileManager_suspendFile()\n" );
|
||||
*/
|
||||
|
||||
if ( OTF_FILESTATUS_ACTIVE != OTF_File_status( file ) ) {
|
||||
|
||||
/* file not open, so cannot be suspended */
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"file to be suspended is not open.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( 0 == OTF_FileManager_listUnlinkAtTail( &(m->list), file ) ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"could not unlink this entry.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
/*
|
||||
fprintf( stderr, " c-- %u -> %u\n", m->count, m->count-1 );
|
||||
*/
|
||||
m->count--;
|
||||
|
||||
OTF_File_suspend( file );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_FileManager_listInsertAtHead( OTF_FileList** list, OTF_File* entry ) {
|
||||
|
||||
|
||||
OTF_FileList* newentry= (OTF_FileList*) malloc( sizeof(OTF_FileList) );
|
||||
if( NULL == newentry ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( NULL != (*list) ) {
|
||||
|
||||
/*
|
||||
fprintf( stderr, "pre insert : %p --> %p (%p)\n",
|
||||
*list, (*list)->next, (*list)->file );
|
||||
*/
|
||||
|
||||
newentry->file= entry;
|
||||
newentry->prev= (*list)->prev;
|
||||
newentry->next= (*list);
|
||||
|
||||
/*
|
||||
fprintf( stderr, "new entry : %p --> %p (%p)\n",
|
||||
newentry, newentry->next, newentry->file );
|
||||
*/
|
||||
|
||||
(*list)->prev->next= newentry;
|
||||
(*list)->prev= newentry;
|
||||
|
||||
*list= newentry;
|
||||
|
||||
/*
|
||||
fprintf( stderr, "post insert: %p --> %p (%p)\n",
|
||||
*list, (*list)->next, (*list)->file );
|
||||
*/
|
||||
|
||||
} else {
|
||||
|
||||
/* empty list */
|
||||
|
||||
newentry->file= entry;
|
||||
newentry->prev= newentry;
|
||||
newentry->next= newentry;
|
||||
|
||||
*list= newentry;
|
||||
}
|
||||
|
||||
/*
|
||||
fprintf( stderr, "after OTF_FileManager_listInsertAtHead():\n" );
|
||||
*/
|
||||
/*
|
||||
OTF_FileManager_listPrint( list );
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int OTF_FileManager_listUnlinkAtHead( OTF_FileList** list, OTF_File* file ) {
|
||||
|
||||
|
||||
OTF_FileList* pos;
|
||||
|
||||
|
||||
if ( NULL == *list ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
pos= *list;
|
||||
while ( ( pos != (*list)->prev ) && ( pos->file != file ) ) {
|
||||
|
||||
pos= pos->next;
|
||||
}
|
||||
|
||||
if ( pos->file == file ) {
|
||||
|
||||
/* found, unlink here */
|
||||
|
||||
pos->prev->next= pos->next;
|
||||
pos->next->prev= pos->prev;
|
||||
|
||||
if ( pos->next == pos ) {
|
||||
|
||||
/* list gets empty! */
|
||||
*list= NULL;
|
||||
|
||||
} else if ( (*list) == pos ) {
|
||||
|
||||
/* removed current head */
|
||||
*list= (*list)->next;
|
||||
}
|
||||
|
||||
free( pos );
|
||||
|
||||
/*
|
||||
fprintf( stderr, "after OTF_FileManager_listUnlinkAtHead() %p found:\n", file );
|
||||
*/
|
||||
/*
|
||||
OTF_FileManager_listPrint( listHead, listTail );
|
||||
*/
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* not found */
|
||||
/*
|
||||
fprintf( stderr, "after OTF_FileManager_listUnlinkAtHead() %p not found:\n", file );
|
||||
*/
|
||||
/*
|
||||
OTF_FileManager_listPrint( listHead, listTail );
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int OTF_FileManager_listUnlinkAtTail( OTF_FileList** list, OTF_File* file ) {
|
||||
|
||||
|
||||
OTF_FileList* pos;
|
||||
|
||||
|
||||
if ( NULL == *list ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
pos= (*list)->prev;
|
||||
while ( ( pos != (*list) ) && ( pos->file != file ) ) {
|
||||
|
||||
pos= pos->prev;
|
||||
}
|
||||
|
||||
if ( pos->file == file ) {
|
||||
|
||||
/* found, unlink here */
|
||||
|
||||
pos->prev->next= pos->next;
|
||||
pos->next->prev= pos->prev;
|
||||
|
||||
if ( pos->next == pos ) {
|
||||
|
||||
/* list gets empty! */
|
||||
*list= NULL;
|
||||
|
||||
} else if ( (*list) == pos ) {
|
||||
|
||||
/* removed current head */
|
||||
*list= (*list)->next;
|
||||
}
|
||||
|
||||
free( pos );
|
||||
|
||||
/*
|
||||
fprintf( stderr, "after OTF_FileManager_listUnlinkAtHead() %p found:\n", file );
|
||||
*/
|
||||
/*
|
||||
OTF_FileManager_listPrint( listHead, listTail );
|
||||
*/
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* not found */
|
||||
/*
|
||||
fprintf( stderr, "after OTF_FileManager_listUnlinkAtTail():\n" );
|
||||
*/
|
||||
/*
|
||||
OTF_FileManager_listPrint( listHead, listTail );
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void OTF_FileManager_listPrint( OTF_FileList** list ) {
|
||||
|
||||
|
||||
OTF_FileList* pos;
|
||||
|
||||
|
||||
if ( NULL == *list ) {
|
||||
|
||||
fprintf( stderr, "empty list\n ----- \n" );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
pos= *list;
|
||||
|
||||
fprintf( stderr, "head: %p --> %p (%p %u)\n", (void*)pos,
|
||||
(void*)pos->next, (void*)pos->file,
|
||||
OTF_File_status( pos->file ) );
|
||||
while ( pos != (*list)->prev ) {
|
||||
|
||||
pos= pos->next;
|
||||
|
||||
fprintf( stderr, " %p --> %p (%p %u)\n", (void*)pos,
|
||||
(void*)pos->next, (void*)pos->file,
|
||||
OTF_File_status( pos->file ) );
|
||||
}
|
||||
|
||||
fprintf( stderr, " ----- \n" );
|
||||
}
|
||||
|
78
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_FileManager.h
Обычный файл
78
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_FileManager.h
Обычный файл
@ -0,0 +1,78 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_FileManager.h
|
||||
*
|
||||
* @brief Manages file handles.
|
||||
*
|
||||
* i.e. Opens, closes and suspends files, if there are not enough
|
||||
* filehandles available.
|
||||
*
|
||||
* \ingroup fm
|
||||
*/
|
||||
|
||||
/**
|
||||
* \defgroup fm File Manager Interface
|
||||
*
|
||||
* The file manager schedules an unlimited number OTF_Files to a limited
|
||||
* number of actual open OS files. Therefore all open are registered with
|
||||
* this manager. When a file is requested while no more OS files are
|
||||
* available any of the other files are suspended, i.i. the OS file is
|
||||
* closed.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_FILEMANAGER_H
|
||||
#define OTF_FILEMANAGER_H
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
|
||||
|
||||
struct struct_OTF_File;
|
||||
typedef struct struct_OTF_File OTF_File;
|
||||
|
||||
|
||||
struct struct_OTF_FileManager;
|
||||
/** file manager object \ingroup fm */
|
||||
typedef struct struct_OTF_FileManager OTF_FileManager;
|
||||
|
||||
|
||||
/** Generates a new file manager with a maximum number of files that are allowed
|
||||
to be open simultaneously. \ingroup fm */
|
||||
OTF_FileManager* OTF_FileManager_open( uint32_t number );
|
||||
|
||||
/** Closes the file manager \ingroup fm */
|
||||
void OTF_FileManager_close( OTF_FileManager* m );
|
||||
|
||||
/** Returns the number of files currently open. */
|
||||
uint32_t OTF_FileManager_getCount( OTF_FileManager* m );
|
||||
|
||||
/** Returns the numbner of files allowed to be open simultaneously. */
|
||||
uint32_t OTF_FileManager_getNumber( OTF_FileManager* m );
|
||||
|
||||
/** Sets the number of files allowed to be open simultaneously. */
|
||||
uint32_t OTF_FileManager_setNumber( OTF_FileManager* m, uint32_t number );
|
||||
|
||||
/** Ensure there is a free file handle available after this call.
|
||||
return 1 on success, 0 otherwise (which is not supposed to happen) */
|
||||
int OTF_FileManager_guaranteeFile( OTF_FileManager* m );
|
||||
|
||||
/** Registers the 'file' as open. Return 1 on success, 0 otherwise. */
|
||||
int OTF_FileManager_registerFile( OTF_FileManager* m, OTF_File* file );
|
||||
|
||||
/** Marks currently opened 'file' as used which is important for the
|
||||
scheduling strategy, i.e. the internal decision which file to suspend next.
|
||||
return 1 on success or 0 for an suspended file. */
|
||||
int OTF_FileManager_touchFile( OTF_FileManager* m, OTF_File* file );
|
||||
|
||||
/** Suspend an open file explicitly. this may be called externaly or
|
||||
internally. Return 1 on success, 0 otherwise. */
|
||||
int OTF_FileManager_suspendFile( OTF_FileManager* m, OTF_File* file );
|
||||
|
||||
|
||||
#endif /* OTF_FILEMANAGER_H */
|
||||
|
145
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Filenames.c
Обычный файл
145
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Filenames.c
Обычный файл
@ -0,0 +1,145 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IO_H
|
||||
#include <io.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* vs does not know F_OK*/
|
||||
#ifndef F_OK
|
||||
#define F_OK 00
|
||||
#endif
|
||||
|
||||
|
||||
#include "OTF_Filenames.h"
|
||||
|
||||
|
||||
|
||||
#define OTF_FILENAMESUFFIX_MAIN "otf"
|
||||
#define OTF_FILENAMESUFFIX_DEF "def"
|
||||
#define OTF_FILENAMESUFFIX_EVENTS "events"
|
||||
#define OTF_FILENAMESUFFIX_SNAPS "snaps"
|
||||
#define OTF_FILENAMESUFFIX_STATS "stats"
|
||||
|
||||
|
||||
char* OTF_getFilename( const char* namestub, uint32_t id, OTF_FileType type,
|
||||
unsigned int l, char* ret ) {
|
||||
|
||||
|
||||
if ( ( NULL == ret ) || ( 0 == l ) ) {
|
||||
|
||||
l= (unsigned int) strlen( namestub ) + 1 + 1 + 10 + 1 + 10 + 2; /* is this right ??? - at least it´s more than enough */
|
||||
ret= (char*) malloc( l * sizeof(char) );
|
||||
}
|
||||
|
||||
|
||||
switch ( type&OTF_FILETYPE_BITS ) {
|
||||
|
||||
case OTF_FILETYPE_MASTER:
|
||||
|
||||
/* mastercontrol file stays uncompressed even with compression */
|
||||
OTF_snprintf( ret, l, "%s.%s", namestub, OTF_FILENAMESUFFIX_MAIN );
|
||||
break;
|
||||
|
||||
case OTF_FILETYPE_GLOBAL_DEF:
|
||||
|
||||
OTF_snprintf( ret, l, "%s.%s%s", namestub, OTF_FILENAMESUFFIX_DEF,
|
||||
((type&OTF_FILECOMPRESSION_BITS) > 0 && (type&OTF_FILECOMPRESSION_BITS) <= 9 ) ? ".z" : "" );
|
||||
break;
|
||||
|
||||
case OTF_FILETYPE_DEF:
|
||||
|
||||
OTF_snprintf( ret, l, "%s.%x.%s%s", namestub, id, OTF_FILENAMESUFFIX_DEF,
|
||||
((type&OTF_FILECOMPRESSION_BITS) > 0 && (type&OTF_FILECOMPRESSION_BITS) <= 9 ) ? ".z" : "" );
|
||||
break;
|
||||
|
||||
case OTF_FILETYPE_EVENT:
|
||||
|
||||
OTF_snprintf( ret, l, "%s.%x.%s%s", namestub, id, OTF_FILENAMESUFFIX_EVENTS,
|
||||
((type&OTF_FILECOMPRESSION_BITS) > 0 && (type&OTF_FILECOMPRESSION_BITS) <= 9 ) ? ".z" : "" );
|
||||
break;
|
||||
|
||||
case OTF_FILETYPE_SNAPS:
|
||||
|
||||
OTF_snprintf( ret, l, "%s.%x.%s%s", namestub, id, OTF_FILENAMESUFFIX_SNAPS,
|
||||
((type&OTF_FILECOMPRESSION_BITS) > 0 && (type&OTF_FILECOMPRESSION_BITS) <= 9 ) ? ".z" : "" );
|
||||
break;
|
||||
|
||||
case OTF_FILETYPE_STATS:
|
||||
|
||||
OTF_snprintf( ret, l, "%s.%x.%s%s", namestub, id, OTF_FILENAMESUFFIX_STATS,
|
||||
((type&OTF_FILECOMPRESSION_BITS) > 0 && (type&OTF_FILECOMPRESSION_BITS) <= 9 ) ? ".z" : "" );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/** strip the a filename from the ".otf" suffix if present */
|
||||
char* OTF_stripFilename( const char* filename ) {
|
||||
|
||||
|
||||
char* ret= OTF_strdup( filename );
|
||||
char* p= ret;
|
||||
|
||||
if( NULL == p ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while ( '\0' != *p ) {
|
||||
|
||||
p++;
|
||||
}
|
||||
|
||||
p -= 4;
|
||||
|
||||
if ( 0 == strcmp( p, "."OTF_FILENAMESUFFIX_MAIN ) ) {
|
||||
|
||||
*p= '\0';
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int OTF_fileExists( const char* filename ) {
|
||||
|
||||
if ( 0 == access( filename, F_OK ) ) {
|
||||
|
||||
return 1;
|
||||
|
||||
} else {
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
62
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Filenames.h
Обычный файл
62
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Filenames.h
Обычный файл
@ -0,0 +1,62 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_Filenames.h
|
||||
*
|
||||
* @brief Handles file naming issues.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_FILENAMES
|
||||
#define OTF_FILENAMES
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
#include "OTF_Definitions.h"
|
||||
|
||||
|
||||
/*#define OTF_FILETYPE_MASTER 0
|
||||
#define OTF_FILETYPE_GLOBAL_DEF 1
|
||||
#define OTF_FILETYPE_DEF 2
|
||||
#define OTF_FILETYPE_EVENT 3
|
||||
#define OTF_FILETYPE_SNAPS 4
|
||||
#define OTF_FILETYPE_STATS 5*/
|
||||
#define OTF_FILETYPE_MASTER 16
|
||||
#define OTF_FILETYPE_GLOBAL_DEF 32
|
||||
#define OTF_FILETYPE_DEF 64
|
||||
#define OTF_FILETYPE_EVENT 128
|
||||
#define OTF_FILETYPE_SNAPS 256
|
||||
#define OTF_FILETYPE_STATS 512
|
||||
#define OTF_FILETYPE_BITS (16+32+64+128+256+512)
|
||||
typedef uint32_t OTF_FileType;
|
||||
|
||||
/* zlevel has to be 0-9 */
|
||||
#define OTF_FILECOMPRESSION_UNCOMPRESSED 0
|
||||
/* default compression level */
|
||||
#define OTF_FILECOMPRESSION_COMPRESSED 4
|
||||
#define OTF_FILECOMPRESSION_BITS (1+2+4+8)
|
||||
typedef uint32_t OTF_FileCompression;
|
||||
|
||||
|
||||
/** provide a name stub, a stream id and the type of file.
|
||||
the function will create the proper filename in 'ret'. ret may be
|
||||
pre-allocated with length 'l' or NULL with 'l=0'. in the latter case
|
||||
memory is allocated via malloc internally but has to be freed later on.
|
||||
on success the resulting string is returned, return NULL indicates an error. */
|
||||
char* OTF_getFilename( const char* namestub, uint32_t id, OTF_FileType type,
|
||||
unsigned int l, char* ret );
|
||||
|
||||
|
||||
/** strip the a filename from the ".otf" suffix if present */
|
||||
char* OTF_stripFilename( const char* filename );
|
||||
|
||||
|
||||
/** DEPRICATED Check whether a file exists or not. Return 1 on success. */
|
||||
int OTF_fileExists( const char* filename );
|
||||
|
||||
#endif /* OTF_FILENAMES */
|
395
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_HandlerArray.c
Обычный файл
395
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_HandlerArray.c
Обычный файл
@ -0,0 +1,395 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
#include "OTF_HandlerArray.h"
|
||||
#include "OTF_Definitions.h"
|
||||
#include "OTF_CopyHandler.h"
|
||||
|
||||
|
||||
/** Constructor - internal use only */
|
||||
int OTF_HandlerArray_init( OTF_HandlerArray* handlers );
|
||||
|
||||
/** Destructor - internal use only */
|
||||
int OTF_HandlerArray_finish( OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
|
||||
int OTF_HandlerArray_init( OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
uint32_t i;
|
||||
|
||||
|
||||
for ( i = 0; i < OTF_NRECORDS; ++i ) {
|
||||
|
||||
handlers->pointer[i] = NULL;
|
||||
handlers->firsthandlerarg[i] = NULL;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_HandlerArray_finish( OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
free( handlers->pointer );
|
||||
free( handlers->firsthandlerarg );
|
||||
|
||||
handlers->pointer = NULL;
|
||||
handlers->firsthandlerarg = NULL;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
OTF_HandlerArray* OTF_HandlerArray_open() {
|
||||
|
||||
|
||||
OTF_HandlerArray* ret;
|
||||
|
||||
ret = (OTF_HandlerArray*) malloc( sizeof( OTF_HandlerArray ) );
|
||||
if( NULL == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ret->pointer = (OTF_FunctionPointer**) malloc(
|
||||
OTF_NRECORDS * sizeof( OTF_FunctionPointer* ) );
|
||||
if( NULL == ret->pointer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
free( ret );
|
||||
ret= NULL;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ret->firsthandlerarg = (void**) malloc( OTF_NRECORDS * sizeof( void* ) );
|
||||
if( NULL == ret->firsthandlerarg ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
free( ret->pointer );
|
||||
ret->pointer= NULL;
|
||||
free( ret );
|
||||
ret= NULL;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_HandlerArray_init( ret );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int OTF_HandlerArray_close( OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
if( NULL == handlers ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"handlers have not been specified.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
OTF_HandlerArray_finish( handlers );
|
||||
|
||||
free( handlers );
|
||||
handlers = NULL;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_HandlerArray_setHandler( OTF_HandlerArray* handlers,
|
||||
OTF_FunctionPointer* pointer, uint32_t recordtype ) {
|
||||
|
||||
|
||||
if( recordtype >= OTF_NRECORDS ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"unknown record type %u.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, recordtype );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
handlers->pointer[recordtype] = pointer;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_HandlerArray_setFirstHandlerArg( OTF_HandlerArray* handlers,
|
||||
void* firsthandlerarg, uint32_t recordtype ) {
|
||||
|
||||
|
||||
if( recordtype >= OTF_NRECORDS ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"unknown record type %u.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, recordtype );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
handlers->firsthandlerarg[recordtype] = firsthandlerarg;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_HandlerArray_getCopyHandler( OTF_HandlerArray* handlers,
|
||||
OTF_Writer* writer ) {
|
||||
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefinitionComment,
|
||||
OTF_DEFINITIONCOMMENT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFINITIONCOMMENT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefinitionComment,
|
||||
OTF_DEFINITIONCOMMENT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFINITIONCOMMENT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefTimerResolution,
|
||||
OTF_DEFTIMERRESOLUTION_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFTIMERRESOLUTION_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefProcess,
|
||||
OTF_DEFPROCESS_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFPROCESS_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefProcessGroup,
|
||||
OTF_DEFPROCESSGROUP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFPROCESSGROUP_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefFunction,
|
||||
OTF_DEFFUNCTION_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFFUNCTION_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefFunctionGroup,
|
||||
OTF_DEFFUNCTIONGROUP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFFUNCTIONGROUP_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefCollectiveOperation,
|
||||
OTF_DEFCOLLOP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFCOLLOP_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefCounter,
|
||||
OTF_DEFCOUNTER_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFCOUNTER_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefCounterGroup,
|
||||
OTF_DEFCOUNTERGROUP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFCOUNTERGROUP_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefScl,
|
||||
OTF_DEFSCL_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFSCL_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefSclFile,
|
||||
OTF_DEFSCLFILE_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFSCLFILE_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefCreator,
|
||||
OTF_DEFCREATOR_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFCREATOR_RECORD );
|
||||
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefFile,
|
||||
OTF_DEFFILE_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFFILE_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_DefFileGroup,
|
||||
OTF_DEFFILEGROUP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_DEFFILEGROUP_RECORD );
|
||||
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_Enter,
|
||||
OTF_ENTER_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_ENTER_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_Leave,
|
||||
OTF_LEAVE_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_LEAVE_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_SendMsg,
|
||||
OTF_SEND_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_SEND_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_RecvMsg,
|
||||
OTF_RECEIVE_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_RECEIVE_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_Counter,
|
||||
OTF_COUNTER_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_COUNTER_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_CollectiveOperation,
|
||||
OTF_COLLOP_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_COLLOP_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_EventComment,
|
||||
OTF_EVENTCOMMENT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_EVENTCOMMENT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_BeginProcess,
|
||||
OTF_BEGINPROCESS_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_BEGINPROCESS_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_EndProcess,
|
||||
OTF_ENDPROCESS_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_ENDPROCESS_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_FileOperation,
|
||||
OTF_FILEOPERATION_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_FILEOPERATION_RECORD );
|
||||
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_SnapshotComment,
|
||||
OTF_SNAPSHOTCOMMENT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_SNAPSHOTCOMMENT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_EnterSnapshot,
|
||||
OTF_ENTERSNAPSHOT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_ENTERSNAPSHOT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_SendSnapshot,
|
||||
OTF_SENDSNAPSHOT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_SENDSNAPSHOT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_OpenFileSnapshot,
|
||||
OTF_OPENFILESNAPSHOT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_OPENFILESNAPSHOT_RECORD );
|
||||
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_SummaryComment,
|
||||
OTF_SUMMARYCOMMENT_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_SUMMARYCOMMENT_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_FunctionSummary,
|
||||
OTF_FUNCTIONSUMMARY_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_FUNCTIONSUMMARY_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_FunctionGroupSummary,
|
||||
OTF_FUNCTIONGROUPSUMMARY_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_FUNCTIONGROUPSUMMARY_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_MessageSummary,
|
||||
OTF_MESSAGESUMMARY_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_MESSAGESUMMARY_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_FileOperationSummary,
|
||||
OTF_FILEOPERATIONSUMMARY_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_FILEOPERATIONSUMMARY_RECORD );
|
||||
|
||||
OTF_HandlerArray_setHandler( handlers,
|
||||
(OTF_FunctionPointer*) OTF_CopyHandler_FileGroupOperationSummary,
|
||||
OTF_FILEGROUPOPERATIONSUMMARY_RECORD );
|
||||
OTF_HandlerArray_setFirstHandlerArg( handlers, writer,
|
||||
OTF_FILEGROUPOPERATIONSUMMARY_RECORD );
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
1062
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_HandlerArray.h
Обычный файл
1062
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_HandlerArray.h
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
332
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Keywords.h
Обычный файл
332
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Keywords.h
Обычный файл
@ -0,0 +1,332 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_Keywords.h
|
||||
*
|
||||
* @brief All record format keywords are located in this file.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_KEYWORDS_H
|
||||
#define OTF_KEYWORDS_H
|
||||
|
||||
/*
|
||||
|
||||
define all record format keywords here in order to have a single
|
||||
spot for them.
|
||||
|
||||
the keywords identifying record types must follow some special rules:
|
||||
|
||||
1) all keywords are UPPER CASE
|
||||
|
||||
2) no keyword must be equal to another keyword, prefixes are allowed though
|
||||
|
||||
3) all definition records and only them have the prefix "DEF" or "D"
|
||||
|
||||
4) all summary records and only them have the prefix "SUM" or "S"
|
||||
|
||||
5) all status records and only them have the prefix "T" (better ideas?)
|
||||
|
||||
7) the prefixes for definition, summary resp. status record types are
|
||||
extra, the don't go into the specific definitions - see below
|
||||
|
||||
8) there is always a long and a short version for every keyword marked with
|
||||
_L_ and _S_. both versions might be equal, but always they have the
|
||||
same first letter given by an additional macro marked with _F_
|
||||
|
||||
- white spaces after the keyword should be included in the keyword
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* *** general keywords *** */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_PROCESS_CHAR '*'
|
||||
|
||||
|
||||
/* *** definition record keywords *** */
|
||||
|
||||
#define OTF_KEYWORD_L_DEF_PREFIX "DEF"
|
||||
#define OTF_KEYWORD_S_DEF_PREFIX "D"
|
||||
|
||||
#define OTF_KEYWORD_L_DEFTIMERRESOLUTION "TIMERRESOLUTION"
|
||||
#define OTF_KEYWORD_S_DEFTIMERRESOLUTION "TR"
|
||||
#define OTF_KEYWORD_F_DEFTIMERRESOLUTION 'T'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFPROCESS "PROCESS"
|
||||
#define OTF_KEYWORD_S_DEFPROCESS "P"
|
||||
#define OTF_KEYWORD_F_DEFPROCESS 'P'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFPROCESSGROUP "PROCESSGROUP"
|
||||
#define OTF_KEYWORD_S_DEFPROCESSGROUP "PG"
|
||||
#define OTF_KEYWORD_F_DEFPROCESSGROUP 'P'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFFUNCTION "FUNCTION"
|
||||
#define OTF_KEYWORD_S_DEFFUNCTION "F"
|
||||
#define OTF_KEYWORD_F_DEFFUNCTION 'F'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFFUNCTIONGROUP "FUNCTIONGROUP"
|
||||
#define OTF_KEYWORD_S_DEFFUNCTIONGROUP "FG"
|
||||
#define OTF_KEYWORD_F_DEFFUNCTIONGROUP 'F'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFCOLLOP "COLLOP"
|
||||
#define OTF_KEYWORD_S_DEFCOLLOP "CO"
|
||||
#define OTF_KEYWORD_F_DEFCOLLOP 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFCOUNTER "COUNTER"
|
||||
#define OTF_KEYWORD_S_DEFCOUNTER "CNT"
|
||||
#define OTF_KEYWORD_F_DEFCOUNTER 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFCOUNTERGROUP "COUNTERGROUP"
|
||||
#define OTF_KEYWORD_S_DEFCOUNTERGROUP "CG"
|
||||
#define OTF_KEYWORD_F_DEFCOUNTERGROUP 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFINITIONCOMMENT "COMMENT"
|
||||
#define OTF_KEYWORD_S_DEFINITIONCOMMENT "CMT"
|
||||
#define OTF_KEYWORD_F_DEFINITIONCOMMENT 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFSCL "SCL"
|
||||
#define OTF_KEYWORD_S_DEFSCL "S"
|
||||
#define OTF_KEYWORD_F_DEFSCL 'S'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFSCLFILE "SCLFILE"
|
||||
#define OTF_KEYWORD_S_DEFSCLFILE "SF"
|
||||
#define OTF_KEYWORD_F_DEFSCLFILE 'S'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFVERSION "VERSION"
|
||||
#define OTF_KEYWORD_S_DEFVERSION "V"
|
||||
#define OTF_KEYWORD_F_DEFVERSION 'V'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFCREATOR "CREATOR"
|
||||
#define OTF_KEYWORD_S_DEFCREATOR "CR"
|
||||
#define OTF_KEYWORD_F_DEFCREATOR 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFFILE "FILE"
|
||||
#define OTF_KEYWORD_S_DEFFILE "FL"
|
||||
#define OTF_KEYWORD_F_DEFFILE 'F'
|
||||
|
||||
#define OTF_KEYWORD_L_DEFFILEGROUP "FILEGROUP"
|
||||
#define OTF_KEYWORD_S_DEFFILEGROUP "FLG"
|
||||
#define OTF_KEYWORD_F_DEFFILEGROUP 'F'
|
||||
|
||||
|
||||
/* *** event record keywords *** */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_L_ENTER "ENTER"
|
||||
#define OTF_KEYWORD_S_ENTER "E"
|
||||
#define OTF_KEYWORD_F_ENTER 'E'
|
||||
|
||||
#define OTF_KEYWORD_L_LEAVE "LEAVE"
|
||||
#define OTF_KEYWORD_S_LEAVE "L"
|
||||
#define OTF_KEYWORD_F_LEAVE 'L'
|
||||
|
||||
#define OTF_KEYWORD_L_RECEIVE "RECEIVE"
|
||||
#define OTF_KEYWORD_S_RECEIVE "R"
|
||||
#define OTF_KEYWORD_F_RECEIVE 'R'
|
||||
|
||||
#define OTF_KEYWORD_L_SEND "SEND"
|
||||
#define OTF_KEYWORD_S_SEND "S"
|
||||
#define OTF_KEYWORD_F_SEND 'S'
|
||||
|
||||
#define OTF_KEYWORD_L_COUNTER "COUNTER"
|
||||
#define OTF_KEYWORD_S_COUNTER "CNT"
|
||||
#define OTF_KEYWORD_F_COUNTER 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_COLLECTIVEOPERATION "COLLOP"
|
||||
#define OTF_KEYWORD_S_COLLECTIVEOPERATION "COP"
|
||||
#define OTF_KEYWORD_F_COLLECTIVEOPERATION 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_EVENTCOMMENT "#EVTCOMMENT"
|
||||
#define OTF_KEYWORD_S_EVENTCOMMENT "#"
|
||||
#define OTF_KEYWORD_F_EVENTCOMMENT '#'
|
||||
|
||||
#define OTF_KEYWORD_L_BEGINPROCESS "PROCESSBEGIN"
|
||||
#define OTF_KEYWORD_S_BEGINPROCESS "PB"
|
||||
#define OTF_KEYWORD_F_BEGINPROCESS 'P'
|
||||
|
||||
#define OTF_KEYWORD_L_ENDPROCESS "PROCESSEND"
|
||||
#define OTF_KEYWORD_S_ENDPROCESS "PE"
|
||||
#define OTF_KEYWORD_F_ENDPROCESS 'P'
|
||||
|
||||
#define OTF_KEYWORD_L_FILEOPERATION "FILEOP"
|
||||
#define OTF_KEYWORD_S_FILEOPERATION "F"
|
||||
#define OTF_KEYWORD_F_FILEOPERATION 'F'
|
||||
|
||||
|
||||
/* *** summary record keywords *** */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_L_SUM_PREFIX "SUM"
|
||||
#define OTF_KEYWORD_S_SUM_PREFIX "S"
|
||||
#define OTF_KEYWORD_F_SUM_PREFIX 'S'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMFUNCTION "FUNCTION"
|
||||
#define OTF_KEYWORD_S_SUMFUNCTION "F"
|
||||
#define OTF_KEYWORD_F_SUMFUNCTION 'F'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMFUNCTIONGROUP "FUNCTIONGROUP"
|
||||
#define OTF_KEYWORD_S_SUMFUNCTIONGROUP "G"
|
||||
#define OTF_KEYWORD_F_SUMFUNCTIONGROUP 'G'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMMESSAGE "MESSAGE"
|
||||
#define OTF_KEYWORD_S_SUMMESSAGE "M"
|
||||
#define OTF_KEYWORD_F_SUMMESSAGE 'M'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMCOMMENT "COMMENT"
|
||||
#define OTF_KEYWORD_S_SUMCOMMENT "C"
|
||||
#define OTF_KEYWORD_F_SUMCOMMENT 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMFILEOPERATION "FILEOPERATION"
|
||||
#define OTF_KEYWORD_S_SUMFILEOPERATION "FL"
|
||||
#define OTF_KEYWORD_F_SUMFILEOPERATION 'F'
|
||||
|
||||
#define OTF_KEYWORD_L_SUMFILEGROUPOPERATION "FILEGROUPOPERATION"
|
||||
#define OTF_KEYWORD_S_SUMFILEGROUPOPERATION "FLG"
|
||||
#define OTF_KEYWORD_F_SUMFILEGROUPOPERATION 'F'
|
||||
|
||||
/* *** status record keywords *** */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_L_STATUS_PREFIX "T"
|
||||
#define OTF_KEYWORD_S_STATUS_PREFIX "T"
|
||||
|
||||
|
||||
/* *** snapshot keywords */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_L_SNAPSHOT_PREFIX "T"
|
||||
#define OTF_KEYWORD_S_SNAPSHOT_PREFIX "T"
|
||||
#define OTF_KEYWORD_F_SNAPSHOT_PREFIX 'T'
|
||||
|
||||
#define OTF_KEYWORD_L_SNAPSHOT_ENTER "ENTER"
|
||||
#define OTF_KEYWORD_S_SNAPSHOT_ENTER "E"
|
||||
#define OTF_KEYWORD_F_SNAPSHOT_ENTER 'E'
|
||||
|
||||
#define OTF_KEYWORD_L_SNAPSHOT_SEND "SEND"
|
||||
#define OTF_KEYWORD_S_SNAPSHOT_SEND "S"
|
||||
#define OTF_KEYWORD_F_SNAPSHOT_SEND 'S'
|
||||
|
||||
#define OTF_KEYWORD_L_SNAPSHOT_COMMENT "COMMENT"
|
||||
#define OTF_KEYWORD_S_SNAPSHOT_COMMENT "C"
|
||||
#define OTF_KEYWORD_F_SNAPSHOT_COMMENT 'C'
|
||||
|
||||
#define OTF_KEYWORD_L_SNAPSHOT_OPENFILE "OPENFILE"
|
||||
#define OTF_KEYWORD_S_SNAPSHOT_OPENFILE "OF"
|
||||
#define OTF_KEYWORD_F_SNAPSHOT_OPENFILE 'O'
|
||||
|
||||
|
||||
/* *** local keywords *** */
|
||||
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_BYTES "BYTES"
|
||||
#define OTF_KEYWORD_S_LOCAL_BYTES "B"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_BYTESREAD "BYTESREAD"
|
||||
#define OTF_KEYWORD_S_LOCAL_BYTESREAD "BR"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_BYTESWRITE "BYTESWRITE"
|
||||
#define OTF_KEYWORD_S_LOCAL_BYTESWRITE "BW"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_COMMUNICATOR "COMM"
|
||||
#define OTF_KEYWORD_S_LOCAL_COMMUNICATOR "C"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_COUNT "COUNT"
|
||||
#define OTF_KEYWORD_S_LOCAL_COUNT "N"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_DURATION "DUR"
|
||||
#define OTF_KEYWORD_S_LOCAL_DURATION "D"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_EXCLTIME "EXCL"
|
||||
#define OTF_KEYWORD_S_LOCAL_EXCLTIME "E"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_FILE "FILE"
|
||||
#define OTF_KEYWORD_S_LOCAL_FILE "F"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_GROUP "GROUP"
|
||||
#define OTF_KEYWORD_S_LOCAL_GROUP "G"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_HANDLEID "HANDLEID"
|
||||
#define OTF_KEYWORD_S_LOCAL_HANDLEID "H"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_INCLTIME "INCL"
|
||||
#define OTF_KEYWORD_S_LOCAL_INCLTIME "I"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_LENGTH "LEN"
|
||||
#define OTF_KEYWORD_S_LOCAL_LENGTH "L"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_LINE "LINE"
|
||||
#define OTF_KEYWORD_S_LOCAL_LINE "LN"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_MEMBERS "MEMBERS"
|
||||
#define OTF_KEYWORD_S_LOCAL_MEMBERS "M"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NAME "NAME"
|
||||
#define OTF_KEYWORD_S_LOCAL_NAME "NM"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERSENT "NUMSENT"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERSENT "NS"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERCLOSE "NUMCLOSE"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERCLOSE "NC"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERREAD "NUMREAD"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERREAD "NRD"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERRECVD "NUMRECVD"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERRECVD "NR"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERSEEK "NUMSEEK"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERSEEK "NSK"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBEROPEN "NUMOPEN"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBEROPEN "NO"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_NUMBERWRITE "NUMWRITTEN"
|
||||
#define OTF_KEYWORD_S_LOCAL_NUMBERWRITE "NW"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_OPERATION "OPERATION"
|
||||
#define OTF_KEYWORD_S_LOCAL_OPERATION "OP"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_OTIME "OTIME"
|
||||
#define OTF_KEYWORD_S_LOCAL_OTIME "O"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_PARENT "PARENT"
|
||||
#define OTF_KEYWORD_S_LOCAL_PARENT "PT"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_PROPERTIES "PROPERTIES"
|
||||
#define OTF_KEYWORD_S_LOCAL_PROPERTIES "P"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_RECVD "RECVD"
|
||||
#define OTF_KEYWORD_S_LOCAL_RECVD "R"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_ROOT "ROOT"
|
||||
#define OTF_KEYWORD_S_LOCAL_ROOT "RT"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_SCL "SCL"
|
||||
#define OTF_KEYWORD_S_LOCAL_SCL "X"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_SENT "SENT"
|
||||
#define OTF_KEYWORD_S_LOCAL_SENT "S"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_TAG "TAG"
|
||||
#define OTF_KEYWORD_S_LOCAL_TAG "T"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_TYPE "TYPE"
|
||||
#define OTF_KEYWORD_S_LOCAL_TYPE "Y"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_UNIT "UNIT"
|
||||
#define OTF_KEYWORD_S_LOCAL_UNIT "U"
|
||||
|
||||
#define OTF_KEYWORD_L_LOCAL_VALUE "VALUE"
|
||||
#define OTF_KEYWORD_S_LOCAL_VALUE "V"
|
||||
|
||||
|
||||
|
||||
#endif /* OTF_KEYWORDS_H */
|
1012
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_MasterControl.c
Обычный файл
1012
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_MasterControl.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
455
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_MasterControl.h
Обычный файл
455
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_MasterControl.h
Обычный файл
@ -0,0 +1,455 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_MasterControl.h
|
||||
*
|
||||
* @brief Provides access to process-stream-mapping, which are located in
|
||||
* .otf files.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
|
||||
/** \defgroup mc Master Control Interface
|
||||
*
|
||||
* This interface is dedicated to managing master control files ( *.otf )
|
||||
* A master control file contains a mapping from process streams
|
||||
* to processes and vice versa.
|
||||
*
|
||||
* \section mc_example A simple Example
|
||||
*
|
||||
* This is example will create a simple mapping and read it again to
|
||||
* show how reading and writing works with the master control file.
|
||||
*
|
||||
* The need for creating your own master control file arises when you are not
|
||||
* using the highlevel reader/writer, but the stream reader/writer.
|
||||
*
|
||||
*
|
||||
* \code
|
||||
* #include <otf.h>
|
||||
* #include <stdio.h>
|
||||
* #include <assert.h>
|
||||
*
|
||||
* int main( int argc, char** argv ) {
|
||||
* \endcode
|
||||
*
|
||||
* Declare a couple of variables.
|
||||
* \code
|
||||
* uint32_t streamcount;
|
||||
* uint32_t a;
|
||||
* uint32_t i;
|
||||
* OTF_MapEntry* entry;
|
||||
* OTF_FileManager* manager;
|
||||
* OTF_MasterControl* mc;
|
||||
* \endcode
|
||||
*
|
||||
* Initialize the file manager and the mastercontrol.
|
||||
* \code
|
||||
* manager= OTF_FileManager_open( 100 );
|
||||
* assert( manager );
|
||||
*
|
||||
* mc = OTF_MasterControl_new( manager );
|
||||
* \endcode
|
||||
*
|
||||
* Add four processes (100,101,102,103) to two streams (1,2)
|
||||
* \code
|
||||
* OTF_MasterControl_append( mc, 1, 100 );
|
||||
* OTF_MasterControl_append( mc, 1, 101 );
|
||||
* OTF_MasterControl_append( mc, 2, 102 );
|
||||
* OTF_MasterControl_append( mc, 2, 103 );
|
||||
* \endcode
|
||||
*
|
||||
* Write everything to the file "mytrace.otf"
|
||||
* and close the master control.
|
||||
* \code
|
||||
* OTF_MasterControl_write( mc, "mytrace" );
|
||||
* OTF_MasterControl_close( mc );
|
||||
* \endcode
|
||||
*
|
||||
* Now initialize the master control structure and read the
|
||||
* newly written master control file.
|
||||
* \code
|
||||
* mc = OTF_MasterControl_new( manager );
|
||||
* OTF_MasterControl_read( mc, "mytrace" );
|
||||
* \endcode
|
||||
*
|
||||
* Visit all stream-process pairs and print them out
|
||||
* \code
|
||||
* streamcount = OTF_MasterControl_getCount( mc );
|
||||
*
|
||||
* for( i = 0; i < streamcount; ++i ) {
|
||||
* entry = OTF_MasterControl_getEntryByIndex( mc, i );
|
||||
* for( a = 0; a < entry->n; ++a ) {
|
||||
* printf( " stream %u contains process %u\n", entry->argument,
|
||||
* entry->values[a] );
|
||||
* }
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Clean everything up before exiting the program
|
||||
* \code
|
||||
* OTF_MasterControl_close( mc );
|
||||
*
|
||||
*
|
||||
* return 0;
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Compile this using $ gcc -o test test.c `otfconfig --libs`.
|
||||
*
|
||||
* The program will show this output:
|
||||
* \verbatim
|
||||
* stream 1 contains process 100
|
||||
* stream 1 contains process 101
|
||||
* stream 2 contains process 102
|
||||
* stream 2 contains process 103 \endverbatim
|
||||
*
|
||||
* */
|
||||
|
||||
#ifndef OTF_MASTERCONTROL_H
|
||||
#define OTF_MASTERCONTROL_H
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
|
||||
|
||||
#include "OTF_File.h"
|
||||
#include "OTF_Filenames.h"
|
||||
#include "OTF_WBuffer.h"
|
||||
#include "OTF_RBuffer.h"
|
||||
|
||||
|
||||
/** entry for 1:n mapping */
|
||||
struct struct_OTF_MapEntry {
|
||||
|
||||
/** Unique argument ids. (stream ids) */
|
||||
uint32_t argument;
|
||||
|
||||
/** Current number of entries in 'values'. */
|
||||
uint32_t n;
|
||||
|
||||
/** Current size of array 'values'. */
|
||||
uint32_t s;
|
||||
|
||||
/** List of size 's' containing 'n' sorted entries of unique value ids
|
||||
(process ids). */
|
||||
uint32_t* values;
|
||||
};
|
||||
/** entry for 1:n mapping \ingroup mc */
|
||||
typedef struct struct_OTF_MapEntry OTF_MapEntry;
|
||||
|
||||
|
||||
/** entry for 1:1 mapping */
|
||||
struct struct_OTF_Pair {
|
||||
|
||||
uint32_t argument;
|
||||
uint32_t value;
|
||||
};
|
||||
/** entry for 1:1 mapping \ingroup mc */
|
||||
typedef struct struct_OTF_Pair OTF_Pair;
|
||||
|
||||
|
||||
/** Data structure that collects the information about which stream contains
|
||||
which parts of a multi-file trace. This is supposed to be an 1:1 copy of
|
||||
the information in the master control file. */
|
||||
struct struct_OTF_MasterControl {
|
||||
|
||||
|
||||
/** Current number of entries in 'map'. */
|
||||
uint32_t n;
|
||||
|
||||
/** Current size of array 'map'. */
|
||||
uint32_t s;
|
||||
|
||||
/** Mapping from stream ids (argument) to process ids (values).
|
||||
1:n mapping since a stream can contain multiple processes.
|
||||
This mapping is the authoritative source as listed in the master
|
||||
control file. */
|
||||
OTF_MapEntry* map;
|
||||
|
||||
|
||||
/** Current number of entries in 'rmap'. */
|
||||
uint32_t rn;
|
||||
|
||||
/** Current size of array 'rmap'. */
|
||||
uint32_t rs;
|
||||
|
||||
/** Reverse mapping to 'map'. this is an 1:1 mapping since every
|
||||
process belongs to exactly one stream.
|
||||
This recursive mapping is to be derived from the authoritative source
|
||||
in 'map'. */
|
||||
OTF_Pair* rmap;
|
||||
|
||||
/** file handle manager */
|
||||
OTF_FileManager* manager;
|
||||
};
|
||||
/** master control object. This object contains all information of the master
|
||||
* control file. \ingroup mc */
|
||||
typedef struct struct_OTF_MasterControl OTF_MasterControl;
|
||||
|
||||
|
||||
/**
|
||||
* Creates an empty OTF_MasterControl object.
|
||||
* The returned object must be freed by OTF_MasterControl_close().
|
||||
*
|
||||
* @param manager File handle manager.
|
||||
*
|
||||
* @return newly created master control object
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
OTF_MasterControl* OTF_MasterControl_new( OTF_FileManager* manager );
|
||||
|
||||
|
||||
/**
|
||||
* INTERFACE CHANGED!
|
||||
* Read a master control file according to namestub, reset the _existing_
|
||||
* OTF_MasterControl structure and fill it according to the file.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
int OTF_MasterControl_read(OTF_MasterControl* mc, const char* namestub );
|
||||
|
||||
|
||||
/** Destructor, delete OTF_MasterControl object. DEPRECATED \ingroup mc*/
|
||||
void OTF_MasterControl_finish( OTF_MasterControl* mc );
|
||||
|
||||
/**
|
||||
* Deletes a OTF_MasterControl object.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
void OTF_MasterControl_close( OTF_MasterControl* mc );
|
||||
|
||||
/**
|
||||
* Append the mapping argument -> value to the master control structure,
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param argument Represents the stream identifier.
|
||||
* @param value Represents the process identifier.
|
||||
*
|
||||
* @return 1 on sucess, 0 if an error occurs (e.g. the new pair
|
||||
* conflicts with the current mapping).
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
int OTF_MasterControl_append( OTF_MasterControl* mc,
|
||||
uint32_t argument, uint32_t value );
|
||||
|
||||
|
||||
/**
|
||||
* Append the mapping argument -> ( list of l values ) to the master control
|
||||
* structure. This is equal to calling 'OTF_MasterControl_append()' with every
|
||||
* value in list separately.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param argument Represents the stream identifier.
|
||||
* @param l Number of elements in the value array.
|
||||
* @param values Array of process identifiers belonging to the stream.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs (e.g. the new entries
|
||||
* conflict with the current mapping).
|
||||
*
|
||||
*
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
int OTF_MasterControl_appendList( OTF_MasterControl* mc, uint32_t argument,
|
||||
uint32_t l, uint32_t* values );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the argument to the given value. If no mapping was defined
|
||||
* make up a new one.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param value Represents the process identifier.
|
||||
*
|
||||
* @return Argument to which the value belongs to.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t OTF_MasterControl_mapReverse( OTF_MasterControl* mc, uint32_t value );
|
||||
|
||||
|
||||
/**
|
||||
* Writes a master control file with the current contents of the given
|
||||
* object.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param namestub File name prefix which.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
int OTF_MasterControl_write( OTF_MasterControl* mc, const char* namestub );
|
||||
|
||||
|
||||
/**
|
||||
* Checks if the current mapping is consistent in itself.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* @return 1 on success, 0 if the mapping is not consistent in itself.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
int OTF_MasterControl_check( OTF_MasterControl* mc );
|
||||
|
||||
|
||||
/**
|
||||
* Prints the mapping to stderr.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
void OTF_MasterControl_print( OTF_MasterControl* mc );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the entry for the given argument.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param argument Represents the stream identifier.
|
||||
*
|
||||
* @return The map entry belonging to the argument, or NULL if an error
|
||||
* occurs.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
OTF_MapEntry* OTF_MasterControl_getEntry( OTF_MasterControl* mc,
|
||||
uint32_t argument );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the entry for the given index.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param index Index of the entry to return.
|
||||
*
|
||||
* @return The map entry belonging to the index, or NULL if the index
|
||||
* exceeds the mapping.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
OTF_MapEntry* OTF_MasterControl_getEntryByIndex( OTF_MasterControl* mc,
|
||||
uint32_t index );
|
||||
|
||||
|
||||
/**
|
||||
* Returns a pair of value and argument for the given index.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param index Index of the pair in the reverse mapping.
|
||||
*
|
||||
* @return Pair of value and argument belonging
|
||||
* to the index, or NULL if the index exceeds the reverse
|
||||
* mapping.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
OTF_Pair* OTF_MasterControl_getREntryByIndex( OTF_MasterControl* mc,
|
||||
uint32_t index );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the number of arguments in the current list.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* @return Number of entrys in the current list.
|
||||
* (equals the number of streams)
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t OTF_MasterControl_getCount( OTF_MasterControl* mc );
|
||||
|
||||
/**
|
||||
* Returns the number of arguments in current reverse list.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* @return Number of entrys in the current reverse list.
|
||||
* (equals the number of processes)
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t OTF_MasterControl_getrCount( OTF_MasterControl* mc );
|
||||
|
||||
/**
|
||||
* Returns the number of values for the given argument.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param argument Represents the stream identifier.
|
||||
*
|
||||
* @return Number of values for the given argument, or
|
||||
* 0 if the argument is unknown.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t OTF_MasterControl_getValueCount( OTF_MasterControl* mc,
|
||||
uint32_t argument );
|
||||
|
||||
|
||||
/**
|
||||
* Returns a pointer to the value array for 'argument'. Get size of list with
|
||||
* 'OTF_MasterControl_getValueCount()'.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
* @param argument Represents the stream identifier.
|
||||
*
|
||||
* @return Pointer to the value array for 'argument', or NULL if an
|
||||
* error occurs.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t* OTF_MasterControl_getValues( OTF_MasterControl* mc,
|
||||
uint32_t argument );
|
||||
|
||||
|
||||
/**
|
||||
* Returns a previously unused argument. Of course, one cannot avoid
|
||||
* collisions with arguments explicitly defined later on.
|
||||
*
|
||||
* @param mc Pointer to an initialized OTF_Mastercontrol object. See also
|
||||
* OTF_MasterControl_new().
|
||||
*
|
||||
* @return Unused argument.
|
||||
*
|
||||
* \ingroup mc
|
||||
*/
|
||||
uint32_t OTF_MasterControl_getNewStreamId( OTF_MasterControl* mc );
|
||||
|
||||
|
||||
#endif /* OTF_MASTERCONTROL_H */
|
||||
|
3169
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Parse.c
Обычный файл
3169
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Parse.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
53
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Parse.h
Обычный файл
53
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Parse.h
Обычный файл
@ -0,0 +1,53 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2006.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_Parse.h
|
||||
*
|
||||
* @brief All record parsing is located here.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
#ifndef OTF_PARSE_H
|
||||
#define OTF_PARSE_H
|
||||
|
||||
|
||||
#include "OTF_RStream.h"
|
||||
#include "OTF_HandlerArray.h"
|
||||
|
||||
|
||||
/** Parse one event record from buffer and call the appropriate
|
||||
function - internal use only. */
|
||||
int OTF_Reader_parseEventRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers );
|
||||
|
||||
/** Parse one definition record from buffer and call the appropriate
|
||||
function - internal use only. */
|
||||
int OTF_Reader_parseDefRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers, uint32_t streamid );
|
||||
|
||||
/** Parse one statisitc summary record from buffer and call the
|
||||
appropriate function - internal use only. */
|
||||
int OTF_Reader_parseStatisticsRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers );
|
||||
|
||||
/** Parse one snapshot record from buffer and call the
|
||||
appropriate function - internal use only. */
|
||||
int OTF_Reader_parseSnapshotsRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
/* *** handle unknown records or parts of it - internal use only! ****** *** */
|
||||
|
||||
/* These functions are external because OTF_Reader uses them */
|
||||
int OTF_Reader_readUnknownRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers );
|
||||
|
||||
int OTF_Reader_readUnknownDefRecord( OTF_RBuffer* buffer,
|
||||
OTF_HandlerArray* handlers, uint32_t streamid );
|
||||
|
||||
|
||||
#endif /* OTF_PARSE_H */
|
20
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Platform.c
Обычный файл
20
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Platform.c
Обычный файл
@ -0,0 +1,20 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
char *OTF_strdup(const char *s) {
|
||||
char *c;
|
||||
|
||||
if( s == NULL || ( c = ( char* )malloc( strlen(s)+1 ) ) == NULL )
|
||||
return NULL;
|
||||
|
||||
strcpy( c, s );
|
||||
|
||||
return c;
|
||||
}
|
89
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Platform.h
Обычный файл
89
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_Platform.h
Обычный файл
@ -0,0 +1,89 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_Platform.h
|
||||
*
|
||||
* @brief Deals with platform dependend issues.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
|
||||
/* THIS HEADER SHOULD NEVER BE INCLUDED INTO OTHER HEADERS OF THE OTF LIBRARY
|
||||
AND HAS TO BE INCLUDED INTO ALL .C-FILES OF THE OTF LIBARY */
|
||||
|
||||
|
||||
#ifndef OTF_PLATFORM_H
|
||||
#define OTF_PLATFORM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define EXTERN extern "C"
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* if you know (for sure) of more compilers supporting __FUNCTION__,
|
||||
then add them here */
|
||||
#if defined __GNUC__ /* gnu */
|
||||
#elif defined _MSC_VER /* ms vs */
|
||||
#elif defined __xlC__ /* ibm xlc */
|
||||
#else
|
||||
|
||||
/* set __FUNCTION__ to a dummy for compilers not supporting this macro */
|
||||
#define __FUNCTION__ "<unknown function>"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __FILE__
|
||||
#define __FILE__ "<unknown file>"
|
||||
#endif
|
||||
|
||||
#ifndef __LINE__
|
||||
#define __LINE__ 0
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if defined __linux
|
||||
|
||||
#define OTF_fseek fseeko
|
||||
#define OTF_ftell ftello
|
||||
|
||||
#define OTF_snprintf snprintf
|
||||
|
||||
#elif defined WIN32 /* windows */
|
||||
|
||||
|
||||
#if defined _MSC_VER /* vs */
|
||||
|
||||
#define HAVE_IO_H
|
||||
|
||||
#define OTF_ftell (uint64_t) _ftelli64
|
||||
#define OTF_fseek(f,off,orig) _fseeki64(f,(__int64)off,orig)
|
||||
|
||||
#define OTF_snprintf _snprintf
|
||||
|
||||
#pragma warning (disable : 4996) /* disable insecurity/deprication warnings */
|
||||
|
||||
#else
|
||||
|
||||
#error "You are using an unsupported compiler on windows."
|
||||
|
||||
#endif
|
||||
|
||||
#else /* don't know what to put here */
|
||||
|
||||
#define OTF_fseek fseek
|
||||
#define OTF_ftell ftell
|
||||
|
||||
#define OTF_snprintf snprintf
|
||||
|
||||
#endif
|
||||
|
||||
EXTERN char *OTF_strdup( const char*s );
|
||||
|
||||
#endif /* OTF_PLATFORM_H */
|
1296
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RBuffer.c
Обычный файл
1296
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RBuffer.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
210
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RBuffer.h
Обычный файл
210
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RBuffer.h
Обычный файл
@ -0,0 +1,210 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file OTF_RBuffer.h
|
||||
*
|
||||
* @brief Provides read access to trace buffers.
|
||||
*
|
||||
* \ingroup internal
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_RBUFFER_H
|
||||
#define OTF_RBUFFER_H
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
|
||||
|
||||
#include "OTF_File.h"
|
||||
|
||||
|
||||
struct struct_OTF_RBuffer {
|
||||
|
||||
|
||||
OTF_File* file;
|
||||
|
||||
|
||||
/** actual buffer */
|
||||
char* buffer;
|
||||
|
||||
/** Current read position in buffer.
|
||||
'end <= pos' indicates an invalid state! */
|
||||
uint32_t pos;
|
||||
|
||||
/** Current end of data in buffer in case it is not full.
|
||||
'end <= pos' indicates an invalid state! */
|
||||
uint32_t end;
|
||||
|
||||
/** Last '\n' in the buffer. */
|
||||
uint32_t lastnewline;
|
||||
|
||||
/** Current size of buffer. */
|
||||
uint32_t size;
|
||||
|
||||
/** If 'OTF_RBuffer_jump()' is called only 'jumpsize' bytes are
|
||||
read into buffer. */
|
||||
uint32_t jumpsize;
|
||||
|
||||
/** Current time inside this stream, necessary for state machine,
|
||||
(-1) means unknown. */
|
||||
uint64_t time;
|
||||
|
||||
/** Current process inside this stream, necessary for state machine,
|
||||
(-1) means unknown. */
|
||||
uint32_t process;
|
||||
|
||||
/** Total size of the file in bytes. This is used in
|
||||
searchTime(). A value of (-1) means unknown.
|
||||
Determined by internal function OTF_RBuffer_getFileProperties(). */
|
||||
uint64_t filesize;
|
||||
|
||||
/** The very first timestamp of that stream. This is used in
|
||||
searchTime(). A value of (-1) means unknown.
|
||||
Determined by internal function OTF_RBuffer_getFileProperties(). */
|
||||
uint64_t firstTime;
|
||||
|
||||
/** The very last timestamp of that stream. This is used in
|
||||
searchTime(). A value of (-1) means unknown.
|
||||
Determined by internal function OTF_RBuffer_getFileProperties(). */
|
||||
uint64_t lastTime;
|
||||
|
||||
#ifdef HAVE_ZLIB
|
||||
/** Default size of zbuffers managed by this buffer. */
|
||||
uint32_t zbuffersize;
|
||||
#endif /* HAVE_ZLIB */
|
||||
};
|
||||
typedef struct struct_OTF_RBuffer OTF_RBuffer;
|
||||
|
||||
|
||||
/** constructor - internal use only */
|
||||
OTF_RBuffer* OTF_RBuffer_open( const char* filename, OTF_FileManager* manager );
|
||||
|
||||
/** destructor - internal use only */
|
||||
int OTF_RBuffer_close( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Set buffer size. Cannot shrink buffer but only extend. */
|
||||
int OTF_RBuffer_setSize( OTF_RBuffer* rbuffer, size_t size );
|
||||
|
||||
/** Set zbuffer size. */
|
||||
void OTF_RBuffer_setZBufferSize( OTF_RBuffer* rbuffer, uint32_t size );
|
||||
|
||||
/** Set 'jumpsize'. Return 0 if 'size' is greater than the
|
||||
buffer size. */
|
||||
int OTF_RBuffer_setJumpSize( OTF_RBuffer* rbuffer, size_t size );
|
||||
|
||||
/** Make the next record availabe from the buffer. Return the pointer to the
|
||||
record string which is terminated by '\n' not '\0' !
|
||||
This funktion must be called before any record access. It ensures the
|
||||
record is available completely in the buffer. Furthermore, time and process
|
||||
information is kept track of.
|
||||
It is recommended to use the 'OTF_RBuffer_readXXX()' functions below to
|
||||
read record components instead of parsing manually. In any case, after
|
||||
reading 'OTF_RBuffer_readNewline()' needs to be called which proceeds to
|
||||
the next record begin no matter if there are still characters from the
|
||||
current record present or not. */
|
||||
char* OTF_RBuffer_getRecord( OTF_RBuffer* rbuffer );
|
||||
|
||||
|
||||
/** Ask the buffer to guarantee at least one complete record at the current
|
||||
read position inside the buffer. This means one line, e.g. '\n' character.
|
||||
If no complete record is found the buffer has to be advanced by reading new
|
||||
contents from file. Return 1 on success, 0 means the file is exceeded. */
|
||||
int OTF_RBuffer_guaranteeRecord( OTF_RBuffer* rbuffer );
|
||||
|
||||
|
||||
/** Print the record at the current buffer position, i.e. until the next
|
||||
newline character. This is for debugging purposes only and won't modify the
|
||||
buffer in any way. */
|
||||
char *OTF_RBuffer_printRecord( OTF_RBuffer* rbuffer );
|
||||
|
||||
|
||||
/** Jump to the given file position and restore buffer and references as if
|
||||
the buffer had reached the position by advancing through the file linearly.
|
||||
In particular, find the next record start, then find next timestamp and
|
||||
process specification in order to set 'time' and 'process' to true values.
|
||||
Return error code 1 on success. Otherwise the file is not that large or
|
||||
there are no appropriate time and process specifications on the tail of
|
||||
the file. Then the buffer contents is undefined */
|
||||
int OTF_RBuffer_jump( OTF_RBuffer* rbuffer, uint64_t filepos );
|
||||
|
||||
/** Read an 64bit unsigned integer in hex format from buffer and return it. */
|
||||
uint64_t OTF_RBuffer_readUint64( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Read an unsigned integer in hex format from buffer and return it. */
|
||||
uint32_t OTF_RBuffer_readUint32( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Read a string from buffer and return it. */
|
||||
const char* OTF_RBuffer_readString( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Read a array from buffer and return the number of elements.
|
||||
malloc memory for *array internally, needs to be freed by caller */
|
||||
uint32_t OTF_RBuffer_readArray( OTF_RBuffer* rbuffer, uint32_t** array );
|
||||
|
||||
/** Test if the next character equals the given one (leading spaces are
|
||||
ignored). If the right character is found return 1, and advance by 1 step.
|
||||
If the character was not found, keep the buffer position such that the test
|
||||
can be repeated with another character. */
|
||||
int OTF_RBuffer_testChar( OTF_RBuffer* rbuffer, char c );
|
||||
|
||||
/** Test if the next string equals the given one (leading spaces are
|
||||
ignored). The next character must not be an uppercase letter as used in
|
||||
keywords. If the right string is found return 1, and advance the buffer
|
||||
position. If the string was not found, keep the buffer position such
|
||||
that the test can be repeated with another string. */
|
||||
int OTF_RBuffer_testKeyword( OTF_RBuffer* rbuffer, const char* string );
|
||||
|
||||
/** Test if the next string equals the given one (leading spaces are
|
||||
ignored). This version is similar to the above function but does not test
|
||||
the following character, i.e. it can be used to test for prefixes.
|
||||
If the right string is found return 1, and advance the buffer
|
||||
position. If the string was not found, keep the buffer position such
|
||||
that the test can be repeated with another string. */
|
||||
int OTF_RBuffer_testPrefix( OTF_RBuffer* rbuffer, const char* string );
|
||||
|
||||
/** Read a newline such that the buffer pos is at the next record beginning.
|
||||
Skip all characters found, assume they are to be ignored.
|
||||
Return 1 on success, 0 on error. */
|
||||
int OTF_RBuffer_readNewline( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Advance the buffer position while there are spaces. */
|
||||
void OTF_RBuffer_skipSpaces( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Advance the buffer position while there are capital letters. */
|
||||
void OTF_RBuffer_skipKeyword( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Return the current time of the buffer. */
|
||||
uint64_t OTF_RBuffer_getCurrentTime( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Set the current time of the buffer to the given one. */
|
||||
void OTF_RBuffer_setCurrentTime( OTF_RBuffer* rbuffer, uint64_t time );
|
||||
|
||||
/** Return the current process of the buffer. */
|
||||
uint32_t OTF_RBuffer_getCurrentProcess( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Set the current process of the buffer to the given one. */
|
||||
void OTF_RBuffer_setCurrentProcess( OTF_RBuffer* rbuffer, uint32_t process );
|
||||
|
||||
/** Search the buffer for the given time and set the buffer position to
|
||||
the next record after that time. Return 1 on success, 0 on error. */
|
||||
int OTF_RBuffer_searchTime( OTF_RBuffer* rbuffer, uint64_t time );
|
||||
|
||||
/** Determine buffers filesize, firstTime and lastTime if not already set.
|
||||
Return 1 on success, 0 on error. */
|
||||
int OTF_RBuffer_getFileProperties( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Returns the filesize of the file attached to this buffer */
|
||||
uint64_t OTF_RBuffer_getFileSize( OTF_RBuffer* rbuffer );
|
||||
|
||||
/** Returns the fileposition of the file attached to this buffer */
|
||||
uint64_t OTF_RBuffer_getFilePos( OTF_RBuffer* rbuffer );
|
||||
|
||||
#endif /* OTF_RBUFFER_H */
|
||||
|
981
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RStream.c
Обычный файл
981
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RStream.c
Обычный файл
@ -0,0 +1,981 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
|
||||
#include "OTF_Platform.h"
|
||||
#include "OTF_RStream.h"
|
||||
#include "OTF_Platform.h"
|
||||
#include "OTF_Reader.h"
|
||||
#include "OTF_Parse.h"
|
||||
|
||||
|
||||
/** constructor - internal use only */
|
||||
int OTF_RStream_init( OTF_RStream* rstream );
|
||||
|
||||
/** destructor - internal use only */
|
||||
int OTF_RStream_finish( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
int OTF_RStream_init( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
rstream->namestub= NULL;
|
||||
rstream->id= (uint32_t) -1;
|
||||
|
||||
rstream->defBuffer= NULL;
|
||||
rstream->eventBuffer= NULL;
|
||||
rstream->snapsBuffer= NULL;
|
||||
rstream->statsBuffer= NULL;
|
||||
|
||||
rstream->buffersizes= 1024*1024;
|
||||
|
||||
#ifdef HAVE_ZLIB
|
||||
rstream->zbuffersizes= 1024*10;
|
||||
#endif /* HAVE_ZLIB */
|
||||
|
||||
rstream->manager= NULL;
|
||||
|
||||
rstream->recordLimit= OTF_READ_MAXRECORDS;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_finish( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret=1;
|
||||
int tmpret;
|
||||
|
||||
free( rstream->namestub );
|
||||
rstream->namestub= NULL;
|
||||
|
||||
rstream->id= (uint32_t) -1;
|
||||
|
||||
if ( NULL != rstream->defBuffer ) {
|
||||
|
||||
tmpret= OTF_RBuffer_close( rstream->defBuffer );
|
||||
ret &= tmpret;
|
||||
if( 0 == tmpret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"cannot close defbuffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->defBuffer= NULL;
|
||||
}
|
||||
|
||||
if ( NULL != rstream->eventBuffer ) {
|
||||
|
||||
tmpret= OTF_RBuffer_close( rstream->eventBuffer );
|
||||
ret &= tmpret;
|
||||
if( 0 == tmpret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"cannot close event buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->eventBuffer= NULL;
|
||||
}
|
||||
|
||||
if ( NULL != rstream->snapsBuffer ) {
|
||||
|
||||
tmpret= OTF_RBuffer_close( rstream->snapsBuffer );
|
||||
ret &= tmpret;
|
||||
if( 0 == tmpret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"cannot close snapshots buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->snapsBuffer= NULL;
|
||||
}
|
||||
|
||||
if ( NULL != rstream->statsBuffer ) {
|
||||
|
||||
tmpret= OTF_RBuffer_close( rstream->statsBuffer );
|
||||
ret &= tmpret;
|
||||
if( 0 == tmpret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"cannot close statistics buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->statsBuffer= NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OTF_RStream* OTF_RStream_open( const char* namestub, uint32_t id, OTF_FileManager* manager ) {
|
||||
|
||||
|
||||
OTF_RStream* ret= (OTF_RStream*) malloc( sizeof(OTF_RStream) );
|
||||
if( NULL == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"no memory left.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_RStream_init( ret );
|
||||
|
||||
ret->namestub= OTF_strdup( namestub );
|
||||
ret->id= id;
|
||||
|
||||
if( NULL == manager ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"manager has not been specified.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
free( ret );
|
||||
ret= NULL;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
ret->manager= manager;
|
||||
|
||||
/* leave buffers alone, they are allocated on demand */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_close( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret= 1;
|
||||
|
||||
if( NULL == rstream ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"rstream has not been specified.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret &= OTF_RStream_finish( rstream );
|
||||
|
||||
free( rstream );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OTF_RBuffer* OTF_RStream_getDefBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
char* filename;
|
||||
|
||||
|
||||
if ( NULL == rstream->defBuffer ) {
|
||||
|
||||
filename= OTF_getFilename( rstream->namestub,
|
||||
rstream->id, OTF_FILETYPE_DEF, 0, NULL );
|
||||
if( NULL == filename ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_getFilename() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rstream->defBuffer= OTF_RBuffer_open( filename, rstream->manager );
|
||||
free( filename );
|
||||
|
||||
if ( NULL == rstream->defBuffer ) {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_RBuffer_setSize( rstream->defBuffer, rstream->buffersizes );
|
||||
#ifdef HAVE_ZLIB
|
||||
OTF_RBuffer_setZBufferSize( rstream->defBuffer, rstream->zbuffersizes );
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
return rstream->defBuffer;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_closeDefBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret= 1;
|
||||
|
||||
if ( NULL != rstream->defBuffer ) {
|
||||
|
||||
ret&= OTF_RBuffer_close( rstream->defBuffer );
|
||||
if( 0 == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"closing defbuffer failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
}
|
||||
|
||||
rstream->defBuffer= NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OTF_RBuffer* OTF_RStream_getEventBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
char* filename;
|
||||
|
||||
|
||||
if ( NULL == rstream->eventBuffer ) {
|
||||
|
||||
filename = OTF_getFilename( rstream->namestub,
|
||||
rstream->id, OTF_FILETYPE_EVENT, 0, NULL );
|
||||
if( NULL == filename ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_getFilename() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rstream->eventBuffer= OTF_RBuffer_open( filename, rstream->manager );
|
||||
free( filename );
|
||||
|
||||
if ( NULL == rstream->eventBuffer ) {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_RBuffer_setSize( rstream->eventBuffer, rstream->buffersizes );
|
||||
#ifdef HAVE_ZLIB
|
||||
OTF_RBuffer_setZBufferSize( rstream->eventBuffer, rstream->zbuffersizes );
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
return rstream->eventBuffer;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_closeEventBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret= 1;
|
||||
|
||||
if ( NULL != rstream->eventBuffer ) {
|
||||
|
||||
ret&= OTF_RBuffer_close( rstream->eventBuffer );
|
||||
if( 0 == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"closing event buffer failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->eventBuffer= NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OTF_RBuffer* OTF_RStream_getSnapsBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
char* filename;
|
||||
|
||||
|
||||
if ( NULL == rstream->snapsBuffer ) {
|
||||
|
||||
filename= OTF_getFilename( rstream->namestub,
|
||||
rstream->id, OTF_FILETYPE_SNAPS, 0, NULL );
|
||||
if( NULL == filename ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_getFilename() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rstream->snapsBuffer= OTF_RBuffer_open( filename, rstream->manager );
|
||||
free( filename );
|
||||
|
||||
if ( NULL == rstream->snapsBuffer ) {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_RBuffer_setSize( rstream->snapsBuffer, rstream->buffersizes );
|
||||
#ifdef HAVE_ZLIB
|
||||
OTF_RBuffer_setZBufferSize( rstream->snapsBuffer, rstream->zbuffersizes );
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
return rstream->snapsBuffer;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_closeSnapsBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret= 1;
|
||||
|
||||
if ( NULL != rstream->snapsBuffer ) {
|
||||
|
||||
ret&= OTF_RBuffer_close( rstream->snapsBuffer );
|
||||
if( 0 == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"closing snapshots buffer failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->snapsBuffer= NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OTF_RBuffer* OTF_RStream_getStatsBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
char* filename;
|
||||
|
||||
|
||||
if ( NULL == rstream->statsBuffer ) {
|
||||
|
||||
filename= OTF_getFilename( rstream->namestub,
|
||||
rstream->id, OTF_FILETYPE_STATS, 0, NULL );
|
||||
if( NULL == filename ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_getFilename() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
rstream->statsBuffer= OTF_RBuffer_open( filename, rstream->manager );
|
||||
free( filename );
|
||||
|
||||
if ( NULL == rstream->statsBuffer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"OTF_RBuffer_open() failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OTF_RBuffer_setSize( rstream->statsBuffer, rstream->buffersizes );
|
||||
#ifdef HAVE_ZLIB
|
||||
OTF_RBuffer_setZBufferSize( rstream->statsBuffer, rstream->zbuffersizes );
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
return rstream->statsBuffer;
|
||||
}
|
||||
|
||||
|
||||
int OTF_RStream_closeStatsBuffer( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
int ret= 1;
|
||||
|
||||
if ( NULL != rstream->statsBuffer ) {
|
||||
|
||||
ret&= OTF_RBuffer_close( rstream->statsBuffer );
|
||||
if( 0 == ret ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"closing statistics buffer failed.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
rstream->statsBuffer= NULL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void OTF_RStream_setBufferSizes( OTF_RStream* rstream, uint32_t size ) {
|
||||
|
||||
|
||||
if ( 50 > size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"intended buffer size %u is too small, rejected.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return;
|
||||
|
||||
} else if ( 500 > size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"buffer size %u is very small, accepted though.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
} else if ( 10 * 1024 *1024 < size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"buffer size %u is rather big, accepted though.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
|
||||
rstream->buffersizes= size;
|
||||
}
|
||||
|
||||
|
||||
uint32_t OTF_RStream_getBufferSizes(OTF_RStream* rstream) {
|
||||
|
||||
|
||||
return rstream->buffersizes;
|
||||
}
|
||||
|
||||
|
||||
void OTF_RStream_setZBufferSizes( OTF_RStream* rstream, uint32_t size ) {
|
||||
|
||||
|
||||
#ifdef HAVE_ZLIB
|
||||
|
||||
if ( 32 > size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"intended zbuffer size %u is too small, rejected.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return;
|
||||
|
||||
} else if ( 512 > size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"zbuffer size %u is very small, accepted though.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
} else if ( 10 * 1024 *1024 < size ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"zbuffer size %u is rather big, accepted though.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__, size );
|
||||
# endif /* OTF_VERBOSE */
|
||||
}
|
||||
|
||||
rstream->zbuffersizes= size;
|
||||
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
|
||||
uint32_t OTF_RStream_getZBufferSizes(OTF_RStream* rstream) {
|
||||
|
||||
|
||||
#ifdef HAVE_ZLIB
|
||||
return rstream->zbuffersizes;
|
||||
#else /* HAVE_ZLIB */
|
||||
return 0;
|
||||
#endif /* HAVE_ZLIB */
|
||||
}
|
||||
|
||||
|
||||
void OTF_RStream_setRecordLimit( OTF_RStream* rstream, uint64_t limit ) {
|
||||
|
||||
|
||||
if( limit == OTF_READ_ERROR ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"limit cannot be set to %llu. Reset to OTF_READ_MAXRECORDS.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__,
|
||||
(long long unsigned) limit );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
limit= OTF_READ_MAXRECORDS;
|
||||
}
|
||||
|
||||
rstream->recordLimit= limit;
|
||||
}
|
||||
|
||||
|
||||
uint64_t OTF_RStream_getRecordLimit( OTF_RStream* rstream ) {
|
||||
|
||||
|
||||
return rstream->recordLimit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
uint64_t OTF_RStream_readDefinitions( OTF_RStream* rstream, OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
uint64_t recordcount= 0;
|
||||
|
||||
int ret;
|
||||
|
||||
|
||||
/* initialized? */
|
||||
if ( NULL == rstream->defBuffer ) {
|
||||
|
||||
|
||||
/* init */
|
||||
|
||||
rstream->defBuffer= OTF_RStream_getDefBuffer( rstream );
|
||||
|
||||
if ( NULL == rstream->defBuffer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"the stream has no def buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
/* there is no def buffer available for this stream */
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
while ( NULL != OTF_RBuffer_getRecord( rstream->defBuffer ) ) {
|
||||
|
||||
if ( recordcount >= rstream->recordLimit ) {
|
||||
|
||||
/* record count limit reached, return */
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
ret= OTF_Reader_parseDefRecord( rstream->defBuffer, handlers, rstream->id );
|
||||
if ( 0 == ret ) {
|
||||
|
||||
/* maybe later an errorhandler gives the record to the user */
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
recordcount++;
|
||||
}
|
||||
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
|
||||
uint64_t OTF_RStream_readEvents( OTF_RStream* rstream, OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
uint64_t recordcount= 0;
|
||||
|
||||
int ret;
|
||||
|
||||
# ifdef OTF_DEBUG
|
||||
uint64_t currenttime= 0;
|
||||
uint64_t oldtime= 0;
|
||||
# endif
|
||||
|
||||
|
||||
/* initialized? */
|
||||
if ( NULL == rstream->eventBuffer ) {
|
||||
|
||||
|
||||
/* init */
|
||||
|
||||
rstream->eventBuffer= OTF_RStream_getEventBuffer( rstream );
|
||||
if( NULL == rstream->eventBuffer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"the stream has no event buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
|
||||
/* jump to start time - update buffer-firstTime, lastTime, curTime */
|
||||
OTF_RBuffer_searchTime( rstream->eventBuffer, 0 );
|
||||
}
|
||||
|
||||
|
||||
while ( NULL != OTF_RBuffer_getRecord( rstream->eventBuffer ) ) {
|
||||
|
||||
if ( recordcount >= rstream->recordLimit ) {
|
||||
|
||||
/* record count limit reached, return */
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
/* debug check */
|
||||
# ifdef OTF_DEBUG
|
||||
oldtime= currenttime;
|
||||
/* inlined OTF_RBuffer_getCurrentTime() */
|
||||
currenttime= rstream->eventBuffer->time;
|
||||
|
||||
if ( oldtime > currenttime ) {
|
||||
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"Time does decrease!!! %llu < %llu.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__,
|
||||
(unsigned long long) currenttime,
|
||||
(unsigned long long) oldtime );
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
# endif
|
||||
|
||||
ret= OTF_Reader_parseEventRecord( rstream->eventBuffer, handlers );
|
||||
if ( 0 == ret ) {
|
||||
|
||||
/* maybe later an errorhandler gives the record to the user */
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
recordcount++;
|
||||
}
|
||||
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
|
||||
uint64_t OTF_RStream_readSnapshots( OTF_RStream* rstream, OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
uint64_t recordcount= 0;
|
||||
|
||||
int ret;
|
||||
|
||||
# ifdef OTF_DEBUG
|
||||
uint64_t currenttime= 0;
|
||||
uint64_t oldtime= 0;
|
||||
# endif
|
||||
|
||||
|
||||
/* initialized? */
|
||||
if ( NULL == rstream->snapsBuffer ) {
|
||||
|
||||
|
||||
/* init */
|
||||
|
||||
rstream->snapsBuffer= OTF_RStream_getSnapsBuffer( rstream );
|
||||
if( NULL == rstream->snapsBuffer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"the stream has no snapshots buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
|
||||
/* jump to start time - update buffer-firstTime, lastTime, curTime */
|
||||
OTF_RBuffer_searchTime( rstream->snapsBuffer, 0 );
|
||||
}
|
||||
|
||||
|
||||
while ( NULL != OTF_RBuffer_getRecord( rstream->snapsBuffer ) ) {
|
||||
|
||||
if ( recordcount >= rstream->recordLimit ) {
|
||||
|
||||
/* record count limit reached, return */
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
/* debug check */
|
||||
# ifdef OTF_DEBUG
|
||||
oldtime= currenttime;
|
||||
/* inlined OTF_RBuffer_getCurrentTime() */
|
||||
currenttime= rstream->snapsBuffer->time;
|
||||
|
||||
if ( oldtime > currenttime ) {
|
||||
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"Time does decrease!!! %llu < %llu.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__,
|
||||
(unsigned long long) currenttime,
|
||||
(unsigned long long) oldtime );
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
# endif
|
||||
|
||||
|
||||
ret= OTF_Reader_parseSnapshotsRecord( rstream->snapsBuffer, handlers );
|
||||
if ( 0 == ret ) {
|
||||
|
||||
/* maybe later an errorhandler gives the record to the user */
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
recordcount++;
|
||||
}
|
||||
|
||||
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
|
||||
uint64_t OTF_RStream_readStatistics( OTF_RStream* rstream, OTF_HandlerArray* handlers ) {
|
||||
|
||||
|
||||
uint64_t recordcount= 0;
|
||||
|
||||
int ret;
|
||||
|
||||
# ifdef OTF_DEBUG
|
||||
uint64_t currenttime= 0;
|
||||
uint64_t oldtime= 0;
|
||||
# endif
|
||||
|
||||
|
||||
/* initialized? */
|
||||
if ( NULL == rstream->statsBuffer ) {
|
||||
|
||||
|
||||
/* init */
|
||||
|
||||
rstream->statsBuffer= OTF_RStream_getStatsBuffer( rstream );
|
||||
if( NULL == rstream->statsBuffer ) {
|
||||
|
||||
# ifdef OTF_VERBOSE
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"the stream has no statistics buffer.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__ );
|
||||
# endif /* OTF_VERBOSE */
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
|
||||
/* jump to start time - update buffer-firstTime, lastTime, curTime */
|
||||
OTF_RBuffer_searchTime( rstream->statsBuffer, 0 );
|
||||
}
|
||||
|
||||
|
||||
while ( NULL != OTF_RBuffer_getRecord( rstream->statsBuffer ) ) {
|
||||
|
||||
if ( recordcount >= rstream->recordLimit ) {
|
||||
|
||||
/* record count limit reached, return */
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
/* debug check */
|
||||
# ifdef OTF_DEBUG
|
||||
oldtime= currenttime;
|
||||
/* inlined OTF_RBuffer_getCurrentTime() */
|
||||
currenttime= rstream->statsBuffer->time;
|
||||
|
||||
if ( oldtime > currenttime ) {
|
||||
|
||||
fprintf( stderr, "ERROR in function %s, file: %s, line: %i:\n "
|
||||
"Time does decrease!!! %llu < %llu.\n",
|
||||
__FUNCTION__, __FILE__, __LINE__,
|
||||
(unsigned long long) currenttime,
|
||||
(unsigned long long) oldtime );
|
||||
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
# endif
|
||||
|
||||
|
||||
ret= OTF_Reader_parseStatisticsRecord( rstream->statsBuffer, handlers );
|
||||
if ( 0 == ret ) {
|
||||
|
||||
|
||||
/* maybe later an errorhandler gives the record to the user */
|
||||
return OTF_READ_ERROR;
|
||||
}
|
||||
|
||||
recordcount++;
|
||||
}
|
||||
|
||||
|
||||
return recordcount;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_eventProgress( OTF_RStream* rstream, uint64_t* minimum,
|
||||
uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
return OTF_RStream_eventTimeProgress( rstream, minimum, current, maximum );
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_snapshotProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
return OTF_RStream_snapshotTimeProgress( rstream, minimum, current, maximum );
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_statisticProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
return OTF_RStream_statisticTimeProgress( rstream, minimum, current, maximum );
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_eventTimeProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
if ( NULL == rstream->eventBuffer ||
|
||||
rstream->eventBuffer->time < rstream->eventBuffer->firstTime ||
|
||||
rstream->eventBuffer->time > rstream->eventBuffer->lastTime ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
*minimum= rstream->eventBuffer->firstTime;
|
||||
*current= rstream->eventBuffer->time;
|
||||
*maximum= rstream->eventBuffer->lastTime;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_snapshotTimeProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
if ( NULL == rstream->snapsBuffer ||
|
||||
rstream->snapsBuffer->time < rstream->snapsBuffer->firstTime ||
|
||||
rstream->snapsBuffer->time > rstream->snapsBuffer->lastTime ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
*minimum= rstream->snapsBuffer->firstTime;
|
||||
*current= rstream->snapsBuffer->time;
|
||||
*maximum= rstream->snapsBuffer->lastTime;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_statisticTimeProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
if ( NULL == rstream->statsBuffer ||
|
||||
rstream->statsBuffer->time < rstream->statsBuffer->firstTime ||
|
||||
rstream->statsBuffer->time > rstream->statsBuffer->lastTime ) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
*minimum= rstream->statsBuffer->firstTime;
|
||||
*current= rstream->statsBuffer->time;
|
||||
*maximum= rstream->statsBuffer->lastTime;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_eventBytesProgress( OTF_RStream* rstream, uint64_t* minimum,
|
||||
uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
*minimum= 0;
|
||||
*maximum= OTF_RBuffer_getFileSize( rstream->eventBuffer );
|
||||
*current= OTF_RBuffer_getFilePos( rstream->eventBuffer );
|
||||
|
||||
if( *current > *maximum ) {
|
||||
*current= *maximum;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_snapshotBytesProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
*minimum= 0;
|
||||
*maximum= OTF_RBuffer_getFileSize( rstream->snapsBuffer );
|
||||
*current= OTF_RBuffer_getFilePos( rstream->snapsBuffer );
|
||||
|
||||
if( *current > *maximum ) {
|
||||
*current= *maximum;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
uint8_t OTF_RStream_statisticBytesProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum ) {
|
||||
|
||||
|
||||
*minimum= 0;
|
||||
*maximum= OTF_RBuffer_getFileSize( rstream->statsBuffer );
|
||||
*current= OTF_RBuffer_getFilePos( rstream->statsBuffer );
|
||||
|
||||
if( *current > *maximum ) {
|
||||
*current= *maximum;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
617
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RStream.h
Обычный файл
617
ompi/contrib/vt/vt/extlib/otf/otflib/OTF_RStream.h
Обычный файл
@ -0,0 +1,617 @@
|
||||
/*
|
||||
This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2007.
|
||||
Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
|
||||
*/
|
||||
|
||||
/* NOTE
|
||||
the OTF_RStream interface is not able to perform jumps to random timestamps,
|
||||
and cannot quit at a certain maximum time stamp.
|
||||
Maybe in future versions we add this.
|
||||
It is not in, because the OTF_Reader interface uses the buffer-methodes directly
|
||||
to set the timestamps, so saving it in the stream too will be worthless in this
|
||||
case. */
|
||||
|
||||
/**
|
||||
* @file OTF_RStream.h
|
||||
*
|
||||
* @brief Provides read access to trace streams, which consist of multiple
|
||||
* buffers.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
|
||||
/** \defgroup rstream Stream Reader Interface
|
||||
*
|
||||
* rstream provides an interface for dealing with a single stream of a trace.
|
||||
* A stream consists of up to four different buffers (event buffer,
|
||||
* definition buffer, snapshots buffer, statistics buffer).
|
||||
*
|
||||
* rstream is structured similarly to the reader, but it is not
|
||||
* able to perform jumps to random timestamps, and cannot quit at a certain
|
||||
* maximum time stamp.
|
||||
*
|
||||
* \section rstream_example A simple Example
|
||||
*
|
||||
* Common includes
|
||||
* \code
|
||||
* #include <otf.h>
|
||||
* #include <stdio.h>
|
||||
* #include <assert.h>
|
||||
* \endcode
|
||||
*
|
||||
*
|
||||
* Define the Handler(s).
|
||||
* We just want to process the def process event and print out all appearing processes.
|
||||
* \code
|
||||
* int handleDefProcess (void *userData, uint32_t stream, uint32_t process, const char *name, uint32_t parent) {
|
||||
*
|
||||
* printf( "process %u is named \"%s\"\n", process, name );
|
||||
*
|
||||
* return OTF_RETURN_OK;
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* \code
|
||||
* int main( int argc, char** argv ) {
|
||||
* \endcode
|
||||
*
|
||||
* Declare a file manager, a reader, and a handler array
|
||||
* \code
|
||||
* OTF_RStream* rstream;
|
||||
* OTF_FileManager* manager;
|
||||
* OTF_HandlerArray* handlers;
|
||||
* \endcode
|
||||
*
|
||||
* Initialize the file manager. Do not open more than 100 files.
|
||||
* \code
|
||||
* manager= OTF_FileManager_open( 100 );
|
||||
* assert( manager );
|
||||
* \endcode
|
||||
*
|
||||
* Initialize the handler array.
|
||||
* \code
|
||||
* handlers = OTF_HandlerArray_open();
|
||||
* assert( handlers );
|
||||
* \endcode
|
||||
*
|
||||
* Initialize the rstream object.
|
||||
* \code
|
||||
|
||||
* rstream = OTF_RStream_open( "mytrace", 0, manager );
|
||||
* assert( rstream );
|
||||
* \endcode
|
||||
*
|
||||
* Register your callback functions to the handler array.
|
||||
* \code
|
||||
* OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleDefProcess, OTF_DEFPROCESS_RECORD );
|
||||
* \endcode
|
||||
*
|
||||
*
|
||||
* Do the actual reading.
|
||||
* \code
|
||||
* OTF_RStream_readDefinitions( rstream, handlers );
|
||||
* \endcode
|
||||
*
|
||||
*
|
||||
* Clean everything up before exiting the program.
|
||||
* \code
|
||||
* OTF_RStream_close( rstream );
|
||||
* OTF_HandlerArray_close( handlers );
|
||||
* OTF_FileManager_close( manager );
|
||||
*
|
||||
* return 0;
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Compile and link this using $ gcc -o test test.c `otfconfig --libs`.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OTF_RSTREAM_H
|
||||
#define OTF_RSTREAM_H
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#include "OTF_inttypes.h"
|
||||
|
||||
|
||||
struct struct_OTF_Reader;
|
||||
|
||||
|
||||
#include "OTF_FileManager.h"
|
||||
#include "OTF_RBuffer.h"
|
||||
#include "OTF_Filenames.h"
|
||||
#include "OTF_HandlerArray.h"
|
||||
|
||||
|
||||
struct struct_OTF_RStream {
|
||||
|
||||
|
||||
/** name stub: all files will begin with this name */
|
||||
char* namestub;
|
||||
|
||||
/** Unique id for the current stream */
|
||||
uint32_t id;
|
||||
|
||||
/** Definitions buffer. Definitions buffer carries definition
|
||||
records */
|
||||
OTF_RBuffer* defBuffer;
|
||||
|
||||
/** Event buffer. The event buffer carries records for actual
|
||||
events, i.e. records with a time stamp */
|
||||
OTF_RBuffer* eventBuffer;
|
||||
|
||||
/** Snaps (snapshots) buffer. The snapshots buffer carries
|
||||
snapshots of the whole state at a point in time - as oppossed to
|
||||
events which only show changes in the state. This can be used to
|
||||
start from such a snapshot instead of from the very begining. */
|
||||
OTF_RBuffer* snapsBuffer;
|
||||
|
||||
/** Statistics buffer. Statistics buffer carries statistical
|
||||
information about a certain time interval resp. data at
|
||||
points of time that allow to derive statistics without
|
||||
reading through all events of that interval. */
|
||||
OTF_RBuffer* statsBuffer;
|
||||
|
||||
/** Default size of buffers managed by this RStream. */
|
||||
uint32_t buffersizes;
|
||||
|
||||
#ifdef HAVE_ZLIB
|
||||
/** Default size of zbuffers managed by this RStream. */
|
||||
uint32_t zbuffersizes;
|
||||
#endif /* HAVE_ZLIB */
|
||||
|
||||
/** file handle manager */
|
||||
OTF_FileManager* manager;
|
||||
|
||||
/** maximum number of records delivered by a single call to OTF_Reader_readXYZ()
|
||||
defaults to OTF_READ_MAXRECORDS == \infty */
|
||||
uint64_t recordLimit;
|
||||
};
|
||||
/** rstream object \ingroup rstream */
|
||||
typedef struct struct_OTF_RStream OTF_RStream;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new OTF_RStream instance.
|
||||
*
|
||||
* @param nameStub File name prefix which is going to be used by
|
||||
* all sub-files which belong to the reader stream.
|
||||
* @param id Abitrary but unique identifier of the reader stream.
|
||||
* Cannot be '0'.
|
||||
* @param manager File handle manager.
|
||||
*
|
||||
* @return Initialized OTF_RStream instance or 0 if an error
|
||||
* occurred.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
OTF_RStream* OTF_RStream_open( const char* nameStub, uint32_t id, OTF_FileManager* manager );
|
||||
|
||||
|
||||
/**
|
||||
* Close an OTF_RStream instance and all its related files.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return 1 if instance was closed successfully and 0 otherwise.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
int OTF_RStream_close( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the definition buffer of the according reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Initialized OTF_RBuffer instance or 0 if an error occured.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
OTF_RBuffer* OTF_RStream_getDefBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Closes the stream defefinition buffer.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
int OTF_RStream_closeDefBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the event buffer of the according reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Initialized OTF_RBuffer instance or 0 if an error occured.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
OTF_RBuffer* OTF_RStream_getEventBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Closes the stream event buffer.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
int OTF_RStream_closeEventBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the snapshots buffer of the according reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Initialized OTF_RBuffer instance or 0 if an error occured.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
OTF_RBuffer* OTF_RStream_getSnapsBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Closes the stream snapshots buffer.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
int OTF_RStream_closeSnapsBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the statistics buffer of the according reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Initialized OTF_RBuffer instance or 0 if an error occured.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
OTF_RBuffer* OTF_RStream_getStatsBuffer( OTF_RStream* rstream );
|
||||
|
||||
/**
|
||||
* Closes the stream statistics buffer.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
int OTF_RStream_closeStatsBuffer( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Set the default buffer size for all buffers managed by this reader stream.
|
||||
* This is only effective for future buffers and will not change already
|
||||
* allocated buffers. Those can be changed with the buffers directly.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @param size Intended buffer size.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
void OTF_RStream_setBufferSizes( OTF_RStream* rstream, uint32_t size );
|
||||
|
||||
|
||||
/**
|
||||
* Get the default buffer size for all buffers managed by this reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Default buffer size for all buffers managed by this reader
|
||||
* stream.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint32_t OTF_RStream_getBufferSizes( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Set the default zbuffer size for all files managed by this reader stream.
|
||||
* This is only effective for future files and will not change already
|
||||
* allocated buffers. Those can be changed with the files directly.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @param size Intended buffer size.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
void OTF_RStream_setZBufferSizes( OTF_RStream* rstream, uint32_t size );
|
||||
|
||||
|
||||
/**
|
||||
* Get the default zbuffer size for all files managed by this reader stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Default buffer size for all buffers managed by this reader
|
||||
* stream.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint32_t OTF_RStream_getZBufferSizes( OTF_RStream* rstream );
|
||||
|
||||
|
||||
/**
|
||||
* Sets the maximum number of records delivered by a single call to
|
||||
* OTF_RStream_readXYZ(). Defaults to OTF_READ_MAXRECORDS == \infty.
|
||||
* 'OTF_Reader_readXYZ()' returns with the number of records processed.
|
||||
* Successive calls to 'OTF_Reader_readXYZ()' will deliver the remaining
|
||||
* records.
|
||||
*
|
||||
* This function will NOT destroy a pending read operation, i.e. a read
|
||||
* operation currently interrupted CAN be continued!
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param limit new record limit. has to be smaller than or equal to
|
||||
* OTF_READ_MAXRECORDS
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
void OTF_RStream_setRecordLimit( OTF_RStream* rstream, uint64_t limit );
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current record limit.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
*
|
||||
* @return Current record limit.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint64_t OTF_RStream_getRecordLimit( OTF_RStream* rstream );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reads all definitions from the stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param handlers Pointer to the handler array.
|
||||
*
|
||||
* @return Number of records read or OTF_READ_MAXRECORDS
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint64_t OTF_RStream_readDefinitions( OTF_RStream* rstream,
|
||||
OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
/**
|
||||
* Reads all events from the stream and calls the appropriated handler sorted
|
||||
* by time.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param handlers Pointer to the handler array.
|
||||
*
|
||||
* @return Number of records read or OTF_READ_MAXRECORDS
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint64_t OTF_RStream_readEvents( OTF_RStream* rstream, OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
/**
|
||||
* Reads all snapshots from the stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param handlers Pointer to the handler array.
|
||||
*
|
||||
* @return Number of records read or OTF_READ_MAXRECORDS
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint64_t OTF_RStream_readSnapshots( OTF_RStream* rstream, OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
/**
|
||||
* Reads all statistics from the stream.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param handlers Pointer to the handler array.
|
||||
*
|
||||
* @return Number of records read or OTF_READ_MAXRECORDS
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint64_t OTF_RStream_readStatistics( OTF_RStream* rstream, OTF_HandlerArray* handlers );
|
||||
|
||||
|
||||
|
||||
/** depricated. @see OTF_RStream_eventTimeProgress() \ingroup rstream */
|
||||
uint8_t OTF_RStream_eventProgress( OTF_RStream* rstream, uint64_t* minimum,
|
||||
uint64_t* current, uint64_t* maximum );
|
||||
|
||||
/** depricated. @see OTF_RStream_snapshotTimeProgress() \ingroup rstream */
|
||||
uint8_t OTF_RStream_snapshotProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
/** depricated. @see OTF_RStream_statisticTimeProgress() \ingroup rstream */
|
||||
uint8_t OTF_RStream_statisticProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading events. Progress is given in terms
|
||||
* of time stamps. A percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes restricted time intervals into account! This would not
|
||||
* be possible when referring to bytes read instead of time stamps.
|
||||
* The progress report is only valid after one or several calls to
|
||||
* 'readEvents()'.In the latter case the return arguments
|
||||
* 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
|
||||
* the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium time.
|
||||
* @param current Return value for the current time.
|
||||
* @param maximum Return value for the maximum time.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_eventTimeProgress( OTF_RStream* rstream, uint64_t* minimum,
|
||||
uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading snapshots. Progress is given in terms
|
||||
* of time stamps. a percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes restricted time intervals into account! this would
|
||||
* not be possible when refering to bytes read instead of time stamps.
|
||||
* The progress report is only valid after one or several calls to
|
||||
* 'readSnapshots()'. In the latter case the return arguments
|
||||
* 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
|
||||
* the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium time.
|
||||
* @param current Return value for the current time.
|
||||
* @param maximum Return value for the maximum time.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_snapshotTimeProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading statistics. Progress is given in terms
|
||||
* of time stamps. a percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes restricted time intervals into account! this would
|
||||
* not be possible when refering to bytes read instead of time stamps.
|
||||
* The progress report is only valid after one or several calls to
|
||||
* 'readStatistics()'. In the latter case the return arguments
|
||||
* 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
|
||||
* the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium time.
|
||||
* @param current Return value for the current time.
|
||||
* @param maximum Return value for the maximum time.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_statisticTimeProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading events. Progress is given in terms
|
||||
* of time stamps. a percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes the read bytes of every stream into account. In the
|
||||
* latter case the return arguments 'minimum', 'current' and 'maximum' are
|
||||
* undefined! If 'minimum' > 'maximum' the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium bytes read ( is 0 everytime ).
|
||||
* @param current Return value for the current bytes read.
|
||||
* @param maximum Return value for the filesize.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_eventBytesProgress( OTF_RStream* rstream, uint64_t* minimum,
|
||||
uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading snapshots. Progress is given in terms
|
||||
* of time stamps. a percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes the read bytes of every stream into account. In the
|
||||
* latter case the return arguments 'minimum', 'current' and 'maximum' are
|
||||
* undefined! If 'minimum' > 'maximum' the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium bytes read ( is 0 everytime ).
|
||||
* @param current Return value for the current bytes read.
|
||||
* @param maximum Return value for the filesize.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_snapshotBytesProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
/**
|
||||
* Delivers a progress report for reading statistics. Progress is given in terms
|
||||
* of time stamps. a percentage can be computed as
|
||||
* ( current - minimum ) / ( maximum - minimum ).
|
||||
* This computation takes the read bytes of every stream into account. In the
|
||||
* latter case the return arguments 'minimum', 'current' and 'maximum' are
|
||||
* undefined! If 'minimum' > 'maximum' the values are invalid.
|
||||
*
|
||||
* @param rstream Pointer to an initialized OTF_RStream object. See
|
||||
* also OTF_RStream_open().
|
||||
* @param minimum Return value for the minium bytes read ( is 0 everytime ).
|
||||
* @param current Return value for the current bytes read.
|
||||
* @param maximum Return value for the filesize.
|
||||
*
|
||||
* @return 1 on success, 0 if an error occurs.
|
||||
*
|
||||
* \ingroup rstream
|
||||
*/
|
||||
uint8_t OTF_RStream_statisticBytesProgress( OTF_RStream* rstream,
|
||||
uint64_t* minimum, uint64_t* current, uint64_t* maximum );
|
||||
|
||||
|
||||
#endif /* OTF_RSTREAM_H */
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
x
Ссылка в новой задаче
Block a user