f779b1ded9
additional functionality. Rationale (refs trac:3422): * Normal MPI applications only ever use the MPI API. Hence, -lmpi is sufficient (they'll never directly call ORTE or OPAL functions). This is arguably the most common case. * That being said, we do have some test programs (e.g., those in orte/test/mpi) that call MPI functions but also call ORTE/OPAL functions. I've also written the occasional MPI test program that calls opal_output, for example (there even might be a few tests in the IBM test suite that directly call ORTE/OPAL functions). * Even though this is not a common case, these applications should also compile/link with mpicc. * So we should add a --openmpi:linkall option that will also link in whatever is necessary to call ORTE/OPAL functions * Yes, we could hard-code "-lopen-rte -lopen-pal" in Makefiles, but we do reserve the right to change those library names and/or add others someday, so it's better to abstract out the names and let the wrapper supply whatever is necessary. * ORTE programs, however, are different. They almost always call OPAL functions (e.g., if they want to send a message, they must use the OPAL DSS). As such, it seems like the ORTE programs should always link in OPAL. Therefore: * Add undocumented --openmpi:linkall flag to the wrapper compilers. See the comment in opal_wrapper.c for an explanation of what it does. This flag is only intended for Open MPI developers -- not end users. That's why it's undocumented. * Update orte/test/mpi/Makefile.am to add --openmpi:linkall * Make ortecc/ortec++'s wrapper data text files always explicitly link in libopen-pal This commit was SVN r27670. The following SVN revision numbers were found above: r27668 --> open-mpi/ompi@cf845897aa The following Trac tickets were found above: Ticket 3422 --> https://svn.open-mpi.org/trac/ompi/ticket/3422
89 строки
2.5 KiB
Makefile
89 строки
2.5 KiB
Makefile
#
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
# University Research and Technology
|
|
# Corporation. All rights reserved.
|
|
# Copyright (c) 2004-2009 The University of Tennessee and The University
|
|
# of Tennessee Research Foundation. All rights
|
|
# reserved.
|
|
# Copyright (c) 2004-2009 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) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
EXTRA_DIST = CMakeLists.txt
|
|
|
|
SUBDIRS = \
|
|
include \
|
|
$(LIBLTDL_SUBDIR) \
|
|
asm \
|
|
datatype \
|
|
etc \
|
|
util \
|
|
mca/base \
|
|
$(MCA_opal_FRAMEWORKS_SUBDIRS) \
|
|
$(MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) \
|
|
. \
|
|
$(MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS)
|
|
|
|
# libltdl is included by variable because if --disable-dlopen was
|
|
# used, there will be no generated Makefile in that directory (and
|
|
# therefore make distclean will fail).
|
|
DIST_SUBDIRS = \
|
|
include \
|
|
$(LIBLTDL_SUBDIR) \
|
|
asm \
|
|
datatype \
|
|
etc \
|
|
util \
|
|
mca/base \
|
|
$(MCA_opal_FRAMEWORKS_SUBDIRS) \
|
|
$(MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS)
|
|
|
|
# Build the main OPAL library
|
|
|
|
lib_LTLIBRARIES = libopen-pal.la
|
|
libopen_pal_la_SOURCES =
|
|
libopen_pal_la_LIBADD = \
|
|
$(LIBLTDL) \
|
|
asm/libasm.la \
|
|
datatype/libdatatype.la \
|
|
mca/base/libmca_base.la \
|
|
util/libopalutil.la \
|
|
$(MCA_opal_FRAMEWORK_LIBS)
|
|
libopen_pal_la_DEPENDENCIES = $(libopen_pal_la_LIBADD)
|
|
libopen_pal_la_LDFLAGS = -version-info $(libopen_pal_so_version)
|
|
|
|
# included subdirectory Makefile.am's and appended-to variables
|
|
headers =
|
|
noinst_LTLIBRARIES =
|
|
dist_pkgdata_DATA =
|
|
libopen_pal_la_SOURCES += $(headers)
|
|
|
|
# Conditionally install the header files
|
|
|
|
if WANT_INSTALL_HEADERS
|
|
opaldir = $(includedir)/openmpi/$(subdir)
|
|
nobase_opal_HEADERS = $(headers)
|
|
|
|
# This is somewhat of a hack -- libltdl is installed by libtoolize,
|
|
# and us installing the header here is slightly less kludgey than
|
|
# hacking their Makefile.am.
|
|
nobase_opal_HEADERS += libltdl/ltdl.h
|
|
endif
|
|
|
|
include class/Makefile.am
|
|
include memoryhooks/Makefile.am
|
|
include runtime/Makefile.am
|
|
include threads/Makefile.am
|
|
include mca/Makefile.am
|
|
include win32/Makefile.am
|
|
include tools/Makefile.am
|
|
include dss/Makefile.am
|