2003-11-22 19:36:58 +03:00
|
|
|
#
|
2005-11-05 22:57:48 +03:00
|
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
|
|
# University Research and Technology
|
|
|
|
# Corporation. All rights reserved.
|
|
|
|
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
|
|
# of Tennessee Research Foundation. All rights
|
|
|
|
# reserved.
|
2009-04-24 20:39:33 +04:00
|
|
|
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
|
2004-11-28 23:09:25 +03:00
|
|
|
# University of Stuttgart. All rights reserved.
|
2005-03-24 15:43:37 +03:00
|
|
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
# All rights reserved.
|
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
2008-07-26 01:18:05 +04:00
|
|
|
# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
|
2008-08-02 01:14:37 +04:00
|
|
|
# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
2004-11-22 04:38:40 +03:00
|
|
|
# $COPYRIGHT$
|
|
|
|
#
|
|
|
|
# Additional copyrights may follow
|
|
|
|
#
|
2004-01-07 17:57:04 +03:00
|
|
|
# $HEADER$
|
2003-11-22 19:36:58 +03:00
|
|
|
#
|
|
|
|
|
2009-04-24 20:39:33 +04:00
|
|
|
EXTRA_DIST = CMakeLists.txt
|
2005-12-08 11:28:19 +03:00
|
|
|
|
2004-08-07 08:20:28 +04:00
|
|
|
# We always have C bindings, but do we have profiling?
|
|
|
|
|
|
|
|
if WANT_MPI_BINDINGS_LAYER
|
|
|
|
c_mpi_lib = mpi/c/libmpi_c_mpi.la
|
|
|
|
else
|
|
|
|
c_mpi_lib =
|
|
|
|
endif
|
|
|
|
if WANT_PMPI_BINDINGS_LAYER
|
|
|
|
c_pmpi_lib = mpi/c/profile/libmpi_c_pmpi.la
|
|
|
|
else
|
|
|
|
c_pmpi_lib =
|
|
|
|
endif
|
|
|
|
|
|
|
|
# See if we have f77 MPI bindings
|
|
|
|
|
|
|
|
if OMPI_WANT_F77_BINDINGS
|
2008-07-27 00:38:30 +04:00
|
|
|
f77_base_lib = mpi/f77/base/libmpi_f77_base.la
|
2004-08-07 08:20:28 +04:00
|
|
|
else
|
2004-08-14 01:00:42 +04:00
|
|
|
f77_base_lib =
|
2004-08-07 08:20:28 +04:00
|
|
|
endif
|
|
|
|
|
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
2008-07-26 01:18:05 +04:00
|
|
|
# Note that the ordering of "." in SUBDIRS is important: the C++, F77,
|
|
|
|
# and F90 bindings are all in standalone .la files that depend on
|
2008-07-27 00:38:30 +04:00
|
|
|
# libmpi.la. So we must fully build libmpi.la first.
|
|
|
|
|
|
|
|
# NOTE: A handful of files in mpi/f77/base must be included in
|
|
|
|
# libmpi.la. But we wanted to keep all the Fortran sources together
|
|
|
|
# in the same tree, so we moved those sources to a separate
|
|
|
|
# subdirectory with its own Makefile.include that is included in this
|
|
|
|
# Makefile.am (NOTE: it did *not* work to put all the files -- base
|
|
|
|
# and non-base -- into mpi/f77 and have both a regular Makefile.am for
|
|
|
|
# building the f77 bindings library and a separate Makefile.include
|
|
|
|
# that was included in this top-level Makefile.am; problems occurred
|
|
|
|
# with "make distclean" and files in the ompi/mpi/f77/.deps directory
|
|
|
|
# -- it's not clear whether this is an AM bug or whether this behavior
|
|
|
|
# is simply not supported). This ompi/mpi/f77/base/Makefile.include
|
|
|
|
# file makes a convenience LT library that is then sucked into
|
|
|
|
# libmpi.la (the ompi/mpi/f77/base sources must be compiled with
|
|
|
|
# special CPPFLAGS; we can't just add the raw sources to
|
|
|
|
# libmpi_la_SOURCES, unfortunately).
|
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
2008-07-26 01:18:05 +04:00
|
|
|
|
|
|
|
# The end of the result is that libmpi.la -- including a few sources
|
2008-07-27 00:38:30 +04:00
|
|
|
# from mpi/f77/base -- 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.
|
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
2008-07-26 01:18:05 +04:00
|
|
|
|
2004-03-17 22:06:06 +03:00
|
|
|
SUBDIRS = \
|
2006-02-12 04:33:29 +03:00
|
|
|
include \
|
2006-03-15 06:35:30 +03:00
|
|
|
datatype \
|
2008-08-02 01:14:37 +04:00
|
|
|
debuggers \
|
2006-02-12 04:33:29 +03:00
|
|
|
etc \
|
2008-08-02 01:14:37 +04:00
|
|
|
mpi/c \
|
2005-10-17 04:21:10 +04:00
|
|
|
$(MCA_ompi_FRAMEWORKS_SUBDIRS) \
|
|
|
|
$(MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) \
|
2008-08-02 01:14:37 +04:00
|
|
|
. \
|
|
|
|
mpi/cxx \
|
|
|
|
mpi/f77 \
|
|
|
|
mpi/f90 \
|
2008-01-28 11:39:48 +03:00
|
|
|
$(MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS) \
|
|
|
|
$(OMPI_CONTRIB_SUBDIRS)
|
2005-10-17 04:21:10 +04:00
|
|
|
|
|
|
|
DIST_SUBDIRS = \
|
2006-02-12 10:06:38 +03:00
|
|
|
include \
|
2006-03-15 18:03:15 +03:00
|
|
|
datatype \
|
2005-10-17 04:21:10 +04:00
|
|
|
debuggers \
|
2006-02-12 10:06:38 +03:00
|
|
|
etc \
|
2008-08-02 01:14:37 +04:00
|
|
|
mpi/c \
|
|
|
|
mpi/cxx \
|
|
|
|
mpi/f77 \
|
|
|
|
mpi/f90 \
|
2005-10-17 04:21:10 +04:00
|
|
|
$(MCA_ompi_FRAMEWORKS_SUBDIRS) \
|
2008-01-28 11:39:48 +03:00
|
|
|
$(MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS) \
|
|
|
|
$(OMPI_CONTRIB_DIST_SUBDIRS)
|
2004-03-17 22:06:06 +03:00
|
|
|
|
2004-08-23 14:15:01 +04:00
|
|
|
# Build the main MPI library
|
|
|
|
|
2004-03-17 22:06:06 +03:00
|
|
|
lib_LTLIBRARIES = libmpi.la
|
2004-01-19 20:50:34 +03:00
|
|
|
libmpi_la_SOURCES =
|
2004-03-17 22:06:06 +03:00
|
|
|
libmpi_la_LIBADD = \
|
2006-03-15 06:35:30 +03:00
|
|
|
datatype/libdatatype.la \
|
2008-08-02 01:14:37 +04:00
|
|
|
debuggers/libdebuggers.la \
|
|
|
|
mpi/c/libmpi_c.la \
|
2005-10-17 04:21:10 +04:00
|
|
|
$(c_mpi_lib) \
|
|
|
|
$(c_pmpi_lib) \
|
2008-08-02 01:14:37 +04:00
|
|
|
$(f77_base_lib) \
|
2005-10-17 04:21:10 +04:00
|
|
|
$(MCA_ompi_FRAMEWORK_LIBS) \
|
2007-08-17 07:52:53 +04:00
|
|
|
$(OMPI_LIBMPI_EXTRA_LIBS) \
|
2006-12-05 21:27:24 +03:00
|
|
|
$(top_ompi_builddir)/orte/libopen-rte.la
|
2007-08-17 07:52:53 +04:00
|
|
|
libmpi_la_DEPENDENCIES = \
|
|
|
|
datatype/libdatatype.la \
|
2008-08-02 01:14:37 +04:00
|
|
|
debuggers/libdebuggers.la \
|
|
|
|
mpi/c/libmpi_c.la \
|
2007-08-17 07:52:53 +04:00
|
|
|
$(c_mpi_lib) \
|
|
|
|
$(c_pmpi_lib) \
|
2008-08-02 01:14:37 +04:00
|
|
|
$(f77_base_lib) \
|
2007-08-17 07:52:53 +04:00
|
|
|
$(MCA_ompi_FRAMEWORK_LIBS) \
|
|
|
|
$(top_ompi_builddir)/orte/libopen-rte.la
|
|
|
|
libmpi_la_LDFLAGS = \
|
|
|
|
$(OMPI_LIBMPI_EXTRA_LDFLAGS)
|
2005-08-14 00:19:24 +04:00
|
|
|
|
2005-10-17 04:21:10 +04:00
|
|
|
# included subdirectory Makefile.am's and appended-to variables
|
|
|
|
headers =
|
|
|
|
noinst_LTLIBRARIES =
|
2006-03-24 02:41:49 +03:00
|
|
|
include_HEADERS =
|
2005-10-17 04:21:10 +04:00
|
|
|
nobase_ompi_HEADERS =
|
|
|
|
dist_pkgdata_DATA =
|
|
|
|
libmpi_la_SOURCES += $(headers)
|
2008-08-07 23:20:40 +04:00
|
|
|
nodist_man_MANS =
|
2005-08-14 00:19:24 +04:00
|
|
|
|
2005-10-17 04:21:10 +04:00
|
|
|
# Conditionally install the header files
|
|
|
|
|
|
|
|
if WANT_INSTALL_HEADERS
|
|
|
|
ompidir = $(includedir)/openmpi/ompi
|
|
|
|
nobase_ompi_HEADERS += $(headers)
|
|
|
|
else
|
|
|
|
ompidir = $(includedir)
|
|
|
|
endif
|
|
|
|
|
|
|
|
include class/Makefile.am
|
|
|
|
include attribute/Makefile.am
|
|
|
|
include communicator/Makefile.am
|
|
|
|
include errhandler/Makefile.am
|
|
|
|
include file/Makefile.am
|
|
|
|
include group/Makefile.am
|
|
|
|
include info/Makefile.am
|
|
|
|
include op/Makefile.am
|
2006-03-23 08:00:55 +03:00
|
|
|
include peruse/Makefile.am
|
2005-10-17 04:21:10 +04:00
|
|
|
include proc/Makefile.am
|
|
|
|
include request/Makefile.am
|
|
|
|
include runtime/Makefile.am
|
|
|
|
include win/Makefile.am
|
|
|
|
include tools/Makefile.am
|
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
2008-07-26 01:18:05 +04:00
|
|
|
include mpi/Makefile.am
|
2008-07-27 00:38:30 +04:00
|
|
|
include mpi/f77/base/Makefile.include
|
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
2008-07-26 01:18:05 +04:00
|
|
|
include mpi/man/man3/Makefile.extra
|
2008-08-02 01:14:37 +04:00
|
|
|
|
2008-08-07 23:20:40 +04:00
|
|
|
# Ensure that the man page directory exists before we try to make man
|
|
|
|
# page files (because ompi/mpi/man/man3 has no config.status-generated
|
|
|
|
# Makefile)
|
|
|
|
dir_stamp = $(top_builddir)/$(subdir)/mpi/man/man3/.dir-stamp
|
|
|
|
|
|
|
|
# Also ensure that the man pages are rebuilt if the opal_config.h file
|
|
|
|
# changes (e.g., configure was run again, meaning that the release
|
|
|
|
# date or version may have changed)
|
|
|
|
$(nodist_man_MANS): $(dir_stamp) $(top_builddir)/opal/include/opal_config.h
|
|
|
|
|
|
|
|
$(dir_stamp):
|
|
|
|
$(mkdir_p) `dirname $@`
|
|
|
|
touch "$@"
|
|
|
|
|
|
|
|
# Remove the generated man pages
|
|
|
|
distclean-local:
|
|
|
|
rm -f $(nodist_man_MANS) $(dir_stamp)
|