700e97cf6a
for 32-bit architectures. This commit also modifies _OMPI_CHECK_HEADER to use AC_CHECK_HEADERS instead of AC_CHECK_HEADER. This allows components to check for multiple headers instead of just one. The new semantics of the header check in OMPI_CHECK_PACKAGE are to return success if at least one of the specified headers exists. The new semantics will not break current usage. cmr=v1.7.5:ticket=trac:4053 This commit was SVN r30476. The following Trac tickets were found above: Ticket 4053 --> https://svn.open-mpi.org/trac/ompi/ticket/4053
176 строки
8.1 KiB
Bash
176 строки
8.1 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) 2012 Cisco Systems, Inc. All rights reserved.
|
|
# Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
# _OMPI_CHECK_PACKAGE_HEADER(prefix, header, dir-prefix,
|
|
# [action-if-found], [action-if-not-found],
|
|
# includes)
|
|
# --------------------------------------------------------------------
|
|
AC_DEFUN([_OMPI_CHECK_PACKAGE_HEADER], [
|
|
# This is stolen from autoconf to peek under the covers to get the
|
|
# cache variable for the library check. one should not copy this
|
|
# code into other places unless you want much pain and suffering
|
|
AS_VAR_PUSHDEF([ompi_Header], [ac_cv_header_$2])
|
|
|
|
# so this sucks, but there's no way to get through the progression
|
|
# of header includes without killing off the cache variable and trying
|
|
# again...
|
|
unset ompi_Header
|
|
|
|
ompi_check_package_header_happy="no"
|
|
AS_IF([test "$3" = "/usr" -o "$3" = "/usr/local"],
|
|
[ # try as is...
|
|
AC_VERBOSE([looking for header without includes])
|
|
AC_CHECK_HEADERS([$2], [ompi_check_package_header_happy="yes"], [])
|
|
AS_IF([test "$ompi_check_package_header_happy" = "no"],
|
|
[# no go on the as is - reset the cache and try again
|
|
unset ompi_Header])])
|
|
|
|
AS_IF([test "$ompi_check_package_header_happy" = "no"],
|
|
[AS_IF([test "$3" != ""],
|
|
[$1_CPPFLAGS="$$1_CPPFLAGS -I$3/include"
|
|
CPPFLAGS="$CPPFLAGS -I$3/include"])
|
|
AC_CHECK_HEADERS([$2], [ompi_check_package_header_happy="yes"], [], [$6])
|
|
AS_IF([test "$ompi_check_package_header_happy" = "yes"], [$4], [$5])],
|
|
[$4])
|
|
unset ompi_check_package_header_happy
|
|
|
|
AS_VAR_POPDEF([ompi_Header])dnl
|
|
])
|
|
|
|
|
|
# _OMPI_CHECK_PACKAGE_LIB(prefix, library, function, extra-libraries,
|
|
# dir-prefix, libdir,
|
|
# [action-if-found], [action-if-not-found]])
|
|
# --------------------------------------------------------------------
|
|
AC_DEFUN([_OMPI_CHECK_PACKAGE_LIB], [
|
|
# This is stolen from autoconf to peek under the covers to get the
|
|
# cache variable for the library check. one should not copy this
|
|
# code into other places unless you want much pain and suffering
|
|
AS_LITERAL_IF([$2],
|
|
[AS_VAR_PUSHDEF([ompi_Lib], [ac_cv_lib_$2_$3])],
|
|
[AS_VAR_PUSHDEF([ompi_Lib], [ac_cv_lib_$2''_$3])])dnl
|
|
|
|
# see comment above
|
|
unset ompi_Lib
|
|
ompi_check_package_lib_happy="no"
|
|
AS_IF([test "$6" != ""],
|
|
[ # libdir was specified - search only there
|
|
$1_LDFLAGS="$$1_LDFLAGS -L$6"
|
|
LDFLAGS="$LDFLAGS -L$6"
|
|
AC_CHECK_LIB([$2], [$3],
|
|
[ompi_check_package_lib_happy="yes"],
|
|
[ompi_check_package_lib_happy="no"], [$4])
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
$1_LDFLAGS="$ompi_check_package_$1_orig_LDFLAGS"
|
|
unset ompi_Lib])],
|
|
[ # libdir was not specified - go through search path
|
|
ompi_check_package_libdir="$5"
|
|
AS_IF([test "$ompi_check_package_libdir" = "" -o "$ompi_check_package_libdir" = "/usr" -o "$ompi_check_package_libdir" = "/usr/local"],
|
|
[ # try as is...
|
|
AC_VERBOSE([looking for library without search path])
|
|
AC_CHECK_LIB([$2], [$3],
|
|
[ompi_check_package_lib_happy="yes"],
|
|
[ompi_check_package_lib_happy="no"], [$4])
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[ # no go on the as is.. see what happens later...
|
|
LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
$1_LDFLAGS="$ompi_check_package_$1_orig_LDFLAGS"
|
|
unset ompi_Lib])])
|
|
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[AS_IF([test "$ompi_check_package_libdir" != ""],
|
|
[$1_LDFLAGS="$$1_LDFLAGS -L$ompi_check_package_libdir/lib"
|
|
LDFLAGS="$LDFLAGS -L$ompi_check_package_libdir/lib"
|
|
AC_VERBOSE([looking for library in lib])
|
|
AC_CHECK_LIB([$2], [$3],
|
|
[ompi_check_package_lib_happy="yes"],
|
|
[ompi_check_package_lib_happy="no"], [$4])
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[ # no go on the as is.. see what happens later...
|
|
LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
$1_LDFLAGS="$ompi_check_package_$1_orig_LDFLAGS"
|
|
unset ompi_Lib])])])
|
|
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[AS_IF([test "$ompi_check_package_libdir" != ""],
|
|
[$1_LDFLAGS="$$1_LDFLAGS -L$ompi_check_package_libdir/lib64"
|
|
LDFLAGS="$LDFLAGS -L$ompi_check_package_libdir/lib64"
|
|
AC_VERBOSE([looking for library in lib64])
|
|
AC_CHECK_LIB([$2], [$3],
|
|
[ompi_check_package_lib_happy="yes"],
|
|
[ompi_check_package_lib_happy="no"], [$4])
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "no"],
|
|
[ # no go on the as is.. see what happens later...
|
|
LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
$1_LDFLAGS="$ompi_check_package_$1_orig_LDFLAGS"
|
|
unset ompi_Lib])])])])
|
|
|
|
AS_IF([test "$ompi_check_package_lib_happy" = "yes"],
|
|
[$1_LIBS="-l$2 $4"
|
|
$7], [$8])
|
|
|
|
AS_VAR_POPDEF([ompi_Lib])dnl
|
|
])
|
|
|
|
|
|
# OMPI_CHECK_PACKAGE(prefix,
|
|
# header,
|
|
# library,
|
|
# function,
|
|
# extra-libraries,
|
|
# dir-prefix,
|
|
# libdir-prefix,
|
|
# [action-if-found], [action-if-not-found],
|
|
# includes)
|
|
# -----------------------------------------------------------
|
|
# check for package defined by header and libs, and probably
|
|
# located in dir-prefix, possibly with libs in libdir-prefix.
|
|
# Both dir-prefix and libdir-prefix can be empty. Will set
|
|
# prefix_{CPPFLAGS, LDFLAGS, LIBS} as needed
|
|
AC_DEFUN([OMPI_CHECK_PACKAGE],[
|
|
ompi_check_package_$1_save_CPPFLAGS="$CPPFLAGS"
|
|
ompi_check_package_$1_save_LDFLAGS="$LDFLAGS"
|
|
ompi_check_package_$1_save_LIBS="$LIBS"
|
|
|
|
ompi_check_package_$1_orig_CPPFLAGS="$$1_CPPFLAGS"
|
|
ompi_check_package_$1_orig_LDFLAGS="$$1_LDFLAGS"
|
|
ompi_check_package_$1_orig_LIBS="$$1_LIBS"
|
|
|
|
_OMPI_CHECK_PACKAGE_HEADER([$1], [$2], [$6],
|
|
[_OMPI_CHECK_PACKAGE_LIB([$1], [$3], [$4], [$5], [$6], [$7],
|
|
[ompi_check_package_happy="yes"],
|
|
[ompi_check_package_happy="no"])],
|
|
[ompi_check_package_happy="no"],
|
|
[$10])
|
|
|
|
AS_IF([test "$ompi_check_package_happy" = "yes"],
|
|
[$8],
|
|
[$1_CPPFLAGS="$ompi_check_package_$1_orig_CPPFLAGS"
|
|
$1_LDFLAGS="$ompi_check_package_$1_orig_LDFLAGS"
|
|
$1_LIBS="$ompi_check_package_$1_orig_LIBS"
|
|
$9])
|
|
|
|
CPPFLAGS="$ompi_check_package_$1_save_CPPFLAGS"
|
|
LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
LIBS="$ompi_check_package_$1_save_LIBS"
|
|
])
|