1
1
openmpi/opal/mca/paffinity/hwloc/configure.m4
Ralph Castain 40a2bfa238 WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.
This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
2010-09-17 23:04:06 +00:00

144 строки
6.8 KiB
Bash

# -*- 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-2010 Cisco Systems, Inc. All rights reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Include hwloc m4 files
m4_include(opal/mca/paffinity/hwloc/hwloc/config/hwloc.m4)
m4_include(opal/mca/paffinity/hwloc/hwloc/config/hwloc_pkg.m4)
m4_include(opal/mca/paffinity/hwloc/hwloc/config/hwloc_check_attributes.m4)
m4_include(opal/mca/paffinity/hwloc/hwloc/config/hwloc_check_visibility.m4)
# MCA_paffinity_hwloc_POST_CONFIG()
# ---------------------------------
AC_DEFUN([MCA_opal_paffinity_hwloc_POST_CONFIG],[
AM_CONDITIONAL([OPAL_PAFFINITY_HWLOC_INTERNAL],
[test "$paffinity_hwloc_location" = "internal"])
HWLOC_DO_AM_CONDITIONALS
])dnl
# MCA_paffinity_hwloc_CONFIG([action-if-found], [action-if-not-found])
# --------------------------------------------------------------------
AC_DEFUN([MCA_opal_paffinity_hwloc_CONFIG],[
AC_CONFIG_FILES([opal/mca/paffinity/hwloc/Makefile])
OMPI_VAR_SCOPE_PUSH([HWLOC_VERSION opal_check_hwloc_happy opal_check_hwloc_save_CPPFLAGS opal_check_hwloc_save_LDFLAGS opal_check_hwloc_save_LIBS])
# Allowing building using either the internal copy of
# hwloc, or an external version.
AC_ARG_WITH([hwloc],
[AC_HELP_STRING([--with-hwloc(=DIR)],
[Build hwloc support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of hwloc. "external" forces Open MPI to use an external installation of hwloc. Supplying a valid directory name also forces Open MPI to use an external installation of hwloc, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries.])])
# Default to building the internal copy. After this,
# paffinity_hwloc_location is guaranteed to be set to one of:
# "internal", a directory name (i.e., whatever the user supplied),
# or "no".
paffinity_hwloc_location=$with_hwloc
AS_IF([test -z "$paffinity_hwloc_location" -o "$paffinity_hwloc_location" = "yes"],
[paffinity_hwloc_location=internal])
# Check the DIR value if it's a directory
case $paffinity_hwloc_location in
no|internal|external) ;;
*) OMPI_CHECK_WITHDIR([hwloc], [$paffinity_hwloc_location], [include/hwloc.h]) ;;
esac
AC_ARG_WITH([hwloc-libdir],
[AC_HELP_STRING([--with-hwloc-libdir=DIR],
[Search for hwloc libraries in DIR. Should only be used if an external copy of hwloc is being used.])])
AS_IF([test "$with_hwloc_libdir" = "internal" -a "$with_hwloc_libdir" != ""],
[AC_MSG_WARN([Both --with-hwloc=internal and --with-hwloc-libdir=DIR])
AC_MSG_WARN([were specified, which does not make sense.])
AC_MSG_ERROR([Cannot continue])])
OMPI_CHECK_WITHDIR([hwloc-libdir], [$with_hwloc_libdir], [libhwloc.*])
opal_check_hwloc_save_CPPFLAGS=$CPPFLAGS
opal_check_hwloc_save_LDFLAGS=$LDFLAGS
opal_check_hwloc_save_LIBS=$LIBS
AS_IF([test "$paffinity_hwloc_location" != "no"],
[AC_MSG_CHECKING([where to look for hwloc])])
# If we're building internal, run the hwloc configuration.
AS_IF([test "$paffinity_hwloc_location" = "internal"],
[# Main hwloc configuration
AC_MSG_RESULT([internal copy])
HWLOC_SET_SYMBOL_PREFIX([opal_paffinity_])
HWLOC_SETUP_CORE([opal/mca/paffinity/hwloc/hwloc],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([yes])
HWLOC_VERSION="internal v`$srcdir/opal/mca/paffinity/hwloc/hwloc/config/hwloc_get_version.sh $srcdir/opal/mca/paffinity/hwloc/hwloc/VERSION`"
# Add flags to the wrappers for static builds
paffinity_hwloc_WRAPPER_EXTRA_LDFLAGS=$HWLOC_EMBEDDED_LDFLAGS
paffinity_hwloc_WRAPPER_EXTRA_LIBS=$HWLOC_EMBEDDED_LIBS
opal_check_hwloc_happy=yes],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([no])
opal_check_hwloc_happy=no])
])
# If we are not building internal, then run all the normal checks
AS_IF([test "$paffinity_hwloc_location" != "internal" -a "$paffinity_hwloc_location" != "no"],
[AS_IF([test ! -z "$paffinity_hwloc_location" -a "$paffinity_hwloc_location" != "yes" -a "$paffinity_hwloc_location" != "external"],
[opal_check_hwloc_dir=$paffinity_hwloc_location
AC_MSG_RESULT([external install ($paffinity_hwloc_location)])],
[AC_MSG_RESULT([external install (default search paths)])])
AS_IF([test ! -z "$with_hwloc_libdir" -a "$with_hwloc_libdir" != "yes"],
[opal_check_hwloc_libdir="$with_hwloc_libdir"])
AS_IF([test "$paffinity_hwloc_location" = no],
[opal_check_hwloc_happy=no],
[opal_check_hwloc_happy=yes])
HWLOC_VERSION=external
OMPI_CHECK_PACKAGE([paffinity_hwloc],
[hwloc.h],
[hwloc],
[hwloc_topology_init],
[],
[$opal_check_hwloc_dir],
[$opal_check_hwloc_libdir],
[opal_check_hwloc_happy=yes],
[opal_check_hwloc_happy=no])
])
CPPFLAGS=$opal_check_hwloc_save_CPPFLAGS
LDFLAGS=$opal_check_hwloc_save_LDFLAGS
LIBS=$opal_check_hwloc_save_LIBS
AC_SUBST([paffinity_hwloc_CFLAGS])
AC_SUBST([paffinity_hwloc_CPPFLAGS])
AC_SUBST([paffinity_hwloc_LDFLAGS])
AC_SUBST([paffinity_hwloc_LIBS])
# Done!
AS_IF([test "$opal_check_hwloc_happy" = "yes"],
[AC_DEFINE_UNQUOTED([PAFFINITY_HWLOC_HWLOC_VERSION],
["$HWLOC_VERSION"],
[Version of hwloc])
$1],
[AS_IF([test ! -z "$with_hwloc" -a "$with_hwloc" != "no"],
[AC_MSG_WARN([hwloc support requested (via --with-hwloc) but not found.])
AC_MSG_ERROR([Cannot continue.])])
$2])
OMPI_VAR_SCOPE_POP
])dnl