1
1
openmpi/ompi/mpi/cxx/Makefile.am
Jeff Squyres 9f4d4c4312 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-25 21:18:05 +00:00

84 строки
2.2 KiB
Makefile

# -*- makefile -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Need the first so that we can get the path names correct inside the
# MPI C++ library. The second is necessary so that mpi.h doesn't
# include mpicxx.h through the incorrect pathname in any of the C++
# bindings .c files. Just use the define for this purpose from user
# code.
AM_CPPFLAGS = -DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1 -DOMPI_SKIP_MPICXX=1
if WANT_MPI_CXX_BINDINGS
mpi_lib = libmpi_cxx.la
lib_LTLIBRARIES = libmpi_cxx.la
libmpi_cxx_la_SOURCES = \
mpicxx.cc \
intercepts.cc \
comm.cc \
datatype.cc \
win.cc
if OMPI_PROVIDE_MPI_FILE_INTERFACE
libmpi_cxx_la_SOURCES += \
file.cc
endif
libmpi_cxx_la_LIBADD = $(top_builddir)/ompi/libmpi.la
headers = \
mpicxx.h \
constants.h \
file.h \
functions.h \
datatype.h \
exception.h \
op.h \
status.h \
request.h \
group.h \
comm.h \
errhandler.h \
intracomm.h \
info.h \
win.h \
topology.h \
intercomm.h \
datatype_inln.h \
file_inln.h \
functions_inln.h \
request_inln.h \
comm_inln.h \
intracomm_inln.h \
info_inln.h \
win_inln.h \
topology_inln.h \
intercomm_inln.h \
group_inln.h \
op_inln.h \
errhandler_inln.h \
status_inln.h
ompidir = $(includedir)/openmpi/ompi/mpi/cxx
ompi_HEADERS = \
$(headers)
endif