1
1
openmpi/config/opal_summary.m4
Nathan Hjelm d2f5fca82a configure: add a summary section at the end of configure output
This commit adds two m4 macros: OPAL_SUMMARY_ADD, OPAL_SUMMARY_PRINT.
OPAL_SUMMARY_ADD adds an item to a section in the summary. For example
OPAL_SUMMARY_ADD([[Transports]],[[Foo]],...,[yes]) will add the
following to the summary:

Transports
-----------------------
Foo: yes

With this commit two sections are added: Transports, Resource Managers.

The OPAL_SUMMARY_PRINT macro is called after AC_OUTPUT and prints out
some information about the build (version, projects, etc) and then
the summarys sections. It will additionally print a warning if
internal debugging is enabled.

Example output:

Open MPI configuration:
-----------------------
Version: 3.0.0 a1
Build Open Platform Abstration project: yes
Build Open Runtime project: yes
Build Open MPI project: yes
Build Open SHMEM project: no
MPI C++ bindings (deprecated): no
MPI Fortran bindings: mpif.h, use mpi, use mpi_f08
Debug build: yes

Transports
-----------------------
Cray uGNI (Gemini/Aries): no
Intel Omnipath (PSM2): no
KNEM Shared Memory: no
Linux CMA IPC: no
Mellanox MXM: no
Open UCX: no
OpenFabrics libfabric: no
OpenFabrics Verbs: no
portals4: no
QLogic Infinipath (PSM): no
tcp: yes
XPMEM Shared Memory: no

Resource Managers
-----------------------
Cray Alps: no
Grid Engine: no
LSF: no
Slurm: yes
Torque: yes

INTERNAL DEBUGGING IS ENABLED. DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS!

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-03-08 10:04:15 -07:00

111 строки
3.4 KiB
Bash

dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
AC_DEFUN([OMPI_SUMMARY_ADD],[
OPAL_VAR_SCOPE_PUSH([ompi_summary_section ompi_summary_line ompi_summary_section_current])
dnl need to replace spaces in the section name with somethis else. _ seems like a reasonable
dnl choice. if this changes remember to change OMPI_PRINT_SUMMARY as well.
ompi_summary_section=$(echo $1 | tr ' ' '_')
ompi_summary_line="$2: $4"
ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section)
if test -z "$ompi_summary_section_current" ; then
if test -z "$ompi_summary_sections" ; then
ompi_summary_sections=$ompi_summary_section
else
ompi_summary_sections="$ompi_summary_sections $ompi_summary_section"
fi
eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\"
else
eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\"
fi
OPAL_VAR_SCOPE_POP
])
AC_DEFUN([OMPI_SUMMARY_PRINT],[
OPAL_VAR_SCOPE_PUSH([ompi_summary_section ompi_summary_section_name])
echo "\nOpen MPI configuration:"
echo "-----------------------"
echo "Version: $OMPI_MAJOR_VERSION.$OMPI_MINOR_VERSION.$OMPI_RELEASE_VERSION $OMPI_GREEK_VERSION"
dnl Print out which projects will be built
echo "Build Open Platform Abstration project: yes"
if test "$project_orte_amc" = "true" ; then
echo "Build Open Runtime project: yes"
else
echo "Build Open Runtime project: no"
fi
if test "$project_ompi_amc" = "true" ; then
echo "Build Open MPI project: yes"
else
echo "Build Open MPI project: no"
fi
if test "$project_shmem_amc" = "true" ; then
echo "Build Open SHMEM project: yes"
else
echo "Build Open SHMEM project: no"
fi
dnl Print out the bindings if we are building OMPI
if test "$project_ompi_amc" = "true" ; then
if test x$enable_mpi_cxx = xyes ; then
echo "MPI C++ bindings (deprecated): yes"
else
echo "MPI C++ bindings (deprecated): no"
fi
if test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_MPIFH_BINDINGS ; then
echo "MPI Fortran bindings: mpif.h"
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPI_BINDINGS ; then
echo "MPI Fortran bindings: mpif.h, use mpi"
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPIF08_BINDINGS ; then
echo "MPI Fortran bindings: mpif.h, use mpi, use mpi_f08"
else
echo "MPI Fortran bindings: no"
fi
if test x$opal_java_happy = xyes ; then
echo "MPI Java bindings (experimental): yes"
else
echo "MPI Java bindings (experimental): no"
fi
fi
if test $WANT_DEBUG = 0 ; then
echo "Debug build: no"
else
echo "Debug build: yes"
fi
if test ! -z $with_platform ; then
echo "Platform file: $with_platform"
fi
echo
for ompi_summary_section in $(echo $ompi_summary_sections) ; do
ompi_summary_section_name=$(echo $ompi_summary_section | tr '_' ' ')
echo "$ompi_summary_section_name"
echo "-----------------------"
echo "$(eval echo \$ompi_summary_values_$ompi_summary_section)" | tr ',' $'\n' | sort -f
echo
done
if test $WANT_DEBUG = 1 ; then
echo "INTERNAL DEBUGGING IS ENABLED. DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS!\n"
fi
OPAL_VAR_SCOPE_POP
])