1
1

Merge pull request #5395 from jsquyres/pr/prefer-externals

Change defaults to prefer external libevent/hwloc
Этот коммит содержится в:
Gilles Gouaillardet 2018-07-23 11:46:01 +09:00 коммит произвёл GitHub
родитель 30fb635836 a70ecf5267
Коммит 92d89411ca
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 213 добавлений и 157 удалений

Просмотреть файл

@ -1,6 +1,6 @@
dnl -*- shell-script -*- dnl -*- shell-script -*-
dnl dnl
dnl Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2010-2018 Cisco Systems, Inc. All rights reserved
dnl $COPYRIGHT$ dnl $COPYRIGHT$
dnl dnl
dnl Additional copyrights may follow dnl Additional copyrights may follow
@ -8,21 +8,52 @@ dnl
dnl $HEADER$ dnl $HEADER$
dnl dnl
# There will only be one component used in this framework, and it will dnl There will only be one component used in this framework, and it will
# be selected at configure time by priority. Components must set dnl be selected at configure time by priority. Components must set
# their priorities in their configure.m4 files. They must also set dnl their priorities in their configure.m4 files. They must also set
# the shell variable $opal_event_base_include to a header file name dnl the shell variable $opal_event_base_include to a header file name
# (relative to opal/mca/event) that will be included in dnl (relative to opal/mca/event) that will be included in
# opal/mca/event/event.h. dnl opal/mca/event/event.h.
dnl We only want one winning component (vs. STOP_AT_FIRST_PRIORITY, dnl We only want one winning component (vs. STOP_AT_FIRST_PRIORITY,
dnl which will allow all components of the same priority who succeed to dnl which will allow all components of the same priority who succeed to
dnl win) dnl win)
m4_define(MCA_opal_event_CONFIGURE_MODE, STOP_AT_FIRST) m4_define(MCA_opal_event_CONFIGURE_MODE, STOP_AT_FIRST)
dnl
dnl Setup --with-libevent and --with-libevent-libdir
dnl
AC_DEFUN([MCA_opal_event_SETUP],[
AC_ARG_WITH([libevent],
[AC_HELP_STRING([--with-libevent=DIR],
[Search for libevent headers and libraries in DIR. Should only be used if an external copy of libevent is being used.])])
# Bozo check
AS_IF([test "$with_libevent" = "no"],
[AC_MSG_WARN([It is not possible to configure Open MPI --without-libevent])
AC_MSG_ERROR([Cannot continue])])
AS_IF([test "$with_libevent" = "yes"],
[with_libevent=])
AC_ARG_WITH([libevent-libdir],
[AC_HELP_STRING([--with-libevent-libdir=DIR],
[Search for libevent libraries in DIR. Should only be used if an external copy of libevent is being used.])])
# Make sure the user didn't specify --with-libevent=internal and
# --with-libevent-libdir=whatever (because you can only specify
# --with-libevent-libdir when external libevent is being used).
AS_IF([test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"],
[AC_MSG_WARN([Both --with-libevent=internal and --with-libevent-libdir=DIR])
AC_MSG_WARN([were specified, which does not make sense.])
AC_MSG_ERROR([Cannot continue])])
])
AC_DEFUN([MCA_opal_event_CONFIG],[ AC_DEFUN([MCA_opal_event_CONFIG],[
opal_event_base_include= opal_event_base_include=
MCA_opal_event_SETUP
# configure all the components # configure all the components
MCA_CONFIGURE_FRAMEWORK($1, $2, 1) MCA_CONFIGURE_FRAMEWORK($1, $2, 1)

175
opal/mca/event/external/configure.m4 поставляемый
Просмотреть файл

@ -1,8 +1,8 @@
# -*- shell-script -*- # -*- shell-script -*-
# #
# Copyright (c) 2009-2013 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2009-2018 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. # Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved.
# Copyright (c) 2015-2017 Research Organization for Information Science # Copyright (c) 2015-2018 Research Organization for Information Science
# and Technology (RIST). All rights reserved. # and Technology (RIST). All rights reserved.
# #
# Copyright (c) 2017 Intel, Inc. All rights reserved. # Copyright (c) 2017 Intel, Inc. All rights reserved.
@ -56,72 +56,59 @@ AC_DEFUN([MCA_opal_event_external_POST_CONFIG],[
AC_DEFUN([MCA_opal_event_external_CONFIG],[ AC_DEFUN([MCA_opal_event_external_CONFIG],[
AC_CONFIG_FILES([opal/mca/event/external/Makefile]) AC_CONFIG_FILES([opal/mca/event/external/Makefile])
OPAL_VAR_SCOPE_PUSH([opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save]) OPAL_VAR_SCOPE_PUSH([opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_external_support opal_event_summary_msg])
AC_ARG_WITH([libevent], # Make some processing below easier ($with_libevent==yes and
[AC_HELP_STRING([--with-libevent=DIR], # $with_libevent==no has already been filtered out).
[Search for libevent headers and libraries in DIR. Should only be used if an external copy of libevent is being used.])]) AS_IF([test "$with_libevent" = "external"],
[with_libevent=])
# Bozo check opal_event_summary_msg="internal"
AS_IF([test "$with_libevent" = "no"],
[AC_MSG_WARN([It is not possible to configure Open MPI --without-libevent])
AC_MSG_ERROR([Cannot continue])])
AC_ARG_WITH([libevent-libdir], # Once we get to this point, $with_libevent is either: blank, a
[AC_HELP_STRING([--with-libevent-libdir=DIR], # directory location, or "internal".
[Search for libevent libraries in DIR. Should only be used if an external copy of libevent is being used.])])
# Make sure the user didn't specify --with-libevent=internal and # Check the value of $with_libevent_libdir. This macro safely
# --with-libevent-libdir=whatever (because you can only specify # handles "yes", "no", blank, and directory name values.
# --with-libevent-libdir when external libevent is being used). OPAL_CHECK_WITHDIR([libevent-libdir], [$with_libevent_libdir],
AS_IF([test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"], [libevent.*])
[AC_MSG_WARN([Both --with-libevent=internal and --with-libevent-libdir=DIR])
AC_MSG_WARN([were specified, which does not make sense.])
AC_MSG_ERROR([Cannot continue])])
# Do we want this external component? (slightly redundant logic, # Did the user want us to check for libevent in a specific location?
# but hopefully slightly more clear...) AC_MSG_CHECKING([for external libevent in])
opal_event_external_want=no AS_IF([test -n "$with_libevent" && \
AS_IF([test "$with_libevent" = "external"], [opal_event_external_want=yes]) test "$with_libevent" != "external" && \
AS_IF([test -n "$with_libevent_libdir"], [opal_event_external_want=yes]) test "$with_libevent" != "internal" && \
AS_IF([test -n "$with_libevent" && test "$with_libevent" != "no" && test "$with_libevent" != "internal"], [opal_event_external_want=yes]) test "$with_libevent" != "yes" && \
test "$with_libevent" != "no"],
[opal_event_dir=$with_libevent
AC_MSG_RESULT([$opal_event_dir])
OPAL_CHECK_WITHDIR([libevent], [$opal_event_dir],
[include/event.h])
AS_IF([test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"],
[AC_MSG_CHECKING([for $with_libevent/lib64])
AS_IF([test -d "$with_libevent/lib64"],
[opal_event_libdir_found=yes
AC_MSG_RESULT([found])],
[opal_event_libdir_found=no
AC_MSG_RESULT([not found])])
AS_IF([test "$opal_event_libdir_found" = "yes"],
[opal_event_libdir="$with_libevent/lib64"],
[AC_MSG_CHECKING([for $with_libevent/lib])
AS_IF([test -d "$with_libevent/lib"],
[AC_MSG_RESULT([found])
opal_event_libdir="$with_libevent/lib"],
[AC_MSG_RESULT([not found])
AC_MSG_WARN([Library directories were not found:])
AC_MSG_WARN([ $with_libevent/lib64])
AC_MSG_WARN([ $with_libevent/lib])
AC_MSG_WARN([Please use --with-libevent-libdir to identify it.])
AC_MSG_ERROR([Cannot continue])])])])],
[AC_MSG_RESULT([(default search paths)])])
AS_IF([test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"],
[opal_event_libdir="$with_libevent_libdir"])
# If we want external support, try it AS_IF([test "$with_libevent" != "internal"],
AS_IF([test "$opal_event_external_want" = "yes"], [opal_event_external_CPPFLAGS_save=$CPPFLAGS
[ # Error out if the specified dir does not exist
OPAL_CHECK_WITHDIR([libevent-libdir], [$with_libevent_libdir],
[libevent.*])
AC_MSG_CHECKING([for external libevent in])
AS_IF([test "$with_libevent" != "external" && test "$with_libevent" != "yes"],
[opal_event_dir=$with_libevent
AC_MSG_RESULT([$opal_event_dir])
OPAL_CHECK_WITHDIR([libevent], [$opal_event_dir],
[include/event.h])
AS_IF([test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"],
[AC_MSG_CHECKING([for $with_libevent/lib64])
AS_IF([test -d "$with_libevent/lib64"],
[opal_event_libdir_found=yes
AC_MSG_RESULT([found])],
[opal_event_libdir_found=no
AC_MSG_RESULT([not found])])
AS_IF([test "$opal_event_libdir_found" = "yes"],
[opal_event_libdir="$with_libevent/lib64"],
[AC_MSG_CHECKING([for $with_libevent/lib])
AS_IF([test -d "$with_libevent/lib"],
[AC_MSG_RESULT([found])
opal_event_libdir="$with_libevent/lib"],
[AC_MSG_RESULT([not found])
AC_MSG_WARN([Library directories were not found:])
AC_MSG_WARN([ $with_libevent/lib64])
AC_MSG_WARN([ $with_libevent/lib])
AC_MSG_WARN([Please use --with-libevent-libdir to identify it.])
AC_MSG_ERROR([Cannot continue])])])])],
[AC_MSG_RESULT([(default search paths)])])
AS_IF([test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"],
[opal_event_libdir="$with_libevent_libdir"])
opal_event_external_CPPFLAGS_save=$CPPFLAGS
opal_event_external_CFLAGS_save=$CFLAGS opal_event_external_CFLAGS_save=$CFLAGS
opal_event_external_LDFLAGS_save=$LDFLAGS opal_event_external_LDFLAGS_save=$LDFLAGS
opal_event_external_LIBS_save=$LIBS opal_event_external_LIBS_save=$LIBS
@ -136,23 +123,42 @@ AC_DEFUN([MCA_opal_event_external_CONFIG],[
[opal_event_external_support=yes], [opal_event_external_support=yes],
[opal_event_external_support=no]) [opal_event_external_support=no])
# Ensure that this libevent has the symbol AS_IF([test "$opal_event_external_support" = "yes"],
# "evthread_set_lock_callbacks", which will only exist if [# Ensure that this libevent has the symbol
# libevent was configured with thread support. # "evthread_set_lock_callbacks", which will only exist if
LIBS="$opal_event_external_LDFLAGS $LIBS" # libevent was configured with thread support.
AC_CHECK_LIB([event], [evthread_set_lock_callbacks], LIBS="$opal_event_external_LDFLAGS $LIBS"
[], AC_CHECK_LIB([event], [evthread_set_lock_callbacks],
[AC_MSG_WARN([External libevent does not have thread support]) [],
AC_MSG_WARN([Open MPI requires libevent to be compiled with]) [AC_MSG_WARN([External libevent does not have thread support])
AC_MSG_WARN([thread support enabled]) AC_MSG_WARN([Open MPI requires libevent to be compiled with])
AC_MSG_ERROR([Cannot continue])]) AC_MSG_WARN([thread support enabled])
opal_event_external_support=no])])
AC_CHECK_LIB([event_pthreads], [evthread_use_pthreads], AS_IF([test "$opal_event_external_support" = "yes"],
[], [AC_CHECK_LIB([event_pthreads], [evthread_use_pthreads],
[AC_MSG_WARN([External libevent does not have thread support]) [],
AC_MSG_WARN([Open MPI requires libevent to be compiled with]) [AC_MSG_WARN([External libevent does not have thread support])
AC_MSG_WARN([thread support enabled]) AC_MSG_WARN([Open MPI requires libevent to be compiled with])
AC_MSG_ERROR([Cannot continue])]) AC_MSG_WARN([thread support enabled])
opal_event_external_support=no])])
AS_IF([test "$opal_event_external_support" = "yes"],
[AS_IF([test -z "$with_libevent" || test "$with_libevent" = "yes"],
[AC_MSG_CHECKING([if external libevent version is 2.0.21 or greater])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <event.h>]],
[[
#if _EVENT_NUMERIC_VERSION < 0x02001500
#error "libevent API version is less than 0x02001500"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
opal_event_summary_msg="internal (external libevent version is less that internal version 2.0.21)"
AC_MSG_WARN([external libevent version is less than internal version (2.0.21)])
AC_MSG_WARN([using internal libevent])
opal_event_external_support=no])])])
CPPFLAGS=$opal_event_external_CPPFLAGS_save CPPFLAGS=$opal_event_external_CPPFLAGS_save
CFLAGS=$opal_event_external_CFLAGS_save CFLAGS=$opal_event_external_CFLAGS_save
@ -171,20 +177,27 @@ AC_DEFUN([MCA_opal_event_external_CONFIG],[
# building with developer headers so that our headers can # building with developer headers so that our headers can
# be found. # be found.
event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS
event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS])
])
##################################################################
# Done! # Done!
AS_IF([test "$opal_event_external_support" = "yes"], AS_IF([test "$opal_event_external_support" = "yes"],
[ # If we configured successfully, set [# If we configured successfully, set
# OPAL_HAVE_WORKING_EVENTOPS to 1 (it's a calculated value # OPAL_HAVE_WORKING_EVENTOPS to 1 (it's a calculated value
# in the embedded Open MPI libevent, so we can only assume # in the embedded Open MPI libevent, so we can only assume
# what it is in the installed libevent :-\ ). # what it is in the installed libevent :-\ ).
file=$opal_event_dir/include/libevent/config.h file=$opal_event_dir/include/libevent/config.h
OPAL_HAVE_WORKING_EVENTOPS=1 OPAL_HAVE_WORKING_EVENTOPS=1
opal_event_summary_msg="external"
$1], $1],
[OPAL_HAVE_WORKING_EVENTOPS=0 [OPAL_HAVE_WORKING_EVENTOPS=0
AS_IF([test "$with_libevent" != internal && test -n "$with_libevent"],
[AC_MSG_WARN([external libevent requested but cannot be built])
AC_MSG_ERROR([Cannot continue.])])
$2]) $2])
OPAL_SUMMARY_ADD([[Miscellaneous]],[[Libevent support]], [], [$opal_event_summary_msg])
OPAL_VAR_SCOPE_POP OPAL_VAR_SCOPE_POP
])dnl ])dnl

146
opal/mca/hwloc/external/configure.m4 поставляемый
Просмотреть файл

@ -1,7 +1,7 @@
# -*- shell-script -*- # -*- shell-script -*-
# #
# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved # Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2014-2017 Research Organization for Information Science # Copyright (c) 2014-2018 Research Organization for Information Science
# and Technology (RIST). All rights reserved. # and Technology (RIST). All rights reserved.
# #
# Copyright (c) 2018 Intel, Inc. All rights reserved. # Copyright (c) 2018 Intel, Inc. All rights reserved.
@ -84,7 +84,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_hwloc_external_tmp opal_hwloc_external_lstopo]) 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_tmp opal_hwloc_external_lstopo opal_hwloc_summary_msg])
AC_ARG_WITH([hwloc-libdir], AC_ARG_WITH([hwloc-libdir],
[AC_HELP_STRING([--with-hwloc-libdir=DIR], [AC_HELP_STRING([--with-hwloc-libdir=DIR],
@ -98,19 +98,9 @@ AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
AC_MSG_WARN([were specified, which does not make sense.]) AC_MSG_WARN([were specified, which does not make sense.])
AC_MSG_ERROR([Cannot continue])]) AC_MSG_ERROR([Cannot continue])])
# Do we want this external component? (slightly redundant logic, opal_hwloc_summary_msg="internal"
# but hopefully slightly more clear...) # Try external support if needed
opal_hwloc_external_want=no AS_IF([test "$with_hwloc" != "internal"],
AS_IF([test "$with_hwloc_libdir" != ""], [opal_hwloc_external_want=yes])
AS_IF([test "$with_hwloc" = "external"], [opal_hwloc_external_want=yes])
AS_IF([test "$with_hwloc" != "" && \
test "$with_hwloc" != "no" && \
test "$with_hwloc" != "internal" && \
test "$with_hwloc" != "future"], [opal_hwloc_external_want=yes])
AS_IF([test "$with_hwloc" = "no"], [opal_hwloc_external_want=no])
# If we still want external support, try it
AS_IF([test "$opal_hwloc_external_want" = "yes"],
[OPAL_CHECK_WITHDIR([hwloc-libdir], [$with_hwloc_libdir], [OPAL_CHECK_WITHDIR([hwloc-libdir], [$with_hwloc_libdir],
[libhwloc.*]) [libhwloc.*])
@ -144,64 +134,86 @@ AC_DEFUN([MCA_opal_hwloc_external_CONFIG],[
LDFLAGS="$LDFLAGS $opal_hwloc_external_LDFLAGS" LDFLAGS="$LDFLAGS $opal_hwloc_external_LDFLAGS"
LIBS="$LIBS $opal_hwloc_external_LIBS" LIBS="$LIBS $opal_hwloc_external_LIBS"
AC_CHECK_DECLS([HWLOC_OBJ_OSDEV_COPROC], [], [], [#include <hwloc.h>]) AC_CHECK_DECLS([HWLOC_OBJ_OSDEV_COPROC], [], [], [#include <hwloc.h>])
AC_CHECK_FUNCS([hwloc_topology_dup])]) AC_CHECK_FUNCS([hwloc_topology_dup])
CPPFLAGS=$opal_hwloc_external_CPPFLAGS_save AC_MSG_CHECKING([if external hwloc version is 1.5 or greater])
CFLAGS=$opal_hwloc_external_CFLAGS_save AC_COMPILE_IFELSE(
LDFLAGS=$opal_hwloc_external_LDFLAGS_save [AC_LANG_PROGRAM([[#include <hwloc.h>]],
LIBS=$opal_hwloc_external_LIBS_save [[
#if HWLOC_API_VERSION < 0x00010500
#error "hwloc API version is less than 0x00010500"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
opal_hwloc_external_support=no])])
# If external hwloc is not explicitly requested, check external version
# is not lower than the internal one
AS_IF([test "$opal_hwloc_external_support" = "yes"],
[AS_IF([test -z "$with_hwloc" || test "$with_hwloc" = "yes"],
[AC_MSG_CHECKING([if external hwloc version is 2.0 or greater])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <hwloc.h>]],
[[
#if HWLOC_API_VERSION < 0x00020000
#error "hwloc API version is less than 0x00020000"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
opal_hwloc_summary_msg="internal (external hlwoc version is less than internal version 2.0)"
AC_MSG_WARN([external hwloc version is less than internal version 2.0])
AC_MSG_WARN([using internal hwloc])
opal_hwloc_external_support=no])])])
AS_IF([test "$opal_hwloc_external_support" = "yes"],
[AC_DEFINE_UNQUOTED([HWLOC_EXTERNAL_HWLOC_VERSION],
[external],
[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])])
AC_CHECK_HEADERS([infiniband/verbs.h])
# These flags need to get passed to the wrapper compilers
# (this is unnecessary for the internal/embedded hwloc)
# Finally, add some flags to the wrapper compiler if we're
# building with developer headers so that our headers can
# be found.
hwloc_external_WRAPPER_EXTRA_CPPFLAGS=$opal_hwloc_external_CPPFLAGS
hwloc_external_WRAPPER_EXTRA_LDFLAGS=$opal_hwloc_external_LDFLAGS
hwloc_external_WRAPPER_EXTRA_LIBS=$opal_hwloc_external_LIBS])
CPPFLAGS=$opal_hwloc_external_CPPFLAGS_save
CFLAGS=$opal_hwloc_external_CFLAGS_save
LDFLAGS=$opal_hwloc_external_LDFLAGS_save
LIBS=$opal_hwloc_external_LIBS_save
]) ])
# Done! # Done!
AS_IF([test "$opal_hwloc_external_support" = "yes"], AS_IF([test "$opal_hwloc_external_support" = "yes"],
[AC_DEFINE_UNQUOTED([HWLOC_EXTERNAL_HWLOC_VERSION], [opal_hwloc_summary_msg="external"
[external],
[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])])
AC_CHECK_HEADERS([infiniband/verbs.h])
AC_MSG_CHECKING([if external hwloc version is 1.5 or greater])
AS_IF([test "$opal_hwloc_dir" != ""],
[opal_hwloc_external_CFLAGS_save=$CFLAGS
CFLAGS="-I$opal_hwloc_dir/include $opal_hwloc_external_CFLAGS_save"])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <hwloc.h>]],
[[
#if HWLOC_API_VERSION < 0x00010500
#error "hwloc API version is less than 0x00010500"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([Cannot continue])])
AS_IF([test "$opal_hwloc_dir" != ""],
[CFLAGS=$opal_hwloc_external_CFLAGS_save])
# These flags need to get passed to the wrapper compilers
# (this is unnecessary for the internal/embedded hwloc)
# Finally, add some flags to the wrapper compiler if we're
# building with developer headers so that our headers can
# be found.
hwloc_external_WRAPPER_EXTRA_CPPFLAGS=$opal_hwloc_external_CPPFLAGS
hwloc_external_WRAPPER_EXTRA_LDFLAGS=$opal_hwloc_external_LDFLAGS
hwloc_external_WRAPPER_EXTRA_LIBS=$opal_hwloc_external_LIBS
$1], $1],
[$2]) [# Abort is external hwloc was explicitly requested but cannot be built
AS_IF([test "$with_hwloc" != internal &&
test -n "$with_hwloc"],
[AC_MSG_WARN([external hwloc cannot be built])
AC_MSG_ERROR([Cannot continue.])])
$2])
OPAL_SUMMARY_ADD([[Miscellaneous]],[[HWLOC support]], [], [$opal_hwloc_summary_msg])
AC_SUBST(opal_hwloc_external_LDFLAGS) AC_SUBST(opal_hwloc_external_LDFLAGS)
AC_SUBST(opal_hwloc_external_LIBS) AC_SUBST(opal_hwloc_external_LIBS)

Просмотреть файл

@ -2,7 +2,7 @@
# #
# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved # Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. # Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
# Copyright (c) 2015-2017 Research Organization for Information Science # Copyright (c) 2015-2018 Research Organization for Information Science
# and Technology (RIST). All rights reserved. # and Technology (RIST). All rights reserved.
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights # Copyright (c) 2016 Los Alamos National Security, LLC. All rights
# reserved. # reserved.
@ -17,7 +17,7 @@
# #
# Priority # Priority
# #
AC_DEFUN([MCA_opal_hwloc_hwloc201_PRIORITY], [90]) AC_DEFUN([MCA_opal_hwloc_hwloc201_PRIORITY], [80])
# #
# Force this component to compile in static-only mode # Force this component to compile in static-only mode