1
1

Per Jeff (this work was done on a branch of mine, so I will do the commit):

Re-enable "./autogen.sh -no-ompi" again. If you -no-ompi, the entire OMPI
configury is skipped and the entire ompi/ subtree is not built. There's
some simple m4-isms that prune out the relevant parts.

I added ompi/config/, orte/config/, and opal/config/ directories. I moved a
bunch of m4 files from the top-level config/ dir into ompi/config/, and a few
into orte/config/.

Note that all 3 <project>/config directories have a config_files.m4 file. This
file contains the AC_CONFIG_FILES list for that project. The AC_CONFIG_FILES
call cannot be in an AC_DEFUN macro and conditionally called -- if it is
included at all, Autoconf will process it. Hence, these config_files.m4 files
don't AC_DEFUN -- they just have AC_CONFIG_FILES. m4_ifdef() is used to
conditionally include the files or not.

I moved a bunch of obvious OMPI-only m4 files from config/ to ompi/config/,
but I'm sure that there's more that could go. A ticket will be filed with
thoughts on future work in this area.

This commit was SVN r22113.
Этот коммит содержится в:
Ralph Castain 2009-10-20 23:44:20 +00:00
родитель f1f156d57b
Коммит 214e26b539
47 изменённых файлов: 839 добавлений и 512 удалений

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

@ -517,7 +517,14 @@ EOF
fi fi
if test -f $topdir_file; then if test -f $topdir_file; then
run_and_check $ompi_aclocal -I config flags=
if test "$want_orte" = "1"; then
flags="$flags -I orte/config"
fi
if test "$want_ompi" = "1"; then
flags="$flags -I ompi/config"
fi
run_and_check $ompi_aclocal -I config -I opal/config $flags
else else
run_and_check $ompi_aclocal run_and_check $ompi_aclocal
fi fi
@ -1623,12 +1630,35 @@ fi
if test -f VERSION -a -f configure.ac -a -f $topdir_file ; then if test -f VERSION -a -f configure.ac -a -f $topdir_file ; then
# locations to look for mca modules # locations to look for mca modules
config_project_list="opal" config_project_list="opal"
project_file=config/project_list.m4
rm -f $project_file
cat > $project_file <<EOF
dnl This file is automatically generated by autogen.sh
dnl Manual changes will be lost!
dnl Listing of sub-layers to include
m4_define([project_opal], [1])
EOF
project_name_long="Open Portability Access Layer"
project_name_short="open-pal"
if test "$want_orte" = "1" ; then if test "$want_orte" = "1" ; then
config_project_list="$config_project_list orte" config_project_list="$config_project_list orte"
echo "m4_define([project_orte], [1])" >> $project_file
project_name_long="Open MPI Run Time Environment"
project_name_short="openmpi-rte"
fi fi
if test "$want_ompi" = "1" ; then if test "$want_ompi" = "1" ; then
config_project_list="$config_project_list ompi" config_project_list="$config_project_list ompi"
echo "m4_define([project_ompi], [1])" >> $project_file
project_name_long="Open MPI"
project_name_short="openmpi"
fi fi
cat >> $project_file <<EOF
dnl Project name
m4_define([project_name_long], [$project_name_long])
m4_define([project_name_short], [$project_name_short])
EOF
echo "Configuring projects: $config_project_list" echo "Configuring projects: $config_project_list"
# Top level of OMPI tree # Top level of OMPI tree

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

@ -32,16 +32,20 @@ dnl
AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
WRAPPER_EXTRA_CPPFLAGS= WRAPPER_EXTRA_CPPFLAGS=
WRAPPER_EXTRA_CFLAGS= WRAPPER_EXTRA_CFLAGS=
WRAPPER_EXTRA_CXXFLAGS= # Only worry about C++ and Fortran if we're building the OMPI project
WRAPPER_EXTRA_FFLAGS= m4_ifdef([project_ompi],
WRAPPER_EXTRA_FCFLAGS= [WRAPPER_EXTRA_CXXFLAGS=
WRAPPER_EXTRA_FFLAGS=
WRAPPER_EXTRA_FCFLAGS=])
WRAPPER_EXTRA_LDFLAGS= WRAPPER_EXTRA_LDFLAGS=
WRAPPER_EXTRA_LIBS= WRAPPER_EXTRA_LIBS=
USER_WRAPPER_EXTRA_CFLAGS= USER_WRAPPER_EXTRA_CFLAGS=
USER_WRAPPER_EXTRA_CXXFLAGS= # Only worry about C++ and Fortran if we're building the OMPI project
USER_WRAPPER_EXTRA_FFLAGS= m4_ifdef([project_ompi],
USER_WRAPPER_EXTRA_FCFLAGS= [USER_WRAPPER_EXTRA_CXXFLAGS=
USER_WRAPPER_EXTRA_FFLAGS=
USER_WRAPPER_EXTRA_FCFLAGS=])
USER_WRAPPER_EXTRA_LDFLAGS= USER_WRAPPER_EXTRA_LDFLAGS=
USER_WRAPPER_EXTRA_LIBS= USER_WRAPPER_EXTRA_LIBS=
@ -54,32 +58,35 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
USER_WRAPPER_EXTRA_CFLAGS="$with_wrapper_cflags" USER_WRAPPER_EXTRA_CFLAGS="$with_wrapper_cflags"
fi fi
AC_ARG_WITH([wrapper-cxxflags], # Only worry about C++ and Fortran if we're building the OMPI project
[AC_HELP_STRING([--with-wrapper-cxxflags], m4_ifdef([project_ompi],
[Extra flags to add to CXXFLAGS when using mpiCC/mpic++])]) [AC_ARG_WITH([wrapper-cxxflags],
if test "$with_wrapper_cxxflags" = "yes" -o "$with_wrapper_cxxflags" = "no"; then [AC_HELP_STRING([--with-wrapper-cxxflags],
AC_MSG_ERROR([--with-wrapper-cxxflags must have an argument. Aborting]) [Extra flags to add to CXXFLAGS when using mpiCC/mpic++])])
elif test ! -z "$with_wrapper_cxxflags" ; then if test "$with_wrapper_cxxflags" = "yes" -o "$with_wrapper_cxxflags" = "no"; then
USER_WRAPPER_EXTRA_CXXFLAGS="$with_wrapper_cxxflags" AC_MSG_ERROR([--with-wrapper-cxxflags must have an argument. Aborting])
fi elif test ! -z "$with_wrapper_cxxflags" ; then
USER_WRAPPER_EXTRA_CXXFLAGS="$with_wrapper_cxxflags"
fi
AC_ARG_WITH([wrapper-fflags], AC_ARG_WITH([wrapper-fflags],
[AC_HELP_STRING([--with-wrapper-fflags], [AC_HELP_STRING([--with-wrapper-fflags],
[Extra flags to add to FFLAGS when using mpif77])]) [Extra flags to add to FFLAGS when using mpif77])])
if test "$with_wrapper_fflags" = "yes" -o "$with_wrapper_fflags" = "no"; then if test "$with_wrapper_fflags" = "yes" -o "$with_wrapper_fflags" = "no"; then
AC_MSG_ERROR([--with-wrapper-fflags must have an argument. Aborting]) AC_MSG_ERROR([--with-wrapper-fflags must have an argument. Aborting])
elif test ! -z "$with_wrapper_fflags" ; then elif test ! -z "$with_wrapper_fflags" ; then
USER_WRAPPER_EXTRA_FFLAGS="$with_wrapper_fflags" USER_WRAPPER_EXTRA_FFLAGS="$with_wrapper_fflags"
fi fi
AC_ARG_WITH([wrapper-fcflags], AC_ARG_WITH([wrapper-fcflags],
[AC_HELP_STRING([--with-wrapper-fcflags], [AC_HELP_STRING([--with-wrapper-fcflags],
[Extra flags to add to FCFLAGS when using mpif90])]) [Extra flags to add to FCFLAGS when using mpif90])])
if test "$with_wrapper_fcflags" = "yes" -o "$with_wrapper_fcflags" = "no"; then if test "$with_wrapper_fcflags" = "yes" -o "$with_wrapper_fcflags" = "no"; then
AC_MSG_ERROR([--with-wrapper-fcflags must have an argument. Aborting]) AC_MSG_ERROR([--with-wrapper-fcflags must have an argument. Aborting])
elif test ! -z "$with_wrapper_fcflags" ; then elif test ! -z "$with_wrapper_fcflags" ; then
USER_WRAPPER_EXTRA_FCFLAGS="$with_wrapper_fcflags" USER_WRAPPER_EXTRA_FCFLAGS="$with_wrapper_fcflags"
fi fi
])
AC_ARG_WITH([wrapper-ldflags], AC_ARG_WITH([wrapper-ldflags],
[AC_HELP_STRING([--with-wrapper-ldflags], [AC_HELP_STRING([--with-wrapper-ldflags],
@ -104,9 +111,11 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
OMPI_UNIQ([WRAPPER_EXTRA_CPPFLAGS]) OMPI_UNIQ([WRAPPER_EXTRA_CPPFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_CFLAGS]) OMPI_UNIQ([WRAPPER_EXTRA_CFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_CXXFLAGS]) # Only worry about C++ and Fortran if we're building the OMPI project
OMPI_UNIQ([WRAPPER_EXTRA_FFLAGS]) m4_ifdef([project_ompi],
OMPI_UNIQ([WRAPPER_EXTRA_FCFLAGS]) [OMPI_UNIQ([WRAPPER_EXTRA_CXXFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_FFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_FCFLAGS])])
OMPI_UNIQ([WRAPPER_EXTRA_LDFLAGS]) OMPI_UNIQ([WRAPPER_EXTRA_LDFLAGS])
# #
@ -125,11 +134,6 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
AC_SUBST([OPAL_WRAPPER_EXTRA_CFLAGS]) AC_SUBST([OPAL_WRAPPER_EXTRA_CFLAGS])
AC_MSG_RESULT([$OPAL_WRAPPER_EXTRA_CFLAGS]) AC_MSG_RESULT([$OPAL_WRAPPER_EXTRA_CFLAGS])
AC_MSG_CHECKING([for OPAL CXXFLAGS])
OPAL_WRAPPER_EXTRA_CXXFLAGS="$WRAPPER_EXTRA_CXXFLAGS $USER_WRAPPER_EXTRA_CXXFLAGS"
AC_SUBST([OPAL_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_RESULT([$OPAL_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_CHECKING([for OPAL LDFLAGS]) AC_MSG_CHECKING([for OPAL LDFLAGS])
OPAL_WRAPPER_EXTRA_LDFLAGS="$opal_WRAPPER_EXTRA_LDFLAGS $WRAPPER_EXTRA_LDFLAGS $USER_WRAPPER_EXTRA_LDFLAGS" OPAL_WRAPPER_EXTRA_LDFLAGS="$opal_WRAPPER_EXTRA_LDFLAGS $WRAPPER_EXTRA_LDFLAGS $USER_WRAPPER_EXTRA_LDFLAGS"
AC_SUBST([OPAL_WRAPPER_EXTRA_LDFLAGS]) AC_SUBST([OPAL_WRAPPER_EXTRA_LDFLAGS])
@ -152,115 +156,114 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
# #
# ORTE # ORTE
# #
OMPI_UNIQ([orte_WRAPPER_EXTRA_LDFLAGS]) m4_ifdef([project_orte],
OMPI_UNIQ([orte_WRAPPER_EXTRA_LIBS]) [OMPI_UNIQ([orte_WRAPPER_EXTRA_LDFLAGS])
OMPI_UNIQ([orte_WRAPPER_EXTRA_LIBS])
AC_MSG_CHECKING([for ORTE CPPFLAGS]) AC_MSG_CHECKING([for ORTE CPPFLAGS])
ORTE_WRAPPER_EXTRA_CPPFLAGS="$OPAL_WRAPPER_EXTRA_CPPFLAGS" ORTE_WRAPPER_EXTRA_CPPFLAGS="$OPAL_WRAPPER_EXTRA_CPPFLAGS"
AC_SUBST([ORTE_WRAPPER_EXTRA_CPPFLAGS]) AC_SUBST([ORTE_WRAPPER_EXTRA_CPPFLAGS])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_CPPFLAGS]) AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_CPPFLAGS])
AC_MSG_CHECKING([for ORTE CFLAGS]) AC_MSG_CHECKING([for ORTE CFLAGS])
ORTE_WRAPPER_EXTRA_CFLAGS="$OPAL_WRAPPER_EXTRA_CFLAGS" ORTE_WRAPPER_EXTRA_CFLAGS="$OPAL_WRAPPER_EXTRA_CFLAGS"
AC_SUBST([ORTE_WRAPPER_EXTRA_CFLAGS]) AC_SUBST([ORTE_WRAPPER_EXTRA_CFLAGS])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_CFLAGS]) AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_CFLAGS])
AC_MSG_CHECKING([for ORTE CXXFLAGS]) AC_MSG_CHECKING([for ORTE LDFLAGS])
ORTE_WRAPPER_EXTRA_CXXFLAGS="$OPAL_WRAPPER_EXTRA_CXXFLAGS" ORTE_WRAPPER_EXTRA_LDFLAGS="$orte_WRAPPER_EXTRA_LDFLAGS $OPAL_WRAPPER_EXTRA_LDFLAGS"
AC_SUBST([ORTE_WRAPPER_EXTRA_CXXFLAGS]) AC_SUBST([ORTE_WRAPPER_EXTRA_LDFLAGS])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_CXXFLAGS]) AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_LDFLAGS])
AC_MSG_CHECKING([for ORTE LDFLAGS]) AC_MSG_CHECKING([for ORTE LIBS])
ORTE_WRAPPER_EXTRA_LDFLAGS="$orte_WRAPPER_EXTRA_LDFLAGS $OPAL_WRAPPER_EXTRA_LDFLAGS" ORTE_WRAPPER_EXTRA_LIBS="$orte_WRAPPER_EXTRA_LIBS $OPAL_WRAPPER_EXTRA_LIBS"
AC_SUBST([ORTE_WRAPPER_EXTRA_LDFLAGS]) AC_SUBST([ORTE_WRAPPER_EXTRA_LIBS])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_LDFLAGS]) AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_LIBS])
AC_MSG_CHECKING([for ORTE LIBS]) AC_MSG_CHECKING([for ORTE extra include dirs])
ORTE_WRAPPER_EXTRA_LIBS="$orte_WRAPPER_EXTRA_LIBS $OPAL_WRAPPER_EXTRA_LIBS" ORTE_WRAPPER_EXTRA_INCLUDES="$OPAL_WRAPPER_EXTRA_INCLUDES"
AC_SUBST([ORTE_WRAPPER_EXTRA_LIBS]) AC_SUBST([ORTE_WRAPPER_EXTRA_INCLUDES])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_LIBS]) AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_INCLUDES])
])
AC_MSG_CHECKING([for ORTE extra include dirs])
ORTE_WRAPPER_EXTRA_INCLUDES="$OPAL_WRAPPER_EXTRA_INCLUDES"
AC_SUBST([ORTE_WRAPPER_EXTRA_INCLUDES])
AC_MSG_RESULT([$ORTE_WRAPPER_EXTRA_INCLUDES])
# #
# OMPI # OMPI
# #
OMPI_UNIQ([ompi_WRAPPER_EXTRA_LDFLAGS]) m4_ifdef([project_ompi],
OMPI_UNIQ([ompi_WRAPPER_EXTRA_LIBS]) [OMPI_UNIQ([ompi_WRAPPER_EXTRA_LDFLAGS])
OMPI_UNIQ([ompi_WRAPPER_EXTRA_LIBS])
AC_MSG_CHECKING([for OMPI CPPFLAGS]) AC_MSG_CHECKING([for OMPI CPPFLAGS])
OMPI_WRAPPER_EXTRA_CPPFLAGS="$ORTE_WRAPPER_EXTRA_CPPFLAGS" OMPI_WRAPPER_EXTRA_CPPFLAGS="$ORTE_WRAPPER_EXTRA_CPPFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_CPPFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_CPPFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CPPFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CPPFLAGS])
AC_MSG_CHECKING([for OMPI CFLAGS]) AC_MSG_CHECKING([for OMPI CFLAGS])
OMPI_WRAPPER_EXTRA_CFLAGS="$ORTE_WRAPPER_EXTRA_CFLAGS" OMPI_WRAPPER_EXTRA_CFLAGS="$ORTE_WRAPPER_EXTRA_CFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_CHECKING([for OMPI CXXFLAGS]) AC_MSG_CHECKING([for OMPI CXXFLAGS])
OMPI_WRAPPER_EXTRA_CXXFLAGS="$ORTE_WRAPPER_EXTRA_CXXFLAGS" OMPI_WRAPPER_EXTRA_CXXFLAGS="$ORTE_WRAPPER_EXTRA_CXXFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_CHECKING([for OMPI FFLAGS]) AC_MSG_CHECKING([for OMPI FFLAGS])
OMPI_WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $USER_WRAPPER_EXTRA_FFLAGS" OMPI_WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $USER_WRAPPER_EXTRA_FFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_CHECKING([for OMPI FCFLAGS]) AC_MSG_CHECKING([for OMPI FCFLAGS])
OMPI_WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $USER_WRAPPER_EXTRA_FCFLAGS" OMPI_WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $USER_WRAPPER_EXTRA_FCFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_CHECKING([for OMPI LDFLAGS]) AC_MSG_CHECKING([for OMPI LDFLAGS])
OMPI_WRAPPER_EXTRA_LDFLAGS="$ompi_WRAPPER_EXTRA_LDFLAGS $ORTE_WRAPPER_EXTRA_LDFLAGS" OMPI_WRAPPER_EXTRA_LDFLAGS="$ompi_WRAPPER_EXTRA_LDFLAGS $ORTE_WRAPPER_EXTRA_LDFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_LDFLAGS]) AC_SUBST([OMPI_WRAPPER_EXTRA_LDFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_LDFLAGS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_LDFLAGS])
AC_MSG_CHECKING([for OMPI LIBS]) AC_MSG_CHECKING([for OMPI LIBS])
OMPI_WRAPPER_EXTRA_LIBS="$ompi_WRAPPER_EXTRA_LIBS $ORTE_WRAPPER_EXTRA_LIBS" OMPI_WRAPPER_EXTRA_LIBS="$ompi_WRAPPER_EXTRA_LIBS $ORTE_WRAPPER_EXTRA_LIBS"
AC_SUBST([OMPI_WRAPPER_EXTRA_LIBS]) AC_SUBST([OMPI_WRAPPER_EXTRA_LIBS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_LIBS]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_LIBS])
AC_MSG_CHECKING([for OMPI extra include dirs]) AC_MSG_CHECKING([for OMPI extra include dirs])
OMPI_WRAPPER_EXTRA_INCLUDES="$ORTE_WRAPPER_EXTRA_INCLUDES" OMPI_WRAPPER_EXTRA_INCLUDES="$ORTE_WRAPPER_EXTRA_INCLUDES"
AC_SUBST([OMPI_WRAPPER_EXTRA_INCLUDES]) AC_SUBST([OMPI_WRAPPER_EXTRA_INCLUDES])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_INCLUDES]) AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_INCLUDES])
# language binding support. C++ is a bit different, as the # language binding support. C++ is a bit different, as the
# compiler should work even if there is no MPI C++ bindings # compiler should work even if there is no MPI C++ bindings
# support. However, we do want it to fail if there is no C++ # support. However, we do want it to fail if there is no C++
# compiler. # compiler.
if test "$WANT_MPI_CXX_SUPPORT" = "1" ; then if test "$WANT_MPI_CXX_SUPPORT" = "1" ; then
OMPI_WRAPPER_CXX_LIB="-lmpi_cxx" OMPI_WRAPPER_CXX_LIB="-lmpi_cxx"
OMPI_WRAPPER_CXX_REQUIRED_FILE="" OMPI_WRAPPER_CXX_REQUIRED_FILE=""
elif test "$CXX" = "none"; then elif test "$CXX" = "none"; then
OMPI_WRAPPER_CXX_LIB="" OMPI_WRAPPER_CXX_LIB=""
OMPI_WRAPPER_CXX_REQUIRED_FILE="not supported" OMPI_WRAPPER_CXX_REQUIRED_FILE="not supported"
else else
OMPI_WRAPPER_CXX_LIB="" OMPI_WRAPPER_CXX_LIB=""
OMPI_WRAPPER_CXX_REQUIRED_FILE="" OMPI_WRAPPER_CXX_REQUIRED_FILE=""
fi fi
AC_SUBST([OMPI_WRAPPER_CXX_LIB]) AC_SUBST([OMPI_WRAPPER_CXX_LIB])
AC_SUBST([OMPI_WRAPPER_CXX_REQUIRED_FILE]) AC_SUBST([OMPI_WRAPPER_CXX_REQUIRED_FILE])
if test "$OMPI_WANT_F77_BINDINGS" = "1" ; then if test "$OMPI_WANT_F77_BINDINGS" = "1" ; then
OMPI_WRAPPER_F77_REQUIRED_FILE="" OMPI_WRAPPER_F77_REQUIRED_FILE=""
else else
OMPI_WRAPPER_F77_REQUIRED_FILE="not supported" OMPI_WRAPPER_F77_REQUIRED_FILE="not supported"
fi fi
AC_SUBST([OMPI_WRAPPER_F77_REQUIRED_FILE]) AC_SUBST([OMPI_WRAPPER_F77_REQUIRED_FILE])
if test "$OMPI_WANT_F90_BINDINGS" = "1" ; then if test "$OMPI_WANT_F90_BINDINGS" = "1" ; then
OMPI_WRAPPER_F90_REQUIRED_FILE="" OMPI_WRAPPER_F90_REQUIRED_FILE=""
else else
OMPI_WRAPPER_F90_REQUIRED_FILE="not supported" OMPI_WRAPPER_F90_REQUIRED_FILE="not supported"
fi fi
AC_SUBST([OMPI_WRAPPER_F90_REQUIRED_FILE]) AC_SUBST([OMPI_WRAPPER_F90_REQUIRED_FILE])
])
# For script-based wrappers that don't do relocatable binaries. # For script-based wrappers that don't do relocatable binaries.
# Don't use if you don't have to. # Don't use if you don't have to.
@ -274,27 +277,30 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
# compatibility defines that will eventually go away # compatibility defines that will eventually go away
WRAPPER_EXTRA_CFLAGS="$OMPI_WRAPPER_EXTRA_CFLAGS" WRAPPER_EXTRA_CFLAGS="$OMPI_WRAPPER_EXTRA_CFLAGS"
WRAPPER_EXTRA_CXXFLAGS="$OMPI_WRAPPER_EXTRA_CXXFLAGS" m4_ifdef([project_ompi],
WRAPPER_EXTRA_FFLAGS="$OMPI_WRAPPER_EXTRA_FFLAGS" [WRAPPER_EXTRA_CXXFLAGS="$OMPI_WRAPPER_EXTRA_CXXFLAGS"
WRAPPER_EXTRA_FCFLAGS="$OMPI_WRAPPER_EXTRA_FCFLAGS" WRAPPER_EXTRA_FFLAGS="$OMPI_WRAPPER_EXTRA_FFLAGS"
WRAPPER_EXTRA_FCFLAGS="$OMPI_WRAPPER_EXTRA_FCFLAGS"])
WRAPPER_EXTRA_LDFLAGS="$OMPI_WRAPPER_EXTRA_LDFLAGS" WRAPPER_EXTRA_LDFLAGS="$OMPI_WRAPPER_EXTRA_LDFLAGS"
WRAPPER_EXTRA_LIBS="$OMPI_WRAPPER_EXTRA_LIBS" WRAPPER_EXTRA_LIBS="$OMPI_WRAPPER_EXTRA_LIBS"
AC_SUBST(WRAPPER_EXTRA_CFLAGS) AC_SUBST(WRAPPER_EXTRA_CFLAGS)
AC_SUBST(WRAPPER_EXTRA_CXXFLAGS) m4_ifdef([project_ompi],
AC_SUBST(WRAPPER_EXTRA_FFLAGS) [AC_SUBST(WRAPPER_EXTRA_CXXFLAGS)
AC_SUBST(WRAPPER_EXTRA_FCFLAGS) AC_SUBST(WRAPPER_EXTRA_FFLAGS)
AC_SUBST(WRAPPER_EXTRA_FCFLAGS)])
AC_SUBST(WRAPPER_EXTRA_LDFLAGS) AC_SUBST(WRAPPER_EXTRA_LDFLAGS)
AC_SUBST(WRAPPER_EXTRA_LIBS) AC_SUBST(WRAPPER_EXTRA_LIBS)
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CFLAGS, "$WRAPPER_EXTRA_CFLAGS", AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CFLAGS, "$WRAPPER_EXTRA_CFLAGS",
[Additional CFLAGS to pass through the wrapper compilers]) [Additional CFLAGS to pass through the wrapper compilers])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CXXFLAGS, "$WRAPPER_EXTRA_CXXFLAGS", m4_ifdef([project_ompi],
[Additional CXXFLAGS to pass through the wrapper compilers]) [AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CXXFLAGS, "$WRAPPER_EXTRA_CXXFLAGS",
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FFLAGS, "$WRAPPER_EXTRA_FFLAGS", [Additional CXXFLAGS to pass through the wrapper compilers])
[Additional FFLAGS to pass through the wrapper compilers]) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FFLAGS, "$WRAPPER_EXTRA_FFLAGS",
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FCFLAGS, "$WRAPPER_EXTRA_FCFLAGS", [Additional FFLAGS to pass through the wrapper compilers])
[Additional FCFLAGS to pass through the wrapper compilers]) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FCFLAGS, "$WRAPPER_EXTRA_FCFLAGS",
[Additional FCFLAGS to pass through the wrapper compilers])])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LDFLAGS, "$WRAPPER_EXTRA_LDFLAGS", AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LDFLAGS, "$WRAPPER_EXTRA_LDFLAGS",
[Additional LDFLAGS to pass through the wrapper compilers]) [Additional LDFLAGS to pass through the wrapper compilers])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LIBS, "$WRAPPER_EXTRA_LIBS", AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LIBS, "$WRAPPER_EXTRA_LIBS",

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

@ -145,6 +145,7 @@ AC_DEFUN([_OMPI_CHECK_SPECIFIC_ATTRIBUTE], [
AC_DEFUN([OMPI_CHECK_ATTRIBUTES], [ AC_DEFUN([OMPI_CHECK_ATTRIBUTES], [
AC_LANG(C)
AC_MSG_CHECKING(for __attribute__) AC_MSG_CHECKING(for __attribute__)
AC_CACHE_VAL(opal_cv___attribute__, [ AC_CACHE_VAL(opal_cv___attribute__, [

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

@ -801,7 +801,8 @@ dnl
dnl ################################################################# dnl #################################################################
AC_DEFUN([OMPI_CONFIG_ASM],[ AC_DEFUN([OMPI_CONFIG_ASM],[
AC_REQUIRE([OMPI_SETUP_CC]) AC_REQUIRE([OMPI_SETUP_CC])
AC_REQUIRE([OMPI_SETUP_CXX]) # Only require C++ if we're building the OMPI project
m4_ifdef([project_ompi], [AC_REQUIRE([OMPI_SETUP_CXX])])
AC_REQUIRE([AM_PROG_AS]) AC_REQUIRE([AM_PROG_AS])
# OS X Leopard ld bus errors if you have "-g" or "-gX" in the link line # OS X Leopard ld bus errors if you have "-g" or "-gX" in the link line
@ -970,10 +971,13 @@ AC_MSG_ERROR([Can not continue.])
OMPI_CHECK_INLINE_C_GCC([$OMPI_GCC_INLINE_ASSIGN]) OMPI_CHECK_INLINE_C_GCC([$OMPI_GCC_INLINE_ASSIGN])
OMPI_CHECK_INLINE_C_DEC OMPI_CHECK_INLINE_C_DEC
OMPI_CHECK_INLINE_C_XLC OMPI_CHECK_INLINE_C_XLC
AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], # Only check C++ if we're building the OMPI project and we
[OMPI_CHECK_INLINE_CXX_GCC([$OMPI_GCC_INLINE_ASSIGN]) # want the C++ bindings
OMPI_CHECK_INLINE_CXX_DEC m4_ifdef([project_ompi],
OMPI_CHECK_INLINE_CXX_XLC]) [AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"],
[OMPI_CHECK_INLINE_CXX_GCC([$OMPI_GCC_INLINE_ASSIGN])
OMPI_CHECK_INLINE_CXX_DEC
OMPI_CHECK_INLINE_CXX_XLC])])
# format: # format:
# config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack # config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack

10
config/project_list.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,10 @@
dnl This file is automatically generated by autogen.sh
dnl Manual changes will be lost!
dnl Listing of sub-layers to include
m4_define([project_opal], [1])
m4_define([project_orte], [1])
dnl Project name
m4_define([project_name_long], [Open MPI Run Time Environment])
m4_define([project_name_short], [openmpi-rte])

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

@ -27,15 +27,19 @@
# Initialization, version number, and other random setup/init stuff # Initialization, version number, and other random setup/init stuff
############################################################################ ############################################################################
# Load project list and names
m4_include([config/project_list.m4])
# Init autoconf # Init autoconf
# We don't have the version number to put in here yet, and we can't # We don't have the version number to put in here yet, and we can't
# call OMPI_GET_VERSION (etc.) before AC_INIT. So use the shell # call OMPI_GET_VERSION (etc.) before AC_INIT. So use the shell
# version. # version. project_name_* comes from config/project_list.m4, which
# was set during autogen.sh.
AC_INIT([Open MPI], AC_INIT([project_name_long],
[m4_normalize(esyscmd([config/ompi_get_version.sh VERSION --base]))], [m4_normalize(esyscmd([config/ompi_get_version.sh VERSION --base]))],
[http://www.open-mpi.org/community/help/], [openmpi]) [http://www.open-mpi.org/community/help/], [project_name_short])
AC_PREREQ(2.60) AC_PREREQ(2.60)
AC_CONFIG_AUX_DIR(config) AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config) AC_CONFIG_MACRO_DIR(config)
@ -54,22 +58,29 @@ m4_pattern_allow([m4_ifval])
# Make configure depend on the VERSION file, since it's used in AC_INIT # Make configure depend on the VERSION file, since it's used in AC_INIT
AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION']) AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
# Set up project specific AM_CONDITIONALs
AM_CONDITIONAL([PROJECT_OMPI], m4_ifdef([project_ompi], [/bin/true], [/bin/false]))
AM_CONDITIONAL([PROJECT_ORTE], m4_ifdef([project_orte], [/bin/true], [/bin/false]))
# #
# Start it up # Start it up
# #
OMPI_CONFIGURE_SETUP OMPI_CONFIGURE_SETUP
ompi_show_title "Configuring Open MPI" ompi_show_title "Configuring project_name_long"
ompi_show_subtitle "Checking versions" ompi_show_subtitle "Checking versions"
# Get the version of OMPI that we are installing # Get the version of OMPI that we are installing
OMPI_SAVE_VERSION([OMPI], [Open MPI], [$srcdir/VERSION], m4_ifdef([project_ompi],
[ompi/include/ompi/version.h]) [OMPI_SAVE_VERSION([OMPI], [Open MPI], [$srcdir/VERSION],
[ompi/include/ompi/version.h])])
OMPI_SAVE_VERSION([ORTE], [Open Run-Time Environment], [$srcdir/VERSION], m4_ifdef([project_orte],
[orte/include/orte/version.h]) [OMPI_SAVE_VERSION([ORTE], [Open MPI Run-Time Environment],
[$srcdir/VERSION],
[orte/include/orte/version.h])])
OMPI_SAVE_VERSION([OPAL], [Open Portable Access Layer], [$srcdir/VERSION], OMPI_SAVE_VERSION([OPAL], [Open Portable Access Layer], [$srcdir/VERSION],
[opal/include/opal/version.h]) [opal/include/opal/version.h])
@ -77,16 +88,22 @@ OMPI_SAVE_VERSION([OPAL], [Open Portable Access Layer], [$srcdir/VERSION],
# Get shared library version numbers # Get shared library version numbers
. $srcdir/VERSION . $srcdir/VERSION
AC_SUBST(libmpi_so_version) m4_ifdef([project_ompi],
AC_SUBST(libmpi_cxx_so_version) [AC_SUBST(libmpi_so_version)
AC_SUBST(libmpi_f77_so_version) AC_SUBST(libmpi_cxx_so_version)
AC_SUBST(libmpi_f90_so_version) AC_SUBST(libmpi_f77_so_version)
AC_SUBST(libopen_rte_so_version) AC_SUBST(libmpi_f90_so_version)])
m4_ifdef([project_orte],
[AC_SUBST(libopen_rte_so_version)])
AC_SUBST(libopen_pal_so_version) AC_SUBST(libopen_pal_so_version)
# List header files to generate # List header files to generate
AM_CONFIG_HEADER([opal/include/opal_config.h orte/include/orte_config.h ompi/include/ompi_config.h ompi/include/mpi.h ompi/include/mpi_portable_platform.h]) AM_CONFIG_HEADER([opal/include/opal_config.h])
m4_ifdef([project_orte],
[AM_CONFIG_HEADER([orte/include/orte_config.h])])
m4_ifdef([project_ompi],
[AM_CONFIG_HEADER([ompi/include/ompi_config.h ompi/include/mpi.h ompi/include/mpi_portable_platform.h])])
# override/fixup the version numbers set by AC_INIT, since on # override/fixup the version numbers set by AC_INIT, since on
# developer builds, there's no good way to know what the version is # developer builds, there's no good way to know what the version is
@ -161,8 +178,8 @@ AC_SUBST(top_ompi_builddir)
############################################################################ ############################################################################
OPAL_CONFIGURE_OPTIONS OPAL_CONFIGURE_OPTIONS
ORTE_CONFIGURE_OPTIONS m4_ifdef([project_orte], [ORTE_CONFIGURE_OPTIONS])
OMPI_CONFIGURE_OPTIONS m4_ifdef([project_ompi], [OMPI_CONFIGURE_OPTIONS])
if test "$enable_binaries" = "no" -a "$enable_dist" = "yes"; then if test "$enable_binaries" = "no" -a "$enable_dist" = "yes"; then
AC_MSG_WARN([--disable-binaries is incompatible with --enable dist]) AC_MSG_WARN([--disable-binaries is incompatible with --enable dist])
@ -249,6 +266,8 @@ AC_CHECK_TYPES(uint128_t)
AC_CHECK_TYPES(long long) AC_CHECK_TYPES(long long)
AC_CHECK_TYPES(long double) AC_CHECK_TYPES(long double)
# We only need these types if we're building the OMPI project, but
# OPAL currently doesn't protect for their lack of presence well.
AC_CHECK_TYPES(float _Complex) AC_CHECK_TYPES(float _Complex)
AC_CHECK_TYPES(double _Complex) AC_CHECK_TYPES(double _Complex)
AC_CHECK_TYPES(long double _Complex) AC_CHECK_TYPES(long double _Complex)
@ -276,6 +295,8 @@ if test $ac_cv_type_long_double = yes; then
AC_CHECK_SIZEOF(long double) AC_CHECK_SIZEOF(long double)
fi fi
# We only need these types if we're building the OMPI project, but
# OPAL currently doesn't protect for their lack of presence well.
if test "$ac_cv_type_float__Complex" = yes; then if test "$ac_cv_type_float__Complex" = yes; then
AC_CHECK_SIZEOF(float _Complex) AC_CHECK_SIZEOF(float _Complex)
fi fi
@ -323,6 +344,8 @@ if test "$ac_cv_type_long_double" = yes; then
OMPI_C_GET_ALIGNMENT(long double, OPAL_ALIGNMENT_LONG_DOUBLE) OMPI_C_GET_ALIGNMENT(long double, OPAL_ALIGNMENT_LONG_DOUBLE)
fi fi
# We only need these types if we're building the OMPI project, but
# OPAL currently doesn't protect for their lack of presence well.
if test "$ac_cv_type_float__Complex" = yes; then if test "$ac_cv_type_float__Complex" = yes; then
OMPI_C_GET_ALIGNMENT(float _Complex, OPAL_ALIGNMENT_FLOAT_COMPLEX) OMPI_C_GET_ALIGNMENT(float _Complex, OPAL_ALIGNMENT_FLOAT_COMPLEX)
fi fi
@ -415,45 +438,16 @@ fi
OPAL_CHECK_OFFSETOF OPAL_CHECK_OFFSETOF
# # Setup OMPI bindings (if we're building the OMPI project)
# There are 2 layers to the MPI Language binidings One layer generates
# MPI_* bindings. The other layer generates PMPI_* bindings. The
# following conditions determine whether each (or both) these layers
# are built.
# 1. MPI_* bindings are needed if:
# - Profiling is not required
# - Profiling is required but weak symbols are not
# supported
# 2. PMPI_* bindings are needed if profiling is required. Hence we
# define 2 conditionals which tell us whether each of these layers
# need to be built or NOT
#
AM_CONDITIONAL(WANT_MPI_BINDINGS_LAYER, m4_ifdef([project_ompi], [OMPI_SETUP_MPI_PROFILING])
test "$WANT_MPI_PROFILING" = 0 -o "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1)
AM_CONDITIONAL(WANT_PMPI_BINDINGS_LAYER,
test "$WANT_MPI_PROFILING" = 1)
AM_CONDITIONAL(COMPILE_PROFILING_SEPARATELY,
test "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1)
AC_DEFINE_UNQUOTED(OMPI_ENABLE_MPI_PROFILING, $WANT_MPI_PROFILING,
[Whether we want MPI profiling or not])
AC_DEFINE_UNQUOTED(OPAL_HAVE_WEAK_SYMBOLS, $OPAL_C_HAVE_WEAK_SYMBOLS,
[Whether we have weak symbols or not])
################################## ##################################
# C++ compiler characteristics # C++ compiler characteristics
################################## ##################################
OMPI_SETUP_CXX m4_ifdef([project_ompi], [OMPI_SETUP_CXX])
# check if we want C++ support
AM_CONDITIONAL(WANT_MPI_CXX_BINDINGS,
test "$WANT_MPI_CXX_SUPPORT" = 1)
AC_DEFINE_UNQUOTED(OMPI_WANT_CXX_BINDINGS, $WANT_MPI_CXX_SUPPORT,
[Whether we want MPI cxx support or not])
################################## ##################################
@ -467,6 +461,7 @@ OMPI_CHECK_ATTRIBUTES
OPAL_CHECK_COMPILER_VERSION_ID OPAL_CHECK_COMPILER_VERSION_ID
################################## ##################################
# Assembler Configuration # Assembler Configuration
################################## ##################################
@ -481,209 +476,18 @@ OMPI_CONFIG_ASM
# Fortran # Fortran
################################## ##################################
#----------- # OPAL uses opal_fortran_logical_t and OMPI_FORTRAN_HANDLE_MAX (long
# Fortran 77 # story; yes, it's an intentional abstraction break). So ensure to
#----------- # define it to a valid C type if we're not building the OMPI project.
m4_ifdef([project_ompi], [OMPI_SETUP_MPI_FORTRAN],
OMPI_SETUP_F77 [AC_DEFINE([ompi_fortran_logical_t], [int], [Bogus type for OPAL])
AC_DEFINE([OMPI_FORTRAN_HANDLE_MAX], [128], [Bogus type for OPAL])
# This allows us to mark bogus types, but still have them be a valid ])
# [sentinel] value
AC_DEFINE([ompi_fortran_bogus_type_t], [int],
[A bogus type that allows us to have sentinel type values that are still valid])
# We want to set the #define's for all of these, so invoke the macros
# regardless of whether we have F77 support or not.
OMPI_F77_CHECK([CHARACTER], [yes],
[char, int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([LOGICAL], [yes],
[char, int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([LOGICAL*1], [yes],
[char, int8_t, short, int32_t, int, int64_t, long long, long], [1])
OMPI_F77_CHECK([LOGICAL*2], [yes],
[short, int16_t, int32_t, int, int64_t, long long, long], [2])
OMPI_F77_CHECK([LOGICAL*4], [yes],
[int32_t, int, int64_t, long long, long], [4])
OMPI_F77_CHECK([LOGICAL*8], [yes],
[int, int64_t, long long, long], [8])
OMPI_F77_CHECK([INTEGER], [yes],
[int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([INTEGER*1], [no],
[char, int8_t, short, int, int64_t, long long, long], [1])
OMPI_F77_CHECK([INTEGER*2], [no],
[short, int16_t, int32_t, int, int64_t, long long, long], [2])
OMPI_F77_CHECK([INTEGER*4], [no],
[int32_t, int, int64_t, long long, long], [4])
OMPI_F77_CHECK([INTEGER*8], [no],
[int, int64_t, long long, long], [8])
OMPI_F77_CHECK([INTEGER*16], [no],
[int, int64_t, long long, long], [16])
OMPI_F77_CHECK([REAL], [yes],
[float, double, long double], [-1])
OMPI_F77_CHECK([REAL*2], [no],
[float, double, long double], [2])
OMPI_F77_CHECK([REAL*4], [no],
[float, double, long double], [4])
OMPI_F77_CHECK([REAL*8], [no],
[float, double, long double], [8])
OMPI_F77_CHECK([REAL*16], [no],
[float, double, long double], [16])
# In some compilers, the bit representation of REAL*16 is not the same
# as the C counterpart that we found. If this is the case, then we
# want to disable reduction support for MPI_REAL16 (per ticket #1603).
OMPI_F77_CHECK_REAL16_C_EQUIV
OMPI_F77_CHECK([DOUBLE PRECISION], [yes],
[float, double, long double], [-1])
OMPI_F77_CHECK([COMPLEX], [yes], [], [-1])
# The complex*N tests are a bit different (note: the complex tests are
# the same as all the rest, because complex is a composite of two
# reals, which we *have* to have. It's only the complex*N tests that
# are different). The fortran complex types are composites of the
# real*(N/2) types. So for us to support complex*N, two conditions
# must be true:
#
# a) we must support real*(N/2) (i.e., compiler supports it and we
# have a back-end C type for it)
# b) compiler supports complex*N
OMPI_F77_CHECK([COMPLEX*8], [no], [], [8])
OMPI_F77_CHECK([COMPLEX*16], [no], [], [16])
OMPI_F77_CHECK([COMPLEX*32], [no], [], [32])
# Regardless of whether we have fortran bindings, or even a fortran
# compiler, get the max value for a fortran MPI handle (this macro
# handles the case where we don't have a fortran compiler).
OMPI_F77_GET_FORTRAN_HANDLE_MAX
#
# Check for Fortran compilers value of TRUE and for the correct assumption
# on LOGICAL for conversion into what C considers to be a true value
#
OMPI_F77_GET_VALUE_TRUE
OMPI_F77_CHECK_LOGICAL_ARRAY
#
# There are 2 layers to the MPI f77 layer. The only extra thing that
# determine f77 bindings is that fortran can be disabled by user. In
# such cases, we need to not build the target at all. One layer
# generates MPI_f77* bindings. The other layer generates PMPI_f77*
# bindings. The following conditions determine whether each (or both)
# these layers are built.
#
# Superceeding clause:
# - fortran77 bindings should be enabled, else everything is
# disabled
# 1. MPI_f77* bindings are needed if:
# - Profiling is not required
# - Profiling is required but weak symbols are not
# supported
# 2. PMPI_* bindings are needed if profiling is required. Hence we
# define 2 conditionals which tell us whether each of these layers
# need to be built or NOT
#
AM_CONDITIONAL(WANT_MPI_F77_BINDINGS_LAYER,
test \( "$WANT_MPI_PROFILING" = 0 -o "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1 \) -a "$OMPI_WANT_F77_BINDINGS" = 1)
AM_CONDITIONAL(WANT_PMPI_F77_BINDINGS_LAYER,
test "$OMPI_WANT_F77_BINDINGS" = 1 -a "$WANT_MPI_PROFILING" = 1)
#-----------
# Fortran 90
#-----------
OMPI_SETUP_F90
# Look for the fortran module compiler flag
OMPI_F90_FIND_MODULE_INCLUDE_FLAG
# Look for all the types
OMPI_F90_IKINDS=""
OMPI_F90_RKINDS=""
OMPI_F90_CKINDS=""
OMPI_F90_CHECK([CHARACTER])
# LOGICAL and friends
OMPI_F90_CHECK([LOGICAL])
OMPI_F90_CHECK([LOGICAL*1], [1])
OMPI_F90_CHECK([LOGICAL*2], [2])
OMPI_F90_CHECK([LOGICAL*4], [4])
OMPI_F90_CHECK([LOGICAL*8], [8])
# INTEGER and friends
OMPI_F90_CHECK([INTEGER])
OMPI_F90_CHECK([INTEGER*1], [1])
OMPI_F90_CHECK([INTEGER*2], [2])
OMPI_F90_CHECK([INTEGER*4], [4])
OMPI_F90_CHECK([INTEGER*8], [8])
OMPI_F90_CHECK([INTEGER*16], [16])
# REAL, DOUBLE PRECISION, REAL*4, *8, *16
OMPI_F90_CHECK([REAL])
OMPI_F90_CHECK([REAL*2], [2])
OMPI_F90_CHECK([REAL*4], [4])
OMPI_F90_CHECK([REAL*8], [8])
OMPI_F90_CHECK([REAL*16], [16])
OMPI_F90_CHECK([DOUBLE PRECISION])
# COMPLEX, DOUBLE COMPLEX, COMPLEX*8, *16, *32
OMPI_F90_CHECK([COMPLEX])
OMPI_F90_CHECK([COMPLEX*8], [8])
OMPI_F90_CHECK([COMPLEX*16], [16])
OMPI_F90_CHECK([COMPLEX*32], [32])
OMPI_F90_CHECK([DOUBLE COMPLEX])
AC_SUBST(OMPI_F90_IKINDS)
AC_SUBST(OMPI_F90_RKINDS)
AC_SUBST(OMPI_F90_CKINDS)
# get kind value for Fortran MPI_INTEGER_KIND (corresponding to
# whatever is the same size as a F77 INTEGER -- for the
# most-likely-will-never-occur case where F77 INTEGER is smaller than
# an F90 INTEGER; see MPI-2 4.12.6.5
if test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "2"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 4, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "4"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 9, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "8"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 18, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "16"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 19, OMPI_MPI_INTEGER_KIND)
AC_MSG_ERROR([Cannot support Fortran MPI_INTEGER_KIND!])
fi
AC_SUBST(OMPI_MPI_INTEGER_KIND)
# get kind value for Fortran MPI_ADDRESS_KIND (corresponding to
# whatever is big enough to hold (void*))
if test $ac_cv_sizeof_void_p = 2 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 4, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 4 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 9, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 8 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 18, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 16 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 19, OMPI_MPI_ADDRESS_KIND)
else
AC_MSG_ERROR([Cannot support Fortran MPI_ADDRESS_KIND!])
fi
AC_SUBST(OMPI_MPI_ADDRESS_KIND)
# get kind value for Fortran MPI_OFFSET_KIND (corresponding to INTEGER*8)
OMPI_F90_GET_INT_KIND(MPI_OFFSET_KIND, 18, OMPI_MPI_OFFSET_KIND)
AC_SUBST(OMPI_MPI_OFFSET_KIND)
# checkpoint results # checkpoint results
AC_CACHE_SAVE AC_CACHE_SAVE
################################## ##################################
# Header files # Header files
################################## ##################################
@ -1008,18 +812,20 @@ AC_DEFINE_UNQUOTED([OPAL_ALIGN_WORD_SIZE_INTEGERS], [$results],
OMPI_CONFIG_THREADS OMPI_CONFIG_THREADS
CFLAGS="$CFLAGS $THREAD_CFLAGS" CFLAGS="$CFLAGS $THREAD_CFLAGS"
CXXFLAGS="$CXXFLAGS $THREAD_CXXFLAGS" m4_ifdef([project_ompi],
CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" [CXXFLAGS="$CXXFLAGS $THREAD_CXXFLAGS"
CXXCPPFLAGS="$CXXCPPFLAGS $THREAD_CXXCPPFLAGS" CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS"
CXXCPPFLAGS="$CXXCPPFLAGS $THREAD_CXXCPPFLAGS"])
LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" LDFLAGS="$LDFLAGS $THREAD_LDFLAGS"
LIBS="$LIBS $THREAD_LIBS" LIBS="$LIBS $THREAD_LIBS"
WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS $THREAD_CPPFLAGS" WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS $THREAD_CPPFLAGS"
WRAPPER_EXTRA_CFLAGS="$WRAPPER_EXTRA_CFLAGS $THREAD_CFLAGS" WRAPPER_EXTRA_CFLAGS="$WRAPPER_EXTRA_CFLAGS $THREAD_CFLAGS"
WRAPPER_EXTRA_CXXFLAGS="$WRAPPER_EXTRA_CXXFLAGS $THREAD_CXXFLAGS" m4_ifdef([project_ompi],
WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $THREAD_FFLAGS" [WRAPPER_EXTRA_CXXFLAGS="$WRAPPER_EXTRA_CXXFLAGS $THREAD_CXXFLAGS"
WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $THREAD_FFLAGS" WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $THREAD_FFLAGS"
WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $THREAD_FFLAGS"])
WRAPPER_EXTRA_LDFLAGS="$WRAPPER_EXTRA_LDFLAGS $THREAD_LDFLAGS" WRAPPER_EXTRA_LDFLAGS="$WRAPPER_EXTRA_LDFLAGS $THREAD_LDFLAGS"
# no need to update WRAPPER_EXTRA_LIBS - we'll get it from LT later # no need to update WRAPPER_EXTRA_LIBS - we'll get it from LT later
@ -1067,13 +873,13 @@ fi
# #
# Look for ps command and arguments for orte-clean # Look for ps command and arguments for orte-clean
# #
OMPI_PS_FLAVOR_CHECK m4_ifdef([project_orte], [OMPI_PS_FLAVOR_CHECK])
# #
# File system case sensitivity # File system case sensitivity
# #
OMPI_CASE_SENSITIVE_FS_SETUP m4_ifdef([project_ompi], [OMPI_CASE_SENSITIVE_FS_SETUP])
# AIX: FIONBIO in sys/ioctl.h # AIX: FIONBIO in sys/ioctl.h
# glibc: memcpy # glibc: memcpy
@ -1121,12 +927,7 @@ AC_CACHE_SAVE
# MPI Extended Interfaces # MPI Extended Interfaces
################################## ##################################
ompi_show_title "Extended MPI interfaces setup" m4_ifdef([project_ompi], [OMPI_SETUP_MPI_EXT])
OMPI_EXT
AC_DEFINE_UNQUOTED(OMPI_EXT_COMPONENTS, "$EXT_mpiext_ALL_COMPONENTS",
[MPI Extended Interface Components])
# checkpoint results # checkpoint results
AC_CACHE_SAVE AC_CACHE_SAVE
@ -1146,14 +947,13 @@ OMPI_CHECK_VISIBILITY
# Contributed software # Contributed software
################################## ##################################
ompi_show_title "Contributed software setup" m4_ifdef([project_ompi], [OMPI_SETUP_CONTRIB])
OMPI_CONTRIB
# checkpoint results # checkpoint results
AC_CACHE_SAVE AC_CACHE_SAVE
############################################################################ ############################################################################
# Final top-level OMPI configuration # Final top-level OMPI configuration
############################################################################ ############################################################################
@ -1292,40 +1092,23 @@ ompi_show_subtitle "Compiler flags"
# source directories, however. # source directories, however.
# #
if test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"; then if test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"; then
CPPFLAGS='-I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/opal/include -I$(top_srcdir)/orte/include -I$(top_srcdir)/ompi/include'" $CPPFLAGS" # Note the embedded m4 directives here -- we must embed them
CXXCPPFLAGS='-I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/opal/include -I$(top_srcdir)/orte/include -I$(top_srcdir)/ompi/include'" $CXXCPPFLAGS" # rather than have successive assignments to these shell
# variables, lest the $(foo) names try to get evaluated here.
# Yuck!
CPPFLAGS='-I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/opal/include m4_ifdef([project_orte], [-I$(top_srcdir)/orte/include]) m4_ifdef([project_ompi], [-I$(top_srcdir)/ompi/include])'" $CPPFLAGS"
# C++ is only relevant if we're building OMPI
m4_ifdef([project_ompi], [CXXCPPFLAGS='-I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/opal/include -I$(top_srcdir)/orte/include -I$(top_srcdir)/ompi/include'" $CXXCPPFLAGS"])
else else
CPPFLAGS='-I$(top_srcdir)'" $CPPFLAGS" CPPFLAGS='-I$(top_srcdir)'" $CPPFLAGS"
CXXCPPFLAGS='-I$(top_srcdir)'" $CXXCPPFLAGS" # C++ is only relevant if we're building OMPI
m4_ifdef([project_ompi], [CXXCPPFLAGS='-I$(top_srcdir)'" $CXXCPPFLAGS"])
fi fi
# # OMPI wants some additional processing of the flags (e.g., get
# Do a final process of the CFLAGS to make a WITHOUT_OPTFLAGS version. # versions without optimization for debugger modules).
# We need this so that we can guarantee to build the TotalView stuff
# with -g and nothing else.
#
OMPI_MAKE_STRIPPED_FLAGS($CFLAGS)
CFLAGS_WITHOUT_OPTFLAGS="$s_result"
if test "$with_tv_debug_flags" != ""; then
TOTALVIEW_DEBUG_FLAGS="$with_tv_debug_flags"
else
# Tweak the compiler flags passed to orterun for Sun Studio SPARC
# https://svn.open-mpi.org/trac/ompi/ticket/1448
if test "x$ompi_cv_c_compiler_vendor" = "xsun" -a -n "`echo $host | $GREP sparc`"; then
TOTALVIEW_DEBUG_FLAGS="-g -xO0"
else
TOTALVIEW_DEBUG_FLAGS="-g"
fi
fi
AC_MSG_CHECKING([which of CFLAGS are ok for TotalView modules])
AC_MSG_RESULT([$CFLAGS_WITHOUT_OPTFLAGS])
AC_MSG_CHECKING([extra CFLAGS for TotalView modules])
AC_MSG_RESULT([$TOTALVIEW_DEBUG_FLAGS])
AC_SUBST(CFLAGS_WITHOUT_OPTFLAGS)
AC_SUBST(TOTALVIEW_DEBUG_FLAGS)
m4_ifdef([project_ompi], [OMPI_SETUP_DEBUGGER_FLAGS])
# #
# Delayed the substitution of CFLAGS and CXXFLAGS until now because # Delayed the substitution of CFLAGS and CXXFLAGS until now because
@ -1334,13 +1117,13 @@ AC_SUBST(TOTALVIEW_DEBUG_FLAGS)
AC_SUBST(CFLAGS) AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS) AC_SUBST(CPPFLAGS)
AC_SUBST(CXXFLAGS) m4_ifdef([project_ompi], [AC_SUBST(CXXFLAGS)
AC_SUBST(CXXCPPFLAGS) AC_SUBST(CXXCPPFLAGS)
AC_SUBST(FFLAGS) AC_SUBST(FFLAGS)
AC_SUBST(FCFLAGS) AC_SUBST(FCFLAGS)
AC_SUBST(OMPI_LIBMPI_EXTRA_LIBS) AC_SUBST(OMPI_LIBMPI_EXTRA_LIBS)
AC_SUBST(OMPI_LIBMPI_EXTRA_LDFLAGS) AC_SUBST(OMPI_LIBMPI_EXTRA_LDFLAGS)])
# #
# Aggregate MCA parameters directory # Aggregate MCA parameters directory
@ -1388,76 +1171,16 @@ AC_CONFIG_FILES([
contrib/Makefile contrib/Makefile
opal/Makefile
opal/etc/Makefile
opal/include/Makefile
opal/asm/Makefile
opal/datatype/Makefile
opal/event/Makefile
opal/event/compat/Makefile
opal/event/compat/sys/Makefile
opal/util/Makefile
opal/util/keyval/Makefile
opal/mca/base/Makefile
opal/tools/wrappers/Makefile
opal/tools/wrappers/opalcc-wrapper-data.txt
opal/tools/wrappers/opalc++-wrapper-data.txt
opal/tools/opal-checkpoint/Makefile
opal/tools/opal-restart/Makefile
orte/Makefile
orte/include/Makefile
orte/etc/Makefile
orte/tools/orted/Makefile
orte/tools/orterun/Makefile
orte/tools/wrappers/Makefile
orte/tools/wrappers/ortecc-wrapper-data.txt
orte/tools/wrappers/ortec++-wrapper-data.txt
orte/tools/orte-checkpoint/Makefile
orte/tools/orte-iof/Makefile
orte/tools/orte-restart/Makefile
orte/tools/orte-ps/Makefile
orte/tools/orte-clean/Makefile
orte/tools/orte-top/Makefile
orte/tools/orte-bootproxy/Makefile
ompi/Makefile
ompi/etc/Makefile
ompi/include/Makefile
ompi/include/mpif.h
ompi/include/mpif-config.h
ompi/datatype/Makefile
ompi/debuggers/Makefile
ompi/mpi/c/Makefile
ompi/mpi/c/profile/Makefile
ompi/mpi/cxx/Makefile
ompi/mpi/f77/Makefile
ompi/mpi/f77/profile/Makefile
ompi/mpi/f90/Makefile
ompi/mpi/f90/fortran_kinds.sh
ompi/mpi/f90/fortran_sizes.h
ompi/mpi/f90/scripts/Makefile
ompi/tools/ompi_info/Makefile
ompi/tools/wrappers/Makefile
ompi/tools/wrappers/mpicc-wrapper-data.txt
ompi/tools/wrappers/mpic++-wrapper-data.txt
ompi/tools/wrappers/mpif77-wrapper-data.txt
ompi/tools/wrappers/mpif90-wrapper-data.txt
ompi/tools/ortetools/Makefile
ompi/tools/ompi-server/Makefile
ompi/tools/ompi-probe/Makefile
ompi/tools/ompi-profiler/Makefile
test/Makefile test/Makefile
test/event/Makefile test/event/Makefile
test/asm/Makefile test/asm/Makefile
test/class/Makefile test/class/Makefile
test/support/Makefile test/support/Makefile
test/threads/Makefile test/threads/Makefile
test/peruse/Makefile
]) ])
m4_include([opal/config/config_files.m4])
m4_ifdef([project_orte], [m4_include([orte/config/config_files.m4])])
m4_ifdef([project_ompi], [m4_include([ompi/config/config_files.m4])])
AC_OUTPUT AC_OUTPUT

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

@ -110,6 +110,7 @@ EXTRA_DIST = \
platform/cisco/macosx-dynamic-optimized.conf \ platform/cisco/macosx-dynamic-optimized.conf \
platform/cisco/hlfr/debug \ platform/cisco/hlfr/debug \
platform/cisco/hlfr/debug.conf \ platform/cisco/hlfr/debug.conf \
platform/cisco/hlfr/ebuild \
platform/cisco/hlfr/optimized \ platform/cisco/hlfr/optimized \
platform/cisco/hlfr/optimized.conf \ platform/cisco/hlfr/optimized.conf \
platform/cisco/ludd-1/debug \ platform/cisco/ludd-1/debug \

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

@ -46,6 +46,8 @@ aclocal.m4
autom4te.cache autom4te.cache
Makefile Makefile
static-components.h static-components.h
project_list.m4
orte_wrapper_script
*~ *~
*\\\#/; *\\\#/;

29
contrib/platform/cisco/hlfr/ebuild Обычный файл
Просмотреть файл

@ -0,0 +1,29 @@
enable_dlopen=no
enable_mem_debug=no
enable_mem_profile=no
enable_debug_symbols=yes
enable_binaries=yes
enable_heterogeneous=no
enable_debug=yes
enable_shared=yes
enable_static=no
enable_memchecker=no
enable_ipv6=no
enable_mpi_f77=no
enable_mpi_f90=no
enable_mpi_cxx=no
enable_mpi_cxx_seek=no
enable_cxx_exceptions=no
enable_ft_thread=no
enable_per_user_config_files=no
enable_script_wrapper_compilers=yes
enable_multicast=yes
enable_monitoring=yes
enable_orterun_prefix_by_default=yes
enable_io_romio=no
enable_mca_no_build=carto,crs,routed-linear,routed-direct,snapc,pml-dr,pml-crcp2,pml-crcpw,pml-v,pml-example,crcp,pml-cm,btl-openib,btl-sm,filem,plm-tm,pml-csum
enable_contrib_no_build=libnbc,vt
with_tm=no
with_openib=no
with_devel_headers=yes
with_slurm=no

49
ompi/config/config_files.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,49 @@
# -*- shell-script -*-
#
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This file is m4_included in the top-level configure.ac only if we
# are building the ompi project. You cannot put an AC_CONFIG_FILES in
# an AC_DEFUN that is conditionally called (because Autoconf will
# still process the AC_CONFIG_FILES unconditionally); you can only m4
# include the file or not.
AC_CONFIG_FILES([
ompi/Makefile
ompi/etc/Makefile
ompi/include/Makefile
ompi/include/mpif.h
ompi/include/mpif-config.h
ompi/datatype/Makefile
ompi/debuggers/Makefile
ompi/mpi/c/Makefile
ompi/mpi/c/profile/Makefile
ompi/mpi/cxx/Makefile
ompi/mpi/f77/Makefile
ompi/mpi/f77/profile/Makefile
ompi/mpi/f90/Makefile
ompi/mpi/f90/fortran_kinds.sh
ompi/mpi/f90/fortran_sizes.h
ompi/mpi/f90/scripts/Makefile
ompi/tools/ompi_info/Makefile
ompi/tools/wrappers/Makefile
ompi/tools/wrappers/mpicc-wrapper-data.txt
ompi/tools/wrappers/mpic++-wrapper-data.txt
ompi/tools/wrappers/mpif77-wrapper-data.txt
ompi/tools/wrappers/mpif90-wrapper-data.txt
ompi/tools/ortetools/Makefile
ompi/tools/ompi-server/Makefile
ompi/tools/ompi-probe/Makefile
ompi/tools/ompi-profiler/Makefile
test/peruse/Makefile
])

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

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

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

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

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

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

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

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

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

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

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

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

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

29
ompi/config/ompi_setup_contrib.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,29 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2009 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-2007 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) 2006-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
AC_DEFUN([OMPI_SETUP_CONTRIB],[
ompi_show_title "Contributed software setup"
OMPI_CONTRIB
])

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

@ -56,6 +56,10 @@ AC_DEFUN([OMPI_SETUP_CXX],[
_OMPI_CXX_CHECK_BUILTIN _OMPI_CXX_CHECK_BUILTIN
_OMPI_CXX_CHECK_2D_CONST_CAST _OMPI_CXX_CHECK_2D_CONST_CAST
AM_CONDITIONAL(WANT_MPI_CXX_BINDINGS, [test "$WANT_MPI_CXX_SUPPORT" = 1])
AC_DEFINE_UNQUOTED(OMPI_WANT_CXX_BINDINGS, $WANT_MPI_CXX_SUPPORT,
[Whether we want MPI C++ support or not])
]) ])
# _OMPI_SETUP_CXX_COMPILER() # _OMPI_SETUP_CXX_COMPILER()

52
ompi/config/ompi_setup_debugger_flags.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,52 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2009 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-2007 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) 2006-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
AC_DEFUN([OMPI_SETUP_DEBUGGER_FLAGS],[
#
# Do a final process of the CFLAGS to make a WITHOUT_OPTFLAGS version.
# We need this so that we can guarantee to build the TotalView stuff
# with -g and nothing else.
#
OMPI_MAKE_STRIPPED_FLAGS($CFLAGS)
CFLAGS_WITHOUT_OPTFLAGS="$s_result"
if test "$with_tv_debug_flags" != ""; then
TOTALVIEW_DEBUG_FLAGS="$with_tv_debug_flags"
else
# Tweak the compiler flags passed to orterun for Sun Studio SPARC
# https://svn.open-mpi.org/trac/ompi/ticket/1448
if test "x$ompi_cv_c_compiler_vendor" = "xsun" -a -n "`echo $host | $GREP sparc`"; then
TOTALVIEW_DEBUG_FLAGS="-g -xO0"
else
TOTALVIEW_DEBUG_FLAGS="-g"
fi
fi
AC_MSG_CHECKING([which of CFLAGS are ok for TotalView modules])
AC_MSG_RESULT([$CFLAGS_WITHOUT_OPTFLAGS])
AC_MSG_CHECKING([extra CFLAGS for TotalView modules])
AC_MSG_RESULT([$TOTALVIEW_DEBUG_FLAGS])
AC_SUBST(CFLAGS_WITHOUT_OPTFLAGS)
AC_SUBST(TOTALVIEW_DEBUG_FLAGS)
])

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

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

32
ompi/config/ompi_setup_mpi_ext.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,32 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2009 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-2007 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) 2006-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
AC_DEFUN([OMPI_SETUP_MPI_EXT],[
ompi_show_title "Extended MPI interfaces setup"
OMPI_EXT
AC_DEFINE_UNQUOTED(OMPI_EXT_COMPONENTS, "$EXT_mpiext_ALL_COMPONENTS",
[MPI Extended Interface Components])
])

226
ompi/config/ompi_setup_mpi_fortran.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,226 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2009 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-2007 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) 2006-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
#-----------
# Fortran 77
#-----------
OMPI_SETUP_F77
# This allows us to mark bogus types, but still have them be a valid
# [sentinel] value
AC_DEFINE([ompi_fortran_bogus_type_t], [int],
[A bogus type that allows us to have sentinel type values that are still valid])
# We want to set the #define's for all of these, so invoke the macros
# regardless of whether we have F77 support or not.
OMPI_F77_CHECK([CHARACTER], [yes],
[char, int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([LOGICAL], [yes],
[char, int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([LOGICAL*1], [yes],
[char, int8_t, short, int32_t, int, int64_t, long long, long], [1])
OMPI_F77_CHECK([LOGICAL*2], [yes],
[short, int16_t, int32_t, int, int64_t, long long, long], [2])
OMPI_F77_CHECK([LOGICAL*4], [yes],
[int32_t, int, int64_t, long long, long], [4])
OMPI_F77_CHECK([LOGICAL*8], [yes],
[int, int64_t, long long, long], [8])
OMPI_F77_CHECK([INTEGER], [yes],
[int32_t, int, int64_t, long long, long], [-1])
OMPI_F77_CHECK([INTEGER*1], [no],
[char, int8_t, short, int, int64_t, long long, long], [1])
OMPI_F77_CHECK([INTEGER*2], [no],
[short, int16_t, int32_t, int, int64_t, long long, long], [2])
OMPI_F77_CHECK([INTEGER*4], [no],
[int32_t, int, int64_t, long long, long], [4])
OMPI_F77_CHECK([INTEGER*8], [no],
[int, int64_t, long long, long], [8])
OMPI_F77_CHECK([INTEGER*16], [no],
[int, int64_t, long long, long], [16])
OMPI_F77_CHECK([REAL], [yes],
[float, double, long double], [-1])
OMPI_F77_CHECK([REAL*2], [no],
[float, double, long double], [2])
OMPI_F77_CHECK([REAL*4], [no],
[float, double, long double], [4])
OMPI_F77_CHECK([REAL*8], [no],
[float, double, long double], [8])
OMPI_F77_CHECK([REAL*16], [no],
[float, double, long double], [16])
# In some compilers, the bit representation of REAL*16 is not the same
# as the C counterpart that we found. If this is the case, then we
# want to disable reduction support for MPI_REAL16 (per ticket #1603).
OMPI_F77_CHECK_REAL16_C_EQUIV
OMPI_F77_CHECK([DOUBLE PRECISION], [yes],
[float, double, long double], [-1])
OMPI_F77_CHECK([COMPLEX], [yes], [], [-1])
# The complex*N tests are a bit different (note: the complex tests are
# the same as all the rest, because complex is a composite of two
# reals, which we *have* to have. It's only the complex*N tests that
# are different). The fortran complex types are composites of the
# real*(N/2) types. So for us to support complex*N, two conditions
# must be true:
#
# a) we must support real*(N/2) (i.e., compiler supports it and we
# have a back-end C type for it)
# b) compiler supports complex*N
OMPI_F77_CHECK([COMPLEX*8], [no], [], [8])
OMPI_F77_CHECK([COMPLEX*16], [no], [], [16])
OMPI_F77_CHECK([COMPLEX*32], [no], [], [32])
# Regardless of whether we have fortran bindings, or even a fortran
# compiler, get the max value for a fortran MPI handle (this macro
# handles the case where we don't have a fortran compiler).
OMPI_F77_GET_FORTRAN_HANDLE_MAX
#
# Check for Fortran compilers value of TRUE and for the correct assumption
# on LOGICAL for conversion into what C considers to be a true value
#
OMPI_F77_GET_VALUE_TRUE
OMPI_F77_CHECK_LOGICAL_ARRAY
#
# There are 2 layers to the MPI f77 layer. The only extra thing that
# determine f77 bindings is that fortran can be disabled by user. In
# such cases, we need to not build the target at all. One layer
# generates MPI_f77* bindings. The other layer generates PMPI_f77*
# bindings. The following conditions determine whether each (or both)
# these layers are built.
#
# Superceeding clause:
# - fortran77 bindings should be enabled, else everything is
# disabled
# 1. MPI_f77* bindings are needed if:
# - Profiling is not required
# - Profiling is required but weak symbols are not
# supported
# 2. PMPI_* bindings are needed if profiling is required. Hence we
# define 2 conditionals which tell us whether each of these layers
# need to be built or NOT
#
AM_CONDITIONAL(WANT_MPI_F77_BINDINGS_LAYER,
test \( "$WANT_MPI_PROFILING" = 0 -o "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1 \) -a "$OMPI_WANT_F77_BINDINGS" = 1)
AM_CONDITIONAL(WANT_PMPI_F77_BINDINGS_LAYER,
test "$OMPI_WANT_F77_BINDINGS" = 1 -a "$WANT_MPI_PROFILING" = 1)
#-----------
# Fortran 90
#-----------
OMPI_SETUP_F90
# Look for the fortran module compiler flag
OMPI_F90_FIND_MODULE_INCLUDE_FLAG
# Look for all the types
OMPI_F90_IKINDS=""
OMPI_F90_RKINDS=""
OMPI_F90_CKINDS=""
OMPI_F90_CHECK([CHARACTER])
# LOGICAL and friends
OMPI_F90_CHECK([LOGICAL])
OMPI_F90_CHECK([LOGICAL*1], [1])
OMPI_F90_CHECK([LOGICAL*2], [2])
OMPI_F90_CHECK([LOGICAL*4], [4])
OMPI_F90_CHECK([LOGICAL*8], [8])
# INTEGER and friends
OMPI_F90_CHECK([INTEGER])
OMPI_F90_CHECK([INTEGER*1], [1])
OMPI_F90_CHECK([INTEGER*2], [2])
OMPI_F90_CHECK([INTEGER*4], [4])
OMPI_F90_CHECK([INTEGER*8], [8])
OMPI_F90_CHECK([INTEGER*16], [16])
# REAL, DOUBLE PRECISION, REAL*4, *8, *16
OMPI_F90_CHECK([REAL])
OMPI_F90_CHECK([REAL*2], [2])
OMPI_F90_CHECK([REAL*4], [4])
OMPI_F90_CHECK([REAL*8], [8])
OMPI_F90_CHECK([REAL*16], [16])
OMPI_F90_CHECK([DOUBLE PRECISION])
# COMPLEX, DOUBLE COMPLEX, COMPLEX*8, *16, *32
OMPI_F90_CHECK([COMPLEX])
OMPI_F90_CHECK([COMPLEX*8], [8])
OMPI_F90_CHECK([COMPLEX*16], [16])
OMPI_F90_CHECK([COMPLEX*32], [32])
OMPI_F90_CHECK([DOUBLE COMPLEX])
AC_SUBST(OMPI_F90_IKINDS)
AC_SUBST(OMPI_F90_RKINDS)
AC_SUBST(OMPI_F90_CKINDS)
# get kind value for Fortran MPI_INTEGER_KIND (corresponding to
# whatever is the same size as a F77 INTEGER -- for the
# most-likely-will-never-occur case where F77 INTEGER is smaller than
# an F90 INTEGER; see MPI-2 4.12.6.5
if test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "2"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 4, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "4"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 9, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "8"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 18, OMPI_MPI_INTEGER_KIND)
elif test "$OMPI_SIZEOF_FORTRAN_INTEGER" = "16"; then
OMPI_F90_GET_INT_KIND(MPI_INTEGER_KIND, 19, OMPI_MPI_INTEGER_KIND)
AC_MSG_ERROR([Cannot support Fortran MPI_INTEGER_KIND!])
fi
AC_SUBST(OMPI_MPI_INTEGER_KIND)
# get kind value for Fortran MPI_ADDRESS_KIND (corresponding to
# whatever is big enough to hold (void*))
if test $ac_cv_sizeof_void_p = 2 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 4, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 4 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 9, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 8 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 18, OMPI_MPI_ADDRESS_KIND)
elif test $ac_cv_sizeof_void_p = 16 ; then
OMPI_F90_GET_INT_KIND(MPI_ADDRESS_KIND, 19, OMPI_MPI_ADDRESS_KIND)
else
AC_MSG_ERROR([Cannot support Fortran MPI_ADDRESS_KIND!])
fi
AC_SUBST(OMPI_MPI_ADDRESS_KIND)
# get kind value for Fortran MPI_OFFSET_KIND (corresponding to INTEGER*8)
OMPI_F90_GET_INT_KIND(MPI_OFFSET_KIND, 18, OMPI_MPI_OFFSET_KIND)
AC_SUBST(OMPI_MPI_OFFSET_KIND)
])

52
ompi/config/ompi_setup_mpi_profiling.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,52 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2009 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-2007 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) 2006-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# OMPI-specific configuration
AC_DEFUN([OMPI_SETUP_MPI_PROFILING],[
# There are 2 layers to the MPI Language binidings One layer
# generates MPI_* bindings. The other layer generates PMPI_*
# bindings. The following conditions determine whether each (or
# both) these layers are built.
# 1. MPI_* bindings are needed if:
# - Profiling is not required
# - Profiling is required but weak symbols are not
# supported
# 2. PMPI_* bindings are needed if profiling is required. Hence we
# define 2 conditionals which tell us whether each of these layers
# need to be built or NOT
#
AM_CONDITIONAL(WANT_MPI_BINDINGS_LAYER,
test "$WANT_MPI_PROFILING" = 0 -o "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1)
AM_CONDITIONAL(WANT_PMPI_BINDINGS_LAYER,
test "$WANT_MPI_PROFILING" = 1)
AM_CONDITIONAL(COMPILE_PROFILING_SEPARATELY,
test "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1)
AC_DEFINE_UNQUOTED(OMPI_ENABLE_MPI_PROFILING, $WANT_MPI_PROFILING,
[Whether we want MPI profiling or not])
AC_DEFINE_UNQUOTED(OPAL_HAVE_WEAK_SYMBOLS, $OPAL_C_HAVE_WEAK_SYMBOLS,
[Whether we have weak symbols or not])
])

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

@ -1,5 +1,13 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
# -*- perl -*- # -*- perl -*-
#
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
use File::Basename; use File::Basename;
use File::Spec::Functions; use File::Spec::Functions;
@ -7,7 +15,7 @@ use File::Spec::Functions;
my $includedir = "@OMPI_WRAPPER_INCLUDEDIR@"; my $includedir = "@OMPI_WRAPPER_INCLUDEDIR@";
my $libdir = "@OMPI_WRAPPER_LIBDIR@"; my $libdir = "@OMPI_WRAPPER_LIBDIR@";
# obey the OPAL_DESTDIR environmant variable # obey the OPAL_DESTDIR environment variable
if (exists($ENV{'OPAL_DESTDIR'}) if (exists($ENV{'OPAL_DESTDIR'})
&& defined($ENV{'OPAL_DESTDIR'}) && defined($ENV{'OPAL_DESTDIR'})
&& (length($ENV{'OPAL_DESTDIR'}) > 0)) { && (length($ENV{'OPAL_DESTDIR'}) > 0)) {

30
opal/config/config_files.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,30 @@
# -*- shell-script -*-
#
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This file is m4_included in the top-level configure.ac
AC_CONFIG_FILES([
opal/Makefile
opal/etc/Makefile
opal/include/Makefile
opal/asm/Makefile
opal/datatype/Makefile
opal/event/Makefile
opal/event/compat/Makefile
opal/event/compat/sys/Makefile
opal/util/Makefile
opal/util/keyval/Makefile
opal/mca/base/Makefile
opal/tools/wrappers/Makefile
opal/tools/wrappers/opalcc-wrapper-data.txt
opal/tools/wrappers/opalc++-wrapper-data.txt
opal/tools/opal-checkpoint/Makefile
opal/tools/opal-restart/Makefile
])

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

@ -10,7 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved. dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved. dnl All rights reserved.
dnl Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
dnl Copyright (c) 2009 IBM Corporation. All rights reserved. dnl Copyright (c) 2009 IBM Corporation. All rights reserved.
dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights
@ -415,6 +415,7 @@ AC_ARG_ENABLE([script-wrapper-compilers],
AM_CONDITIONAL([OMPI_WANT_SCRIPT_WRAPPER_COMPILERS], AM_CONDITIONAL([OMPI_WANT_SCRIPT_WRAPPER_COMPILERS],
[test "$enable_script_wrapper_compilers" = "yes"]) [test "$enable_script_wrapper_compilers" = "yes"])
AC_CONFIG_FILES([ompi/tools/wrappers/ompi_wrapper_script], [chmod +x ompi/tools/wrappers/ompi_wrapper_script]) AC_CONFIG_FILES([ompi/tools/wrappers/ompi_wrapper_script], [chmod +x ompi/tools/wrappers/ompi_wrapper_script])
AC_CONFIG_FILES([orte/tools/wrappers/orte_wrapper_script], [chmod +x orte/tools/wrappers/orte_wrapper_script])
# #
# Support per-user config files? # Support per-user config files?

34
orte/config/config_files.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,34 @@
# -*- shell-script -*-
#
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This file is m4_included in the top-level configure.ac only if we
# are building the orte project. You cannot put an AC_CONFIG_FILES in
# an AC_DEFUN that is conditionally called (because Autoconf will
# still process the AC_CONFIG_FILES unconditionally); you can only m4
# include the file or not.
AC_CONFIG_FILES([
orte/Makefile
orte/include/Makefile
orte/etc/Makefile
orte/tools/orted/Makefile
orte/tools/orterun/Makefile
orte/tools/wrappers/Makefile
orte/tools/wrappers/ortecc-wrapper-data.txt
orte/tools/wrappers/ortec++-wrapper-data.txt
orte/tools/orte-checkpoint/Makefile
orte/tools/orte-iof/Makefile
orte/tools/orte-restart/Makefile
orte/tools/orte-ps/Makefile
orte/tools/orte-clean/Makefile
orte/tools/orte-top/Makefile
orte/tools/orte-bootproxy/Makefile
])

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

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

@ -19,8 +19,12 @@
EXTRA_DIST = CMakeLists.txt EXTRA_DIST = CMakeLists.txt
if PROJECT_OMPI
REQUIRES_OMPI = peruse
endif
# support needs to be first for dependencies # support needs to be first for dependencies
SUBDIRS = support asm class threads peruse SUBDIRS = support asm class threads $(REQUIRES_OMPI)
DIST_SUBDIRS = event $(SUBDIRS) DIST_SUBDIRS = event $(SUBDIRS)
TESTS = TESTS =