Fix some problems with the libevent and hwloc frameworks:
* change components from setting <framework>_base_include to opal_<framework>_<component>_include; the framework m4 will figure out the winning component and pick the right "include" shell variable. Ditto for the other shell variables (cppflags, ldflags, etc.). * misc fixes to hwloc/external * add a bunch of missing "opal_" prefixes to shell variables * add a few more / update a few comments in framework m4's This commit was SVN r25174.
Этот коммит содержится в:
родитель
6a221af009
Коммит
82c93611e6
@ -1,6 +1,6 @@
|
|||||||
dnl -*- shell-script -*-
|
dnl -*- shell-script -*-
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
dnl Copyright (c) 2010-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
dnl $COPYRIGHT$
|
dnl $COPYRIGHT$
|
||||||
dnl
|
dnl
|
||||||
dnl Additional copyrights may follow
|
dnl Additional copyrights may follow
|
||||||
@ -11,13 +11,15 @@ dnl
|
|||||||
# There will only be one component used in this framework, and it will
|
# There will only be one component used in this framework, and it will
|
||||||
# be selected at configure time by priority. Components must set
|
# be selected at configure time by priority. Components must set
|
||||||
# their priorities in their configure.m4 files. They must also set
|
# their priorities in their configure.m4 files. They must also set
|
||||||
# the shell variable $event_base_include to a header file name
|
# the shell variable $opal_event_<component>_include to a header file
|
||||||
# (relative to the top OMPI source directory) that will be included in
|
# name (relative to opal/mca/event) that will be included in
|
||||||
# opal/mca/event/event.h. Optionally, components may also set the
|
# opal/mca/event/event.h.
|
||||||
# shell variable $event_base_include_cppflags if additional CPPFLAGS
|
|
||||||
# must be used with this header file. The event framework will add
|
# Optionally, components may also set the shell variable
|
||||||
# the winning component's $event_base_include_cppflags to the global
|
# $opal_event_<component>_include_cppflags if additional CPPFLAGS must
|
||||||
# $CPPFLAGS.
|
# be used with this header file. The event framework will add the
|
||||||
|
# winning component's $opal_event_<component>_include_cppflags to the
|
||||||
|
# global $CPPFLAGS.
|
||||||
|
|
||||||
dnl We only want one winning component.
|
dnl We only want one winning component.
|
||||||
m4_define(MCA_opal_event_CONFIGURE_MODE, STOP_AT_FIRST_PRIORITY)
|
m4_define(MCA_opal_event_CONFIGURE_MODE, STOP_AT_FIRST_PRIORITY)
|
||||||
@ -33,6 +35,16 @@ AC_DEFUN([MCA_opal_event_CONFIG],[
|
|||||||
[AC_MSG_WARN([Did not find a suitable static opal event component])
|
[AC_MSG_WARN([Did not find a suitable static opal event component])
|
||||||
AC_MSG_ERROR([Cannot continue])])
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
|
||||||
|
# If there's any spaces in the middle of the string, then we found
|
||||||
|
# more than 1 eligible static component. That's no good (and
|
||||||
|
# should never happen, but let's be sure)!
|
||||||
|
opal_event_winner=`echo $MCA_opal_event_STATIC_COMPONENTS | sed -e 's/^[ ]+//' | sed -e 's/[ ]+$//'`
|
||||||
|
|
||||||
|
AS_IF([test "`echo $opal_event_winner | sed 's/ //'`" != "$opal_event_winner"],
|
||||||
|
[AC_MSG_WARN([Found more than 1 eligible static opal event component])
|
||||||
|
AC_MSG_WARN([This should never happen!])
|
||||||
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
|
||||||
# We need to find out what the underlying component set
|
# We need to find out what the underlying component set
|
||||||
# HAVE_WORKING_EVENTOPS was set to. This is for systems that
|
# HAVE_WORKING_EVENTOPS was set to. This is for systems that
|
||||||
# don't have working poll(), etc. (e.g., Cray) -- we still need an
|
# don't have working poll(), etc. (e.g., Cray) -- we still need an
|
||||||
@ -51,17 +63,23 @@ AC_DEFUN([MCA_opal_event_CONFIG],[
|
|||||||
[$OPAL_HAVE_WORKING_EVENTOPS],
|
[$OPAL_HAVE_WORKING_EVENTOPS],
|
||||||
[Whether our event component has working event operations or not (if not, then assumedly it only has working timers and signals)])
|
[Whether our event component has working event operations or not (if not, then assumedly it only has working timers and signals)])
|
||||||
|
|
||||||
# someone should have set this...
|
# The winning component will have told us where their header file
|
||||||
AS_IF([test "$event_base_include" = ""],
|
# is located
|
||||||
[AC_MSG_WARN([Missing implementation header])
|
AC_MSG_CHECKING([for winning event component header file])
|
||||||
|
eval "opal_event_base_include=\`echo \$opal_event_${opal_event_winner}_include\`"
|
||||||
|
AS_IF([test "$opal_event_base_include" = ""],
|
||||||
|
[AC_MSG_RESULT([missing])
|
||||||
|
AC_MSG_WARN([Missing implementation header])
|
||||||
AC_MSG_ERROR([Cannot continue])])
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
AC_MSG_RESULT([$opal_event_base_include])
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([MCA_event_IMPLEMENTATION_HEADER],
|
AC_DEFINE_UNQUOTED([MCA_event_IMPLEMENTATION_HEADER],
|
||||||
["opal/mca/event/$event_base_include"],
|
["opal/mca/event/$opal_event_base_include"],
|
||||||
[Header to include for event implementation])
|
[Header to include for event implementation])
|
||||||
AC_MSG_CHECKING([for winning component additional CPPFLAGS])
|
AC_MSG_CHECKING([for winning component additional CPPFLAGS])
|
||||||
AS_IF([test "$event_base_include_cppflags" != ""],
|
eval "opal_event_base_include_cppflags=\`echo \$opal_event_${opal_event_winner}_include_cppflags\`"
|
||||||
[AC_MSG_RESULT([$event_base_include_cppflags])
|
AS_IF([test "$opal_event_base_include_cppflags" != ""],
|
||||||
CPPFLAGS="$CPPFLAGS $event_base_include_cppflags"],
|
[AC_MSG_RESULT([$opal_event_base_include_cppflags])
|
||||||
|
CPPFLAGS="$CPPFLAGS $opal_event_base_include_cppflags"],
|
||||||
[AC_MSG_RESULT([none])])
|
[AC_MSG_RESULT([none])])
|
||||||
])
|
])
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
|
jsquyres
|
||||||
rhc
|
rhc
|
||||||
hjelmn
|
hjelmn
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# -*- shell-script -*-
|
# -*- shell-script -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -169,16 +169,16 @@ EOF
|
|||||||
|
|
||||||
# Must set this variable so that the framework m4 knows
|
# Must set this variable so that the framework m4 knows
|
||||||
# what file to include in opal/mca/event/event.h
|
# what file to include in opal/mca/event/event.h
|
||||||
event_base_include="libevent2013/libevent2013.h"
|
opal_event_libevent2013_include="libevent2013/libevent2013.h"
|
||||||
|
|
||||||
# We also set _cppflags so that when including
|
# We also set _cppflags so that when including
|
||||||
# libevent2013.h, it can find all the actual libevent files.
|
# libevent2013.h, it can find all the actual libevent files.
|
||||||
# Be a little friendly and only include the -I for the
|
# Be a little friendly and only include the -I for the
|
||||||
# builddir if it's different than the srcdir.
|
# builddir if it's different than the srcdir.
|
||||||
file=$basedir/libevent
|
file=$basedir/libevent
|
||||||
event_base_include_cppflags="-I$OMPI_TOP_SRCDIR/$file -I$OMPI_TOP_SRCDIR/$file/include"
|
opal_event_libevent2013_include_cppflags="-I$OMPI_TOP_SRCDIR/$file -I$OMPI_TOP_SRCDIR/$file/include"
|
||||||
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
||||||
[event_base_include_cppflags="$event_base_include_cppflags -I$OMPI_TOP_BUILDDIR/$file/include"])
|
[opal_event_libevent2013_include_cppflags="$opal_event_libevent2013_include_cppflags -I$OMPI_TOP_BUILDDIR/$file/include"])
|
||||||
if test "$with_devel_headers" = "yes" ; then
|
if test "$with_devel_headers" = "yes" ; then
|
||||||
WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/opal/mca/event/libevent2013/libevent -I${includedir}/openmpi/opal/mca/event/libevent2013/libevent/include'
|
WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/opal/mca/event/libevent2013/libevent -I${includedir}/openmpi/opal/mca/event/libevent2013/libevent/include'
|
||||||
fi
|
fi
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# -*- shell-script -*-
|
# -*- shell-script -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -169,16 +169,16 @@ EOF
|
|||||||
|
|
||||||
# Must set this variable so that the framework m4 knows
|
# Must set this variable so that the framework m4 knows
|
||||||
# what file to include in opal/mca/event/event.h
|
# what file to include in opal/mca/event/event.h
|
||||||
event_base_include="libevent207/libevent207.h"
|
opal_event_libevent207_include="libevent207/libevent207.h"
|
||||||
|
|
||||||
# We also set _cppflags so that when including
|
# We also set _cppflags so that when including
|
||||||
# libevent207.h, it can find all the actual libevent files.
|
# libevent207.h, it can find all the actual libevent files.
|
||||||
# Be a little friendly and only include the -I for the
|
# Be a little friendly and only include the -I for the
|
||||||
# builddir if it's different than the srcdir.
|
# builddir if it's different than the srcdir.
|
||||||
file=$basedir/libevent
|
file=$basedir/libevent
|
||||||
event_base_include_cppflags="-I$OMPI_TOP_SRCDIR/$file -I$OMPI_TOP_SRCDIR/$file/include"
|
opal_event_libevent207_include_cppflags="-I$OMPI_TOP_SRCDIR/$file -I$OMPI_TOP_SRCDIR/$file/include"
|
||||||
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
||||||
[event_base_include_cppflags="$event_base_include_cppflags -I$OMPI_TOP_BUILDDIR/$file/include"])
|
[opal_event_libevent207_include_cppflags="$opal_event_libevent207_include_cppflags -I$OMPI_TOP_BUILDDIR/$file/include"])
|
||||||
if test "$with_devel_headers" = "yes" ; then
|
if test "$with_devel_headers" = "yes" ; then
|
||||||
WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/opal/mca/event/libevent207/libevent -I${includedir}/openmpi/opal/mca/event/libevent207/libevent/include'
|
WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/opal/mca/event/libevent207/libevent -I${includedir}/openmpi/opal/mca/event/libevent207/libevent/include'
|
||||||
fi
|
fi
|
||||||
|
@ -11,14 +11,19 @@ dnl
|
|||||||
# There will only be one component used in this framework, and it will
|
# There will only be one component used in this framework, and it will
|
||||||
# be selected at configure time by priority. Components must set
|
# be selected at configure time by priority. Components must set
|
||||||
# their priorities in their configure.m4 files. They must also set
|
# their priorities in their configure.m4 files. They must also set
|
||||||
# the shell variable $hwloc_base_include to a header file name
|
# the shell variable $opal_hwloc_<component>_include to a header file
|
||||||
# (relative to the top OMPI source directory) that will be included in
|
# name (relative to the top OMPI source directory) that will be
|
||||||
# opal/mca/hwloc/hwloc.h. Optionally, components may also set the
|
# included in opal/mca/hwloc/hwloc.h.
|
||||||
# shell variable $hwloc_base_cppflags if additional CPPFLAGS must be
|
|
||||||
# used with this header file, and $hwloc_base_ldflags and
|
# Optionally, components may also set the shell variable
|
||||||
# $hwloc_base_libs. The hwloc framework will add the winning
|
# $opal_hwloc_<component>_cppflags if additional CPPFLAGS must be used
|
||||||
# component's $hwloc_base_* to CPPFLAGS, LDFLAGS, and LIBS,
|
# with this header file, and $opal_hwloc_<component>_ldflags and
|
||||||
# respectively.
|
# $opal_hwloc_<component>_libs. The hwloc framework will add the
|
||||||
|
# winning component's $opal_hwloc_<c,oponent>_* to CPPFLAGS, LDFLAGS,
|
||||||
|
# and LIBS, respectively.
|
||||||
|
|
||||||
|
# Finally, components set $opal_hwloc_<component>_enable_xml to 0 or
|
||||||
|
# 1, indicating whether they have XML support or not.
|
||||||
|
|
||||||
dnl We only want one winning component.
|
dnl We only want one winning component.
|
||||||
m4_define(MCA_opal_hwloc_CONFIGURE_MODE, STOP_AT_FIRST_PRIORITY)
|
m4_define(MCA_opal_hwloc_CONFIGURE_MODE, STOP_AT_FIRST_PRIORITY)
|
||||||
@ -38,6 +43,8 @@ AC_DEFUN([MCA_opal_hwloc_CONFIG],[
|
|||||||
AC_REQUIRE([MCA_opal_hwloc_CONFIG_REQUIRE])
|
AC_REQUIRE([MCA_opal_hwloc_CONFIG_REQUIRE])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# See comments above for why this is a separate macro.
|
||||||
|
|
||||||
AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
||||||
|
|
||||||
# If this shell variable is not 1, then this m4 is being invoked
|
# If this shell variable is not 1, then this m4 is being invoked
|
||||||
@ -54,7 +61,7 @@ AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
|||||||
[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.]))
|
[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.]))
|
||||||
|
|
||||||
# set defaults of not having any support
|
# set defaults of not having any support
|
||||||
hwloc_base_enable_xml=0
|
opal_hwloc_base_enable_xml=0
|
||||||
OPAL_HAVE_HWLOC=0
|
OPAL_HAVE_HWLOC=0
|
||||||
|
|
||||||
# Configure all the components - always have to do this, even if
|
# Configure all the components - always have to do this, even if
|
||||||
@ -64,6 +71,9 @@ AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
|||||||
# REQUIRE.
|
# REQUIRE.
|
||||||
MCA_CONFIGURE_FRAMEWORK([opal], [hwloc], 1)
|
MCA_CONFIGURE_FRAMEWORK([opal], [hwloc], 1)
|
||||||
|
|
||||||
|
# Strip any leading/trailing spaces
|
||||||
|
opal_hwloc_winner=`echo $MCA_opal_hwloc_STATIC_COMPONENTS | sed -e 's/^[ ]+//' | sed -e 's/[ ]+$//'`
|
||||||
|
|
||||||
# Give a blank line to separate these messages from the last
|
# Give a blank line to separate these messages from the last
|
||||||
# component's configure.m4 output.
|
# component's configure.m4 output.
|
||||||
echo " "
|
echo " "
|
||||||
@ -76,6 +86,14 @@ AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
|||||||
AS_IF([test "$MCA_opal_hwloc_STATIC_COMPONENTS" = ""],
|
AS_IF([test "$MCA_opal_hwloc_STATIC_COMPONENTS" = ""],
|
||||||
[AC_MSG_WARN([Did not find a suitable static opal hwloc component])
|
[AC_MSG_WARN([Did not find a suitable static opal hwloc component])
|
||||||
AC_MSG_ERROR([Cannot continue])])
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
|
||||||
|
# If there's any spaces in the middle of the string, then we
|
||||||
|
# found more than 1 eligible static component. That's no good
|
||||||
|
# (and should never happen, but let's be sure)!
|
||||||
|
AS_IF([test "`echo $opal_hwloc_winner | sed 's/ //'`" != "$opal_hwloc_winner"],
|
||||||
|
[AC_MSG_WARN([Found more than 1 eligible static opal hwloc component])
|
||||||
|
AC_MSG_WARN([This should never happen!])
|
||||||
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
])
|
])
|
||||||
|
|
||||||
# If we have a winning component, do some more logic
|
# If we have a winning component, do some more logic
|
||||||
@ -83,37 +101,51 @@ AC_DEFUN([MCA_opal_hwloc_CONFIG_REQUIRE],[
|
|||||||
[ # We had a winner -- w00t!
|
[ # We had a winner -- w00t!
|
||||||
OPAL_HAVE_HWLOC=1
|
OPAL_HAVE_HWLOC=1
|
||||||
|
|
||||||
# The winning component will have set this.
|
# The winning component will have told us where their header file
|
||||||
AS_IF([test "$hwloc_base_include" = ""],
|
# is located
|
||||||
[AC_MSG_WARN([Missing implementation header])
|
AC_MSG_CHECKING([for winning hwloc component header file])
|
||||||
|
eval "opal_hwloc_base_include=\`echo \$opal_hwloc_${opal_hwloc_winner}_include\`"
|
||||||
|
AS_IF([test "$opal_hwloc_base_include" = ""],
|
||||||
|
[AC_MSG_RESULT([missing])
|
||||||
|
AC_MSG_WARN([Missing implementation header])
|
||||||
AC_MSG_ERROR([Cannot continue])])
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
AC_MSG_RESULT([$opal_hwloc_base_include])
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([MCA_hwloc_IMPLEMENTATION_HEADER],
|
AC_DEFINE_UNQUOTED([MCA_hwloc_IMPLEMENTATION_HEADER],
|
||||||
["$hwloc_base_include"],
|
["$opal_hwloc_base_include"],
|
||||||
[Header to include for hwloc implementation])
|
[Header to include for hwloc implementation])
|
||||||
|
|
||||||
# See if they set any flags for us
|
# See if they set any flags for us
|
||||||
AC_MSG_CHECKING([for winning hwloc component additional CPPFLAGS])
|
AC_MSG_CHECKING([for winning hwloc component additional CPPFLAGS])
|
||||||
AS_IF([test "$hwloc_base_cppflags" != ""],
|
eval "opal_hwloc_base_cppflags=\`echo \$opal_hwloc_${opal_hwloc_winner}_cppflags\`"
|
||||||
[AC_MSG_RESULT([$hwloc_base_cppflags])
|
AS_IF([test "$opal_hwloc_base_cppflags" != ""],
|
||||||
CPPFLAGS="$CPPFLAGS $hwloc_base_cppflags"],
|
[AC_MSG_RESULT([$opal_hwloc_base_cppflags])
|
||||||
|
CPPFLAGS="$CPPFLAGS $opal_hwloc_base_cppflags"],
|
||||||
[AC_MSG_RESULT([none])])
|
[AC_MSG_RESULT([none])])
|
||||||
AC_MSG_CHECKING([for winning hwloc component additional LDFLAGS])
|
AC_MSG_CHECKING([for winning hwloc component additional LDFLAGS])
|
||||||
AS_IF([test "$hwloc_base_ldflags" != ""],
|
eval "opal_hwloc_base_ldflags=\`echo \$opal_hwloc_${opal_hwloc_winner}_ldflags\`"
|
||||||
[AC_MSG_RESULT([$hwloc_base_ldflags])
|
AS_IF([test "$opal_hwloc_base_ldflags" != ""],
|
||||||
LDFLAGS="$LDFLAGS $hwloc_base_ldflags"],
|
[AC_MSG_RESULT([$opal_hwloc_base_ldflags])
|
||||||
|
LDFLAGS="$LDFLAGS $opal_hwloc_base_ldflags"],
|
||||||
[AC_MSG_RESULT([none])])
|
[AC_MSG_RESULT([none])])
|
||||||
AC_MSG_CHECKING([for winning hwloc component additional LIBS])
|
AC_MSG_CHECKING([for winning hwloc component additional LIBS])
|
||||||
AS_IF([test "$hwloc_base_libs" != ""],
|
eval "opal_hwloc_base_libs=\`echo \$opal_hwloc_${opal_hwloc_winner}_libs\`"
|
||||||
[AC_MSG_RESULT([$hwloc_base_libs])
|
AS_IF([test "$opal_hwloc_base_libs" != ""],
|
||||||
LIB="$LIBS $hwloc_base_libs"],
|
[AC_MSG_RESULT([$opal_hwloc_base_libs])
|
||||||
|
LIB="$LIBS $opal_hwloc_base_libs"],
|
||||||
[AC_MSG_RESULT([none])])
|
[AC_MSG_RESULT([none])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if winning hwloc supports XML])
|
||||||
|
eval "opal_hwloc_base_enable_xml=\`echo \$opal_hwloc_${opal_hwloc_winner}_enable_xml\`"
|
||||||
|
AS_IF([test "$opal_hwloc_base_enable_xml" = "1"],
|
||||||
|
[AC_MSG_RESULT([yes])],
|
||||||
|
[AC_MSG_RESULT([no])])
|
||||||
])
|
])
|
||||||
|
|
||||||
AM_CONDITIONAL(OPAL_HAVE_HWLOC, test $OPAL_HAVE_HWLOC -eq 1)
|
AM_CONDITIONAL(OPAL_HAVE_HWLOC, test $OPAL_HAVE_HWLOC -eq 1)
|
||||||
AC_DEFINE_UNQUOTED(OPAL_HAVE_HWLOC, $OPAL_HAVE_HWLOC,
|
AC_DEFINE_UNQUOTED(OPAL_HAVE_HWLOC, $OPAL_HAVE_HWLOC,
|
||||||
[Whether we have hwloc support or not])
|
[Whether we have hwloc support or not])
|
||||||
AC_DEFINE_UNQUOTED(OPAL_HAVE_HWLOC_XML, $hwloc_base_enable_xml,
|
AC_DEFINE_UNQUOTED(OPAL_HAVE_HWLOC_XML, $opal_hwloc_base_enable_xml,
|
||||||
[Enable xml support or not])
|
[Enable xml support or not])
|
||||||
|
|
||||||
# Similar to above, if this m4 is being invoked "early" via AC
|
# Similar to above, if this m4 is being invoked "early" via AC
|
||||||
|
23
opal/mca/hwloc/external/configure.m4
поставляемый
23
opal/mca/hwloc/external/configure.m4
поставляемый
@ -36,7 +36,7 @@ AC_DEFUN([MCA_opal_hwloc_external_POST_CONFIG],[
|
|||||||
AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
|
AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
|
||||||
AC_CONFIG_FILES([opal/mca/hwloc/external/Makefile])
|
AC_CONFIG_FILES([opal/mca/hwloc/external/Makefile])
|
||||||
|
|
||||||
OPAL_VAR_SCOPE_PUSH([opal_hwloc_external_CPPFLAGS_save opal_hwloc_external_CFLAGS_save opal_hwloc_external_LDFLAGS_save opal_hwloc_external_LIBS_save opal_hwloc_external_want])
|
OPAL_VAR_SCOPE_PUSH([opal_hwloc_external_CPPFLAGS_save opal_hwloc_external_CFLAGS_save opal_hwloc_external_LDFLAGS_save opal_hwloc_external_LIBS_save opal_hwloc_external_want opal_hwloc_external_tmp opal_hwloc_external_lstopo])
|
||||||
|
|
||||||
AC_ARG_WITH([hwloc-libdir],
|
AC_ARG_WITH([hwloc-libdir],
|
||||||
[AC_HELP_STRING([--with-hwloc-libdir=DIR],
|
[AC_HELP_STRING([--with-hwloc-libdir=DIR],
|
||||||
@ -85,7 +85,7 @@ AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
|
|||||||
[opal_hwloc_external_support=yes],
|
[opal_hwloc_external_support=yes],
|
||||||
[opal_hwloc_external_support=no])
|
[opal_hwloc_external_support=no])
|
||||||
|
|
||||||
CPPFLAGS=$opal_hwloc_external_CPPFLAGS_save
|
CPPFLAGS=$opal_hwloc_external_CPPFLAGS_savew
|
||||||
CFLAGS=$opal_hwloc_external_CFLAGS_save
|
CFLAGS=$opal_hwloc_external_CFLAGS_save
|
||||||
LDFLAGS=$opal_hwloc_external_LDFLAGS_save
|
LDFLAGS=$opal_hwloc_external_LDFLAGS_save
|
||||||
LIBS=$opal_hwloc_external_LIBS_save
|
LIBS=$opal_hwloc_external_LIBS_save
|
||||||
@ -96,10 +96,25 @@ AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
|
|||||||
[AC_DEFINE_UNQUOTED([HWLOC_EXTERNAL_HWLOC_VERSION],
|
[AC_DEFINE_UNQUOTED([HWLOC_EXTERNAL_HWLOC_VERSION],
|
||||||
[external],
|
[external],
|
||||||
[Version of hwloc])
|
[Version of hwloc])
|
||||||
|
|
||||||
|
# See if the external hwloc supports XML
|
||||||
|
AC_MSG_CHECKING([if external hwloc supports XML])
|
||||||
|
AS_IF([test "$opal_hwloc_dir" != ""],
|
||||||
|
[opal_hwloc_external_lstopo="$opal_hwloc_dir/bin/lstopo"],
|
||||||
|
[OPAL_WHICH(lstopo, opal_hwloc_external_lstopo)])
|
||||||
|
opal_hwloc_external_tmp=`$opal_hwloc_external_lstopo --help | $GREP "Supported output file formats" | grep xml`
|
||||||
|
AS_IF([test "$opal_hwloc_external_tmp" = ""],
|
||||||
|
[opal_hwloc_external_enable_xml=0
|
||||||
|
AC_MSG_RESULT([no])],
|
||||||
|
[opal_hwloc_external_enable_xml=1
|
||||||
|
AC_MSG_RESULT([yes])])
|
||||||
|
|
||||||
# Must set this variable so that the framework m4 knows
|
# Must set this variable so that the framework m4 knows
|
||||||
# what file to include in opal/mca/hwloc/hwloc.h
|
# what file to include in opal/mca/hwloc/hwloc.h
|
||||||
hwloc_base_include="$opal_hwloc_dir/include/hwloc.h"
|
opal_hwloc_external_include="$opal_hwloc_dir/include/hwloc.h"
|
||||||
hwloc_base_cppflags=$opal_hwloc_external_CPPFLAGS
|
opal_hwloc_external_cppflags=$opal_hwloc_external_CPPFLAGS
|
||||||
|
opal_hwloc_external_ldflags=$opal_hwloc_external_LDFLAGS
|
||||||
|
opal_hwloc_external_libs=$opal_hwloc_external_LIBS
|
||||||
|
|
||||||
# These flags need to get passed to the wrapper compilers
|
# These flags need to get passed to the wrapper compilers
|
||||||
# (this is unnecessary for the internal/embedded hwloc)
|
# (this is unnecessary for the internal/embedded hwloc)
|
||||||
|
12
opal/mca/hwloc/external/hwloc_external_component.c
поставляемый
12
opal/mca/hwloc/external/hwloc_external_component.c
поставляемый
@ -1,3 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2011 Cisco Systems, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
#include "opal_config.h"
|
#include "opal_config.h"
|
||||||
#include "opal/constants.h"
|
#include "opal/constants.h"
|
||||||
|
|
||||||
@ -30,7 +40,7 @@ const opal_hwloc_component_t mca_hwloc_external_component = {
|
|||||||
OPAL_HWLOC_BASE_VERSION_2_0_0,
|
OPAL_HWLOC_BASE_VERSION_2_0_0,
|
||||||
|
|
||||||
/* Component name and version */
|
/* Component name and version */
|
||||||
"hwloc_external",
|
"external",
|
||||||
OPAL_MAJOR_VERSION,
|
OPAL_MAJOR_VERSION,
|
||||||
OPAL_MINOR_VERSION,
|
OPAL_MINOR_VERSION,
|
||||||
OPAL_RELEASE_VERSION,
|
OPAL_RELEASE_VERSION,
|
||||||
|
@ -68,10 +68,10 @@ AC_DEFUN([MCA_opal_hwloc_hwloc121_CONFIG],[
|
|||||||
[enable xml support for hwloc (experimental)]))
|
[enable xml support for hwloc (experimental)]))
|
||||||
if test "$enable_hwloc_xml" = "yes"; then
|
if test "$enable_hwloc_xml" = "yes"; then
|
||||||
enable_xml=yes
|
enable_xml=yes
|
||||||
hwloc_base_enable_xml=1
|
opal_hwloc_hwloc121_enable_xml=1
|
||||||
else
|
else
|
||||||
enable_xml=no
|
enable_xml=no
|
||||||
hwloc_base_enable_xml=0
|
opal_hwloc_hwloc121_enable_xml=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc121/hwloc],
|
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc121/hwloc],
|
||||||
@ -115,7 +115,7 @@ AC_DEFUN([MCA_opal_hwloc_hwloc121_CONFIG],[
|
|||||||
|
|
||||||
# Set these variables so that the framework m4 knows
|
# Set these variables so that the framework m4 knows
|
||||||
# what file to include in opal/mca/hwloc/hwloc.h
|
# what file to include in opal/mca/hwloc/hwloc.h
|
||||||
hwloc_base_include="$opal_hwloc_hwloc121_basedir/hwloc121.h"
|
opal_hwloc_hwloc121_include="$opal_hwloc_hwloc121_basedir/hwloc121.h"
|
||||||
|
|
||||||
# We also set _cppflags so that when including
|
# We also set _cppflags so that when including
|
||||||
# opal/mca/hwloc/hwloc.h (and therefore this component's
|
# opal/mca/hwloc/hwloc.h (and therefore this component's
|
||||||
@ -123,9 +123,9 @@ AC_DEFUN([MCA_opal_hwloc_hwloc121_CONFIG],[
|
|||||||
# files. Be a little friendly and only include the -I for
|
# files. Be a little friendly and only include the -I for
|
||||||
# the builddir if it's different than the srcdir.
|
# the builddir if it's different than the srcdir.
|
||||||
opal_hwloc_hwloc121_file=$opal_hwloc_hwloc121_basedir/hwloc
|
opal_hwloc_hwloc121_file=$opal_hwloc_hwloc121_basedir/hwloc
|
||||||
hwloc_base_cppflags="-I$OMPI_TOP_SRCDIR/$opal_hwloc_hwloc121_file/include"
|
opal_hwloc_hwloc121_cppflags="-I$OMPI_TOP_SRCDIR/$opal_hwloc_hwloc121_file/include"
|
||||||
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
|
||||||
[hwloc_base_cppflags="$hwloc_base_cppflags -I$OMPI_TOP_BUILDDIR/$opal_hwloc_hwloc121_file/include"])
|
[opal_hwloc_hwloc121_cppflags="$opal_hwloc_hwloc121_cppflags -I$OMPI_TOP_BUILDDIR/$opal_hwloc_hwloc121_file/include"])
|
||||||
if test "$with_devel_headers" = "yes" ; then
|
if test "$with_devel_headers" = "yes" ; then
|
||||||
hwloc_hwloc121_WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/'"$opal_hwloc_hwloc121_basedir/hwloc/include"
|
hwloc_hwloc121_WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/'"$opal_hwloc_hwloc121_basedir/hwloc/include"
|
||||||
fi
|
fi
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user