From 9f4d4c4312113a0f9db2be8d50ff6a45078b3f69 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Fri, 25 Jul 2008 21:18:05 +0000 Subject: [PATCH] Fixes trac:1409: ensure that the C++, F77, and F90 bindings libraries are properly linked against libmpi.la. This required a little creative AM usage, inspired by discussion on OMPI devel list: * Make a new ompi/mpi/f77/Makefile_f77base.include; effectively move the building of the f77 "base" glue stuff (libmpi_f77base.la) into this Makefile and away from ompi/mpi/f77/Makefile.am. The sources in question require some specific CPPFLAGS, so we couldn't just add the raw sources into libmpi_la_SOURCES, unfortunately. * Include this new Makefile in the top-level ompi/Makefile.am * The libmpi_f77base.la LT convenience library was already sucked into libmpi.la; breaking it out into its own Makefile allows us to build it earlier and therefore complete buidling libmpi.la earlier. * Side effect: the ompi/mpi/Makefile.am is now mostly unnecessary; it no longer specifies a SUBDIRS for each of the bindings directories to traverse into (since they are now in the top-level SUBDIRS). As such, the man pages are now also now included in the top-level ompi/Makefile.am. The end of the result is that libmpi.la -- including a few sources from mpi/f77 -- is fully built before the C++, F77, and F90 bindings are built. Therefore, the C++, F77, and F90 bindings libraries can all link against libmpi.la. This commit was SVN r19040. The following Trac tickets were found above: Ticket 1409 --> https://svn.open-mpi.org/trac/ompi/ticket/1409 --- ompi/Makefile.am | 29 +- ompi/mpi/Makefile.am | 10 +- ompi/mpi/cxx/Makefile.am | 4 +- ompi/mpi/f77/Makefile.am | 32 +- ompi/mpi/f77/Makefile_f77base.include | 45 ++ ompi/mpi/f90/Makefile.am | 3 +- ompi/mpi/man/man3/Makefile.extra | 617 +++++++++++++------------- 7 files changed, 392 insertions(+), 348 deletions(-) create mode 100644 ompi/mpi/f77/Makefile_f77base.include diff --git a/ompi/Makefile.am b/ompi/Makefile.am index f745f16dcb..6206238667 100644 --- a/ompi/Makefile.am +++ b/ompi/Makefile.am @@ -9,6 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. +# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -39,15 +40,37 @@ else f77_base_lib = endif +# Note that the ordering of "." in SUBDIRS is important: the C++, F77, +# and F90 bindings are all in standalone .la files that depend on +# libmpi.la. So we must fully build libmpi.la first (which includes +# the C bindings and some "base" f77 glue functionality in mpi/f77). + +# NOTE: A handful of files in mpi/f77 must be included in libmpi.la. +# But we wanted to keep all the Fortran sources together in the same +# directory, so we itemized those sources in a separate +# Makefile_f77base.include that is included in this Makefile.am. This +# included file makes a convenience LT library that is then sucked +# into libmpi.la (those sources must be compiled with special +# CPPFLAGS; we can't just add the raw sources to libmpi_la_SOURCES, +# unfortunately). + +# The end of the result is that libmpi.la -- including a few sources +# from mpi/f77 -- is fully built before the C++, F77, and F90 bindings +# are built. Therefore, the C++, F77 and F90 bindings libraries can +# all link against libmpi.la. + SUBDIRS = \ include \ datatype \ debuggers \ etc \ - mpi \ + mpi/c \ $(MCA_ompi_FRAMEWORKS_SUBDIRS) \ $(MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) \ . \ + mpi/cxx \ + mpi/f77 \ + mpi/f90 \ $(MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS) \ $(OMPI_CONTRIB_SUBDIRS) @@ -94,6 +117,7 @@ include_HEADERS = nobase_ompi_HEADERS = dist_pkgdata_DATA = libmpi_la_SOURCES += $(headers) +man_MANS = # Conditionally install the header files @@ -119,3 +143,6 @@ include request/Makefile.am include runtime/Makefile.am include win/Makefile.am include tools/Makefile.am +include mpi/Makefile.am +include mpi/f77/Makefile_f77base.include +include mpi/man/man3/Makefile.extra diff --git a/ompi/mpi/Makefile.am b/ompi/mpi/Makefile.am index 759016d611..91c33cfd54 100644 --- a/ompi/mpi/Makefile.am +++ b/ompi/mpi/Makefile.am @@ -9,7 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -17,10 +17,4 @@ # $HEADER$ # -SUBDIRS = c cxx f77 f90 - -dist_pkgdata_DATA = help-mpi-api.txt - -man_MANS = -include man/man3/Makefile.extra -EXTRA_DIST = $(man_MANS) +dist_pkgdata_DATA += mpi/help-mpi-api.txt diff --git a/ompi/mpi/cxx/Makefile.am b/ompi/mpi/cxx/Makefile.am index cb38318a65..2d34aef30c 100644 --- a/ompi/mpi/cxx/Makefile.am +++ b/ompi/mpi/cxx/Makefile.am @@ -10,7 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -42,6 +42,8 @@ libmpi_cxx_la_SOURCES += \ file.cc endif +libmpi_cxx_la_LIBADD = $(top_builddir)/ompi/libmpi.la + headers = \ mpicxx.h \ constants.h \ diff --git a/ompi/mpi/f77/Makefile.am b/ompi/mpi/f77/Makefile.am index 538c322aca..0e1daf149a 100644 --- a/ompi/mpi/f77/Makefile.am +++ b/ompi/mpi/f77/Makefile.am @@ -9,7 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -46,35 +46,18 @@ AM_CPPFLAGS = -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_F77_WRAPPERS=1 # lib_LTLIBRARIES = -libmpi_f77_la_LIBADD = -noinst_LTLIBRARIES = +libmpi_f77_la_LIBADD = $(top_builddir)/ompi/libmpi.la # Are we building the F77 bindings at all? if OMPI_WANT_F77_BINDINGS # If yes, then we need to build the installable library and the glue # convenience library that will be sucked up into the main libmpi. lib_LTLIBRARIES += libmpi_f77.la -noinst_LTLIBRARIES += libmpi_f77_base.la # Do we need to suck in the convenience library from the lower # directory? if WANT_PMPI_F77_BINDINGS_LAYER libmpi_f77_la_LIBADD += profile/libmpi_f77_pmpi.la -else -# Is this else conditional really necessary? There *used* to be an AM -# bug that forced this; is it still there? (there is no harm in -# having this extra statement; I just don't know if it's *necessary* -# anymore) -libmpi_f77_la_LIBADD += endif - -else - -# No, we are not building the F77 bindings at all. Ditto on the -# comment above about whether we really need these statements or -# not... -lib_LTLIBRARIES += -libmpi_f77_la_LIBADD += -noinst_LTLIBRARIES += endif headers = \ @@ -85,17 +68,6 @@ headers = \ prototypes_mpi.h \ f77_strings.h -# -# libmpi_f77.la is always build because it contains some non-profilied -# functions. -# -libmpi_f77_base_la_SOURCES = \ - attr_fn_f.c \ - conversion_fn_null_f.c \ - f90_accessors.c \ - strings.c \ - test_constants_f.c - # # These files are only built and added to libmpi_f77.la in certain cases. # diff --git a/ompi/mpi/f77/Makefile_f77base.include b/ompi/mpi/f77/Makefile_f77base.include new file mode 100644 index 0000000000..be5bf5b44f --- /dev/null +++ b/ompi/mpi/f77/Makefile_f77base.include @@ -0,0 +1,45 @@ +# +# Copyright (c) 2004-2007 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) 2006-2008 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This Makefile does not stand on its own; it is included in +# ompi/mpi/Makefile.am to satisfy a complicated set of ordering issues +# when building the Fortran code. This stub Makefile only builds a +# small number of files in the f77 directory so that they can be +# included in the main libmpi. See comments in that Makefile.am for +# details. + +# If we're building the F77 bindings, then we need to build the +# Fortran 77 glue into libmpi +if OMPI_WANT_F77_BINDINGS +noinst_LTLIBRARIES += mpi/f77/libmpi_f77_base.la +endif + +# This needs to be its own convenience library because it requires +# some specialized CPPFLAGS to set all the defines in various .h files +# properly (copied from ompi/mpi/f77/Makefile.am) -- we unfortunately +# can't just suck the sources into the larger libmpi.la. + +mpi_f77_libmpi_f77_base_la_CPPFLAGS = \ + -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_F77_WRAPPERS=1 +mpi_f77_libmpi_f77_base_la_SOURCES = \ + mpi/f77/attr_fn_f.c \ + mpi/f77/conversion_fn_null_f.c \ + mpi/f77/f90_accessors.c \ + mpi/f77/strings.c \ + mpi/f77/test_constants_f.c diff --git a/ompi/mpi/f90/Makefile.am b/ompi/mpi/f90/Makefile.am index b5c28a1553..19b8597505 100644 --- a/ompi/mpi/f90/Makefile.am +++ b/ompi/mpi/f90/Makefile.am @@ -10,7 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2007 Los Alamos National Security, LLC. All rights # reserved. # $COPYRIGHT$ @@ -142,6 +142,7 @@ libmpi_f90_la_SOURCES = \ attr_fn-f90-interfaces.h \ conversion_fn_null-f90-interface.h \ mpi.f90 +libmpi_f90_la_LIBADD = $(top_builddir)/ompi/libmpi.la # These files are all generated by scripts in the scripts/ directory. diff --git a/ompi/mpi/man/man3/Makefile.extra b/ompi/mpi/man/man3/Makefile.extra index a9057df8b2..ff392bdcb5 100644 --- a/ompi/mpi/man/man3/Makefile.extra +++ b/ompi/mpi/man/man3/Makefile.extra @@ -7,310 +7,313 @@ # $HEADER$ # -man_MANS += \ - man/man3/MPI.3 \ - man/man3/MPI_Abort.3 \ - man/man3/MPI_Accumulate.3 \ - man/man3/MPI_Add_error_class.3 \ - man/man3/MPI_Add_error_code.3 \ - man/man3/MPI_Add_error_string.3 \ - man/man3/MPI_Address.3 \ - man/man3/MPI_Allgather.3 \ - man/man3/MPI_Allgatherv.3 \ - man/man3/MPI_Alloc_mem.3 \ - man/man3/MPI_Allreduce.3 \ - man/man3/MPI_Alltoall.3 \ - man/man3/MPI_Alltoallv.3 \ - man/man3/MPI_Alltoallw.3 \ - man/man3/MPI_Attr_delete.3 \ - man/man3/MPI_Attr_get.3 \ - man/man3/MPI_Attr_put.3 \ - man/man3/MPI_Barrier.3 \ - man/man3/MPI_Bcast.3 \ - man/man3/MPI_Bsend.3 \ - man/man3/MPI_Bsend_init.3 \ - man/man3/MPI_Buffer_attach.3 \ - man/man3/MPI_Buffer_detach.3 \ - man/man3/MPI_Cancel.3 \ - man/man3/MPI_Cart_coords.3 \ - man/man3/MPI_Cart_create.3 \ - man/man3/MPI_Cartdim_get.3 \ - man/man3/MPI_Cart_get.3 \ - man/man3/MPI_Cart_map.3 \ - man/man3/MPI_Cart_rank.3 \ - man/man3/MPI_Cart_shift.3 \ - man/man3/MPI_Cart_sub.3 \ - man/man3/MPI_Close_port.3 \ - man/man3/MPI_Comm_accept.3 \ - man/man3/MPI_Comm_c2f.3 \ - man/man3/MPI_Comm_call_errhandler.3 \ - man/man3/MPI_Comm_compare.3 \ - man/man3/MPI_Comm_connect.3 \ - man/man3/MPI_Comm_create.3 \ - man/man3/MPI_Comm_create_errhandler.3 \ - man/man3/MPI_Comm_create_keyval.3 \ - man/man3/MPI_Comm_delete_attr.3 \ - man/man3/MPI_Comm_disconnect.3 \ - man/man3/MPI_Comm_dup.3 \ - man/man3/MPI_Comm_f2c.3 \ - man/man3/MPI_Comm_free.3 \ - man/man3/MPI_Comm_free_keyval.3 \ - man/man3/MPI_Comm_get_attr.3 \ - man/man3/MPI_Comm_get_errhandler.3 \ - man/man3/MPI_Comm_get_name.3 \ - man/man3/MPI_Comm_get_parent.3 \ - man/man3/MPI_Comm_group.3 \ - man/man3/MPI_Comm_join.3 \ - man/man3/MPI_Comm_rank.3 \ - man/man3/MPI_Comm_remote_group.3 \ - man/man3/MPI_Comm_remote_size.3 \ - man/man3/MPI_Comm_set_attr.3 \ - man/man3/MPI_Comm_set_errhandler.3 \ - man/man3/MPI_Comm_set_name.3 \ - man/man3/MPI_Comm_size.3 \ - man/man3/MPI_Comm_spawn.3 \ - man/man3/MPI_Comm_spawn_multiple.3 \ - man/man3/MPI_Comm_split.3 \ - man/man3/MPI_Comm_test_inter.3 \ - man/man3/MPI_Dims_create.3 \ - man/man3/MPI_Errhandler_create.3 \ - man/man3/MPI_Errhandler_free.3 \ - man/man3/MPI_Errhandler_get.3 \ - man/man3/MPI_Errhandler_set.3 \ - man/man3/MPI_Error_class.3 \ - man/man3/MPI_Error_string.3 \ - man/man3/MPI_Exscan.3 \ - man/man3/MPI_File_c2f.3 \ - man/man3/MPI_File_call_errhandler.3 \ - man/man3/MPI_File_close.3 \ - man/man3/MPI_File_create_errhandler.3 \ - man/man3/MPI_File_delete.3 \ - man/man3/MPI_File_f2c.3 \ - man/man3/MPI_File_get_amode.3 \ - man/man3/MPI_File_get_atomicity.3 \ - man/man3/MPI_File_get_byte_offset.3 \ - man/man3/MPI_File_get_errhandler.3 \ - man/man3/MPI_File_get_group.3 \ - man/man3/MPI_File_get_info.3 \ - man/man3/MPI_File_get_position.3 \ - man/man3/MPI_File_get_position_shared.3 \ - man/man3/MPI_File_get_size.3 \ - man/man3/MPI_File_get_type_extent.3 \ - man/man3/MPI_File_get_view.3 \ - man/man3/MPI_File_iread.3 \ - man/man3/MPI_File_iread_at.3 \ - man/man3/MPI_File_iread_shared.3 \ - man/man3/MPI_File_iwrite.3 \ - man/man3/MPI_File_iwrite_at.3 \ - man/man3/MPI_File_iwrite_shared.3 \ - man/man3/MPI_File_open.3 \ - man/man3/MPI_File_preallocate.3 \ - man/man3/MPI_File_read.3 \ - man/man3/MPI_File_read_all.3 \ - man/man3/MPI_File_read_all_begin.3 \ - man/man3/MPI_File_read_all_end.3 \ - man/man3/MPI_File_read_at.3 \ - man/man3/MPI_File_read_at_all.3 \ - man/man3/MPI_File_read_at_all_begin.3 \ - man/man3/MPI_File_read_at_all_end.3 \ - man/man3/MPI_File_read_ordered.3 \ - man/man3/MPI_File_read_ordered_begin.3 \ - man/man3/MPI_File_read_ordered_end.3 \ - man/man3/MPI_File_read_shared.3 \ - man/man3/MPI_File_seek.3 \ - man/man3/MPI_File_seek_shared.3 \ - man/man3/MPI_File_set_atomicity.3 \ - man/man3/MPI_File_set_errhandler.3 \ - man/man3/MPI_File_set_info.3 \ - man/man3/MPI_File_set_size.3 \ - man/man3/MPI_File_set_view.3 \ - man/man3/MPI_File_sync.3 \ - man/man3/MPI_File_write.3 \ - man/man3/MPI_File_write_all.3 \ - man/man3/MPI_File_write_all_begin.3 \ - man/man3/MPI_File_write_all_end.3 \ - man/man3/MPI_File_write_at.3 \ - man/man3/MPI_File_write_at_all.3 \ - man/man3/MPI_File_write_at_all_begin.3 \ - man/man3/MPI_File_write_at_all_end.3 \ - man/man3/MPI_File_write_ordered.3 \ - man/man3/MPI_File_write_ordered_begin.3 \ - man/man3/MPI_File_write_ordered_end.3 \ - man/man3/MPI_File_write_shared.3 \ - man/man3/MPI_Finalize.3 \ - man/man3/MPI_Finalized.3 \ - man/man3/MPI_Free_mem.3 \ - man/man3/MPI_Gather.3 \ - man/man3/MPI_Gatherv.3 \ - man/man3/MPI_Get.3 \ - man/man3/MPI_Get_address.3 \ - man/man3/MPI_Get_count.3 \ - man/man3/MPI_Get_elements.3 \ - man/man3/MPI_Get_processor_name.3 \ - man/man3/MPI_Get_version.3 \ - man/man3/MPI_Graph_create.3 \ - man/man3/MPI_Graphdims_get.3 \ - man/man3/MPI_Graph_get.3 \ - man/man3/MPI_Graph_map.3 \ - man/man3/MPI_Graph_neighbors.3 \ - man/man3/MPI_Graph_neighbors_count.3 \ - man/man3/MPI_Grequest_complete.3 \ - man/man3/MPI_Grequest_start.3 \ - man/man3/MPI_Group_c2f.3 \ - man/man3/MPI_Group_compare.3 \ - man/man3/MPI_Group_difference.3 \ - man/man3/MPI_Group_excl.3 \ - man/man3/MPI_Group_f2c.3 \ - man/man3/MPI_Group_free.3 \ - man/man3/MPI_Group_incl.3 \ - man/man3/MPI_Group_intersection.3 \ - man/man3/MPI_Group_range_excl.3 \ - man/man3/MPI_Group_range_incl.3 \ - man/man3/MPI_Group_rank.3 \ - man/man3/MPI_Group_size.3 \ - man/man3/MPI_Group_translate_ranks.3 \ - man/man3/MPI_Group_union.3 \ - man/man3/MPI_Ibsend.3 \ - man/man3/MPI_Info_c2f.3 \ - man/man3/MPI_Info_create.3 \ - man/man3/MPI_Info_delete.3 \ - man/man3/MPI_Info_dup.3 \ - man/man3/MPI_Info_f2c.3 \ - man/man3/MPI_Info_free.3 \ - man/man3/MPI_Info_get.3 \ - man/man3/MPI_Info_get_nkeys.3 \ - man/man3/MPI_Info_get_nthkey.3 \ - man/man3/MPI_Info_get_valuelen.3 \ - man/man3/MPI_Info_set.3 \ - man/man3/MPI_Init.3 \ - man/man3/MPI_Initialized.3 \ - man/man3/MPI_Init_thread.3 \ - man/man3/MPI_Intercomm_create.3 \ - man/man3/MPI_Intercomm_merge.3 \ - man/man3/MPI_Iprobe.3 \ - man/man3/MPI_Irecv.3 \ - man/man3/MPI_Irsend.3 \ - man/man3/MPI_Isend.3 \ - man/man3/MPI_Issend.3 \ - man/man3/MPI_Is_thread_main.3 \ - man/man3/MPI_Keyval_create.3 \ - man/man3/MPI_Keyval_free.3 \ - man/man3/MPI_Lookup_name.3 \ - man/man3/MPI_Op_c2f.3 \ - man/man3/MPI_Op_create.3 \ - man/man3/MPI_Open_port.3 \ - man/man3/MPI_Op_f2c.3 \ - man/man3/MPI_Op_free.3 \ - man/man3/MPI_Pack.3 \ - man/man3/MPI_Pack_external.3 \ - man/man3/MPI_Pack_external_size.3 \ - man/man3/MPI_Pack_size.3 \ - man/man3/MPI_Pcontrol.3 \ - man/man3/MPI_Probe.3 \ - man/man3/MPI_Publish_name.3 \ - man/man3/MPI_Put.3 \ - man/man3/MPI_Query_thread.3 \ - man/man3/MPI_Recv.3 \ - man/man3/MPI_Recv_init.3 \ - man/man3/MPI_Reduce.3 \ - man/man3/MPI_Reduce_scatter.3 \ - man/man3/MPI_Register_datarep.3 \ - man/man3/MPI_Request_c2f.3 \ - man/man3/MPI_Request_f2c.3 \ - man/man3/MPI_Request_free.3 \ - man/man3/MPI_Request_get_status.3 \ - man/man3/MPI_Rsend.3 \ - man/man3/MPI_Rsend_init.3 \ - man/man3/MPI_Scan.3 \ - man/man3/MPI_Scatter.3 \ - man/man3/MPI_Scatterv.3 \ - man/man3/MPI_Send.3 \ - man/man3/MPI_Send_init.3 \ - man/man3/MPI_Sendrecv.3 \ - man/man3/MPI_Sendrecv_replace.3 \ - man/man3/MPI_Sizeof.3 \ - man/man3/MPI_Ssend.3 \ - man/man3/MPI_Ssend_init.3 \ - man/man3/MPI_Start.3 \ - man/man3/MPI_Startall.3 \ - man/man3/MPI_Status_c2f.3 \ - man/man3/MPI_Status_f2c.3 \ - man/man3/MPI_Status_set_cancelled.3 \ - man/man3/MPI_Status_set_elements.3 \ - man/man3/MPI_Test.3 \ - man/man3/MPI_Testall.3 \ - man/man3/MPI_Testany.3 \ - man/man3/MPI_Test_cancelled.3 \ - man/man3/MPI_Testsome.3 \ - man/man3/MPI_Topo_test.3 \ - man/man3/MPI_Type_c2f.3 \ - man/man3/MPI_Type_commit.3 \ - man/man3/MPI_Type_contiguous.3 \ - man/man3/MPI_Type_create_darray.3 \ - man/man3/MPI_Type_create_f90_complex.3 \ - man/man3/MPI_Type_create_f90_integer.3 \ - man/man3/MPI_Type_create_f90_real.3 \ - man/man3/MPI_Type_create_hindexed.3 \ - man/man3/MPI_Type_create_hvector.3 \ - man/man3/MPI_Type_create_indexed_block.3 \ - man/man3/MPI_Type_create_keyval.3 \ - man/man3/MPI_Type_create_resized.3 \ - man/man3/MPI_Type_create_struct.3 \ - man/man3/MPI_Type_create_subarray.3 \ - man/man3/MPI_Type_delete_attr.3 \ - man/man3/MPI_Type_dup.3 \ - man/man3/MPI_Type_extent.3 \ - man/man3/MPI_Type_f2c.3 \ - man/man3/MPI_Type_free.3 \ - man/man3/MPI_Type_free_keyval.3 \ - man/man3/MPI_Type_get_attr.3 \ - man/man3/MPI_Type_get_contents.3 \ - man/man3/MPI_Type_get_envelope.3 \ - man/man3/MPI_Type_get_extent.3 \ - man/man3/MPI_Type_get_name.3 \ - man/man3/MPI_Type_get_true_extent.3 \ - man/man3/MPI_Type_hindexed.3 \ - man/man3/MPI_Type_hvector.3 \ - man/man3/MPI_Type_indexed.3 \ - man/man3/MPI_Type_lb.3 \ - man/man3/MPI_Type_match_size.3 \ - man/man3/MPI_Type_set_attr.3 \ - man/man3/MPI_Type_set_name.3 \ - man/man3/MPI_Type_size.3 \ - man/man3/MPI_Type_struct.3 \ - man/man3/MPI_Type_ub.3 \ - man/man3/MPI_Type_vector.3 \ - man/man3/MPI_Unpack.3 \ - man/man3/MPI_Unpack_external.3 \ - man/man3/MPI_Unpublish_name.3 \ - man/man3/MPI_Wait.3 \ - man/man3/MPI_Waitall.3 \ - man/man3/MPI_Waitany.3 \ - man/man3/MPI_Waitsome.3 \ - man/man3/MPI_Win_c2f.3 \ - man/man3/MPI_Win_call_errhandler.3 \ - man/man3/MPI_Win_complete.3 \ - man/man3/MPI_Win_create.3 \ - man/man3/MPI_Win_create_errhandler.3 \ - man/man3/MPI_Win_create_keyval.3 \ - man/man3/MPI_Win_delete_attr.3 \ - man/man3/MPI_Win_f2c.3 \ - man/man3/MPI_Win_fence.3 \ - man/man3/MPI_Win_free.3 \ - man/man3/MPI_Win_free_keyval.3 \ - man/man3/MPI_Win_get_attr.3 \ - man/man3/MPI_Win_get_errhandler.3 \ - man/man3/MPI_Win_get_group.3 \ - man/man3/MPI_Win_get_name.3 \ - man/man3/MPI_Win_lock.3 \ - man/man3/MPI_Win_post.3 \ - man/man3/MPI_Win_set_attr.3 \ - man/man3/MPI_Win_set_errhandler.3 \ - man/man3/MPI_Win_set_name.3 \ - man/man3/MPI_Win_start.3 \ - man/man3/MPI_Win_test.3 \ - man/man3/MPI_Win_unlock.3 \ - man/man3/MPI_Win_wait.3 \ - man/man3/MPI_Wtick.3 \ - man/man3/MPI_Wtime.3 \ - man/man3/OpenMPI.3 +mpi_api_man_pages = \ + mpi/man/man3/MPI.3 \ + mpi/man/man3/MPI_Abort.3 \ + mpi/man/man3/MPI_Accumulate.3 \ + mpi/man/man3/MPI_Add_error_class.3 \ + mpi/man/man3/MPI_Add_error_code.3 \ + mpi/man/man3/MPI_Add_error_string.3 \ + mpi/man/man3/MPI_Address.3 \ + mpi/man/man3/MPI_Allgather.3 \ + mpi/man/man3/MPI_Allgatherv.3 \ + mpi/man/man3/MPI_Alloc_mem.3 \ + mpi/man/man3/MPI_Allreduce.3 \ + mpi/man/man3/MPI_Alltoall.3 \ + mpi/man/man3/MPI_Alltoallv.3 \ + mpi/man/man3/MPI_Alltoallw.3 \ + mpi/man/man3/MPI_Attr_delete.3 \ + mpi/man/man3/MPI_Attr_get.3 \ + mpi/man/man3/MPI_Attr_put.3 \ + mpi/man/man3/MPI_Barrier.3 \ + mpi/man/man3/MPI_Bcast.3 \ + mpi/man/man3/MPI_Bsend.3 \ + mpi/man/man3/MPI_Bsend_init.3 \ + mpi/man/man3/MPI_Buffer_attach.3 \ + mpi/man/man3/MPI_Buffer_detach.3 \ + mpi/man/man3/MPI_Cancel.3 \ + mpi/man/man3/MPI_Cart_coords.3 \ + mpi/man/man3/MPI_Cart_create.3 \ + mpi/man/man3/MPI_Cartdim_get.3 \ + mpi/man/man3/MPI_Cart_get.3 \ + mpi/man/man3/MPI_Cart_map.3 \ + mpi/man/man3/MPI_Cart_rank.3 \ + mpi/man/man3/MPI_Cart_shift.3 \ + mpi/man/man3/MPI_Cart_sub.3 \ + mpi/man/man3/MPI_Close_port.3 \ + mpi/man/man3/MPI_Comm_accept.3 \ + mpi/man/man3/MPI_Comm_c2f.3 \ + mpi/man/man3/MPI_Comm_call_errhandler.3 \ + mpi/man/man3/MPI_Comm_compare.3 \ + mpi/man/man3/MPI_Comm_connect.3 \ + mpi/man/man3/MPI_Comm_create.3 \ + mpi/man/man3/MPI_Comm_create_errhandler.3 \ + mpi/man/man3/MPI_Comm_create_keyval.3 \ + mpi/man/man3/MPI_Comm_delete_attr.3 \ + mpi/man/man3/MPI_Comm_disconnect.3 \ + mpi/man/man3/MPI_Comm_dup.3 \ + mpi/man/man3/MPI_Comm_f2c.3 \ + mpi/man/man3/MPI_Comm_free.3 \ + mpi/man/man3/MPI_Comm_free_keyval.3 \ + mpi/man/man3/MPI_Comm_get_attr.3 \ + mpi/man/man3/MPI_Comm_get_errhandler.3 \ + mpi/man/man3/MPI_Comm_get_name.3 \ + mpi/man/man3/MPI_Comm_get_parent.3 \ + mpi/man/man3/MPI_Comm_group.3 \ + mpi/man/man3/MPI_Comm_join.3 \ + mpi/man/man3/MPI_Comm_rank.3 \ + mpi/man/man3/MPI_Comm_remote_group.3 \ + mpi/man/man3/MPI_Comm_remote_size.3 \ + mpi/man/man3/MPI_Comm_set_attr.3 \ + mpi/man/man3/MPI_Comm_set_errhandler.3 \ + mpi/man/man3/MPI_Comm_set_name.3 \ + mpi/man/man3/MPI_Comm_size.3 \ + mpi/man/man3/MPI_Comm_spawn.3 \ + mpi/man/man3/MPI_Comm_spawn_multiple.3 \ + mpi/man/man3/MPI_Comm_split.3 \ + mpi/man/man3/MPI_Comm_test_inter.3 \ + mpi/man/man3/MPI_Dims_create.3 \ + mpi/man/man3/MPI_Errhandler_create.3 \ + mpi/man/man3/MPI_Errhandler_free.3 \ + mpi/man/man3/MPI_Errhandler_get.3 \ + mpi/man/man3/MPI_Errhandler_set.3 \ + mpi/man/man3/MPI_Error_class.3 \ + mpi/man/man3/MPI_Error_string.3 \ + mpi/man/man3/MPI_Exscan.3 \ + mpi/man/man3/MPI_File_c2f.3 \ + mpi/man/man3/MPI_File_call_errhandler.3 \ + mpi/man/man3/MPI_File_close.3 \ + mpi/man/man3/MPI_File_create_errhandler.3 \ + mpi/man/man3/MPI_File_delete.3 \ + mpi/man/man3/MPI_File_f2c.3 \ + mpi/man/man3/MPI_File_get_amode.3 \ + mpi/man/man3/MPI_File_get_atomicity.3 \ + mpi/man/man3/MPI_File_get_byte_offset.3 \ + mpi/man/man3/MPI_File_get_errhandler.3 \ + mpi/man/man3/MPI_File_get_group.3 \ + mpi/man/man3/MPI_File_get_info.3 \ + mpi/man/man3/MPI_File_get_position.3 \ + mpi/man/man3/MPI_File_get_position_shared.3 \ + mpi/man/man3/MPI_File_get_size.3 \ + mpi/man/man3/MPI_File_get_type_extent.3 \ + mpi/man/man3/MPI_File_get_view.3 \ + mpi/man/man3/MPI_File_iread.3 \ + mpi/man/man3/MPI_File_iread_at.3 \ + mpi/man/man3/MPI_File_iread_shared.3 \ + mpi/man/man3/MPI_File_iwrite.3 \ + mpi/man/man3/MPI_File_iwrite_at.3 \ + mpi/man/man3/MPI_File_iwrite_shared.3 \ + mpi/man/man3/MPI_File_open.3 \ + mpi/man/man3/MPI_File_preallocate.3 \ + mpi/man/man3/MPI_File_read.3 \ + mpi/man/man3/MPI_File_read_all.3 \ + mpi/man/man3/MPI_File_read_all_begin.3 \ + mpi/man/man3/MPI_File_read_all_end.3 \ + mpi/man/man3/MPI_File_read_at.3 \ + mpi/man/man3/MPI_File_read_at_all.3 \ + mpi/man/man3/MPI_File_read_at_all_begin.3 \ + mpi/man/man3/MPI_File_read_at_all_end.3 \ + mpi/man/man3/MPI_File_read_ordered.3 \ + mpi/man/man3/MPI_File_read_ordered_begin.3 \ + mpi/man/man3/MPI_File_read_ordered_end.3 \ + mpi/man/man3/MPI_File_read_shared.3 \ + mpi/man/man3/MPI_File_seek.3 \ + mpi/man/man3/MPI_File_seek_shared.3 \ + mpi/man/man3/MPI_File_set_atomicity.3 \ + mpi/man/man3/MPI_File_set_errhandler.3 \ + mpi/man/man3/MPI_File_set_info.3 \ + mpi/man/man3/MPI_File_set_size.3 \ + mpi/man/man3/MPI_File_set_view.3 \ + mpi/man/man3/MPI_File_sync.3 \ + mpi/man/man3/MPI_File_write.3 \ + mpi/man/man3/MPI_File_write_all.3 \ + mpi/man/man3/MPI_File_write_all_begin.3 \ + mpi/man/man3/MPI_File_write_all_end.3 \ + mpi/man/man3/MPI_File_write_at.3 \ + mpi/man/man3/MPI_File_write_at_all.3 \ + mpi/man/man3/MPI_File_write_at_all_begin.3 \ + mpi/man/man3/MPI_File_write_at_all_end.3 \ + mpi/man/man3/MPI_File_write_ordered.3 \ + mpi/man/man3/MPI_File_write_ordered_begin.3 \ + mpi/man/man3/MPI_File_write_ordered_end.3 \ + mpi/man/man3/MPI_File_write_shared.3 \ + mpi/man/man3/MPI_Finalize.3 \ + mpi/man/man3/MPI_Finalized.3 \ + mpi/man/man3/MPI_Free_mem.3 \ + mpi/man/man3/MPI_Gather.3 \ + mpi/man/man3/MPI_Gatherv.3 \ + mpi/man/man3/MPI_Get.3 \ + mpi/man/man3/MPI_Get_address.3 \ + mpi/man/man3/MPI_Get_count.3 \ + mpi/man/man3/MPI_Get_elements.3 \ + mpi/man/man3/MPI_Get_processor_name.3 \ + mpi/man/man3/MPI_Get_version.3 \ + mpi/man/man3/MPI_Graph_create.3 \ + mpi/man/man3/MPI_Graphdims_get.3 \ + mpi/man/man3/MPI_Graph_get.3 \ + mpi/man/man3/MPI_Graph_map.3 \ + mpi/man/man3/MPI_Graph_neighbors.3 \ + mpi/man/man3/MPI_Graph_neighbors_count.3 \ + mpi/man/man3/MPI_Grequest_complete.3 \ + mpi/man/man3/MPI_Grequest_start.3 \ + mpi/man/man3/MPI_Group_c2f.3 \ + mpi/man/man3/MPI_Group_compare.3 \ + mpi/man/man3/MPI_Group_difference.3 \ + mpi/man/man3/MPI_Group_excl.3 \ + mpi/man/man3/MPI_Group_f2c.3 \ + mpi/man/man3/MPI_Group_free.3 \ + mpi/man/man3/MPI_Group_incl.3 \ + mpi/man/man3/MPI_Group_intersection.3 \ + mpi/man/man3/MPI_Group_range_excl.3 \ + mpi/man/man3/MPI_Group_range_incl.3 \ + mpi/man/man3/MPI_Group_rank.3 \ + mpi/man/man3/MPI_Group_size.3 \ + mpi/man/man3/MPI_Group_translate_ranks.3 \ + mpi/man/man3/MPI_Group_union.3 \ + mpi/man/man3/MPI_Ibsend.3 \ + mpi/man/man3/MPI_Info_c2f.3 \ + mpi/man/man3/MPI_Info_create.3 \ + mpi/man/man3/MPI_Info_delete.3 \ + mpi/man/man3/MPI_Info_dup.3 \ + mpi/man/man3/MPI_Info_f2c.3 \ + mpi/man/man3/MPI_Info_free.3 \ + mpi/man/man3/MPI_Info_get.3 \ + mpi/man/man3/MPI_Info_get_nkeys.3 \ + mpi/man/man3/MPI_Info_get_nthkey.3 \ + mpi/man/man3/MPI_Info_get_valuelen.3 \ + mpi/man/man3/MPI_Info_set.3 \ + mpi/man/man3/MPI_Init.3 \ + mpi/man/man3/MPI_Initialized.3 \ + mpi/man/man3/MPI_Init_thread.3 \ + mpi/man/man3/MPI_Intercomm_create.3 \ + mpi/man/man3/MPI_Intercomm_merge.3 \ + mpi/man/man3/MPI_Iprobe.3 \ + mpi/man/man3/MPI_Irecv.3 \ + mpi/man/man3/MPI_Irsend.3 \ + mpi/man/man3/MPI_Isend.3 \ + mpi/man/man3/MPI_Issend.3 \ + mpi/man/man3/MPI_Is_thread_main.3 \ + mpi/man/man3/MPI_Keyval_create.3 \ + mpi/man/man3/MPI_Keyval_free.3 \ + mpi/man/man3/MPI_Lookup_name.3 \ + mpi/man/man3/MPI_Op_c2f.3 \ + mpi/man/man3/MPI_Op_create.3 \ + mpi/man/man3/MPI_Open_port.3 \ + mpi/man/man3/MPI_Op_f2c.3 \ + mpi/man/man3/MPI_Op_free.3 \ + mpi/man/man3/MPI_Pack.3 \ + mpi/man/man3/MPI_Pack_external.3 \ + mpi/man/man3/MPI_Pack_external_size.3 \ + mpi/man/man3/MPI_Pack_size.3 \ + mpi/man/man3/MPI_Pcontrol.3 \ + mpi/man/man3/MPI_Probe.3 \ + mpi/man/man3/MPI_Publish_name.3 \ + mpi/man/man3/MPI_Put.3 \ + mpi/man/man3/MPI_Query_thread.3 \ + mpi/man/man3/MPI_Recv.3 \ + mpi/man/man3/MPI_Recv_init.3 \ + mpi/man/man3/MPI_Reduce.3 \ + mpi/man/man3/MPI_Reduce_scatter.3 \ + mpi/man/man3/MPI_Register_datarep.3 \ + mpi/man/man3/MPI_Request_c2f.3 \ + mpi/man/man3/MPI_Request_f2c.3 \ + mpi/man/man3/MPI_Request_free.3 \ + mpi/man/man3/MPI_Request_get_status.3 \ + mpi/man/man3/MPI_Rsend.3 \ + mpi/man/man3/MPI_Rsend_init.3 \ + mpi/man/man3/MPI_Scan.3 \ + mpi/man/man3/MPI_Scatter.3 \ + mpi/man/man3/MPI_Scatterv.3 \ + mpi/man/man3/MPI_Send.3 \ + mpi/man/man3/MPI_Send_init.3 \ + mpi/man/man3/MPI_Sendrecv.3 \ + mpi/man/man3/MPI_Sendrecv_replace.3 \ + mpi/man/man3/MPI_Sizeof.3 \ + mpi/man/man3/MPI_Ssend.3 \ + mpi/man/man3/MPI_Ssend_init.3 \ + mpi/man/man3/MPI_Start.3 \ + mpi/man/man3/MPI_Startall.3 \ + mpi/man/man3/MPI_Status_c2f.3 \ + mpi/man/man3/MPI_Status_f2c.3 \ + mpi/man/man3/MPI_Status_set_cancelled.3 \ + mpi/man/man3/MPI_Status_set_elements.3 \ + mpi/man/man3/MPI_Test.3 \ + mpi/man/man3/MPI_Testall.3 \ + mpi/man/man3/MPI_Testany.3 \ + mpi/man/man3/MPI_Test_cancelled.3 \ + mpi/man/man3/MPI_Testsome.3 \ + mpi/man/man3/MPI_Topo_test.3 \ + mpi/man/man3/MPI_Type_c2f.3 \ + mpi/man/man3/MPI_Type_commit.3 \ + mpi/man/man3/MPI_Type_contiguous.3 \ + mpi/man/man3/MPI_Type_create_darray.3 \ + mpi/man/man3/MPI_Type_create_f90_complex.3 \ + mpi/man/man3/MPI_Type_create_f90_integer.3 \ + mpi/man/man3/MPI_Type_create_f90_real.3 \ + mpi/man/man3/MPI_Type_create_hindexed.3 \ + mpi/man/man3/MPI_Type_create_hvector.3 \ + mpi/man/man3/MPI_Type_create_indexed_block.3 \ + mpi/man/man3/MPI_Type_create_keyval.3 \ + mpi/man/man3/MPI_Type_create_resized.3 \ + mpi/man/man3/MPI_Type_create_struct.3 \ + mpi/man/man3/MPI_Type_create_subarray.3 \ + mpi/man/man3/MPI_Type_delete_attr.3 \ + mpi/man/man3/MPI_Type_dup.3 \ + mpi/man/man3/MPI_Type_extent.3 \ + mpi/man/man3/MPI_Type_f2c.3 \ + mpi/man/man3/MPI_Type_free.3 \ + mpi/man/man3/MPI_Type_free_keyval.3 \ + mpi/man/man3/MPI_Type_get_attr.3 \ + mpi/man/man3/MPI_Type_get_contents.3 \ + mpi/man/man3/MPI_Type_get_envelope.3 \ + mpi/man/man3/MPI_Type_get_extent.3 \ + mpi/man/man3/MPI_Type_get_name.3 \ + mpi/man/man3/MPI_Type_get_true_extent.3 \ + mpi/man/man3/MPI_Type_hindexed.3 \ + mpi/man/man3/MPI_Type_hvector.3 \ + mpi/man/man3/MPI_Type_indexed.3 \ + mpi/man/man3/MPI_Type_lb.3 \ + mpi/man/man3/MPI_Type_match_size.3 \ + mpi/man/man3/MPI_Type_set_attr.3 \ + mpi/man/man3/MPI_Type_set_name.3 \ + mpi/man/man3/MPI_Type_size.3 \ + mpi/man/man3/MPI_Type_struct.3 \ + mpi/man/man3/MPI_Type_ub.3 \ + mpi/man/man3/MPI_Type_vector.3 \ + mpi/man/man3/MPI_Unpack.3 \ + mpi/man/man3/MPI_Unpack_external.3 \ + mpi/man/man3/MPI_Unpublish_name.3 \ + mpi/man/man3/MPI_Wait.3 \ + mpi/man/man3/MPI_Waitall.3 \ + mpi/man/man3/MPI_Waitany.3 \ + mpi/man/man3/MPI_Waitsome.3 \ + mpi/man/man3/MPI_Win_c2f.3 \ + mpi/man/man3/MPI_Win_call_errhandler.3 \ + mpi/man/man3/MPI_Win_complete.3 \ + mpi/man/man3/MPI_Win_create.3 \ + mpi/man/man3/MPI_Win_create_errhandler.3 \ + mpi/man/man3/MPI_Win_create_keyval.3 \ + mpi/man/man3/MPI_Win_delete_attr.3 \ + mpi/man/man3/MPI_Win_f2c.3 \ + mpi/man/man3/MPI_Win_fence.3 \ + mpi/man/man3/MPI_Win_free.3 \ + mpi/man/man3/MPI_Win_free_keyval.3 \ + mpi/man/man3/MPI_Win_get_attr.3 \ + mpi/man/man3/MPI_Win_get_errhandler.3 \ + mpi/man/man3/MPI_Win_get_group.3 \ + mpi/man/man3/MPI_Win_get_name.3 \ + mpi/man/man3/MPI_Win_lock.3 \ + mpi/man/man3/MPI_Win_post.3 \ + mpi/man/man3/MPI_Win_set_attr.3 \ + mpi/man/man3/MPI_Win_set_errhandler.3 \ + mpi/man/man3/MPI_Win_set_name.3 \ + mpi/man/man3/MPI_Win_start.3 \ + mpi/man/man3/MPI_Win_test.3 \ + mpi/man/man3/MPI_Win_unlock.3 \ + mpi/man/man3/MPI_Win_wait.3 \ + mpi/man/man3/MPI_Wtick.3 \ + mpi/man/man3/MPI_Wtime.3 \ + mpi/man/man3/OpenMPI.3 + +man_MANS += $(mpi_api_man_pages) +EXTRA_DIST += $(mpi_api_man_pages)