makefile.am
来自「MPI stands for the Message Passing Inter」· AM 代码 · 共 112 行
AM
112 行
## 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$# # Additional copyrights may follow# # $HEADER$## A word of explanation...## This library is linked against various MCA components because all# shared-memory based components (e.g., mpool, ptl, etc.) need to# share some common code and data. There's two cases:## 1. libmca_common_portals.la is a shared library. By linking that shared# library to all components that need it, the OS linker will# automatically load it into the process as necessary, and there will# only be one copy (i.e., all the components will share *one* copy of# the code and data).# 2. libmca_common_portals.la is a static library. In this case, it# will be rolled up into the top-level libmpi.la. It will also be# rolled into each component, but then the component will also be# rolled up into the upper-level libmpi.la. Libtool sorts this all# out and it all works out in the end.## Note that building this common component statically and linking# against other dynamic components is *not* supported!AM_CPPFLAGS = $(common_portals_CPPFLAGS)# Header filesheaders = \ common_portals.h# Source filessources = \ common_portals.cEXTRA_DIST = common_portals_crayxt3.c common_portals_utcp.c# As per above, we'll either have an installable or noinst result.# The installable one should follow the same MCA prefix naming rules# (i.e., libmca_<type>_<name>.la). The noinst one can be named# whatever it wants, although libmca_<type>_<name>_noinst.la is# recommended.# To simplify components that link to this library, we will *always*# have an output libtool library named libmca_<type>_<name>.la -- even# for case 2) described above (i.e., so there's no conditional logic# necessary in component Makefile.am's that link to this library).# Hence, if we're creating a noinst version of this library (i.e.,# case 2), we sym link it to the libmca_<type>_<name>.la name# (libtool will do the Right Things under the covers). See the# all-local and clean-local rules, below, for how this is effected.lib_LTLIBRARIES =noinst_LTLIBRARIES =comp_inst = libmca_common_portals.lacomp_noinst = libmca_common_portals_noinst.laif OMPI_BUILD_common_portals_DSOlib_LTLIBRARIES += $(comp_inst)elsenoinst_LTLIBRARIES += $(comp_noinst)endiflibmca_common_portals_la_SOURCES = $(headers) $(sources)libmca_common_portals_la_LDFLAGS = $(common_portals_LDFLAGS)libmca_common_portals_la_LIBADD = $(common_portals_LIBS)libmca_common_portals_noinst_la_SOURCES = $(libmca_common_portals_la_SOURCES)libmca_common_portals_noinst_la_LDFLAGS = $(common_portals_LDFLAGS)libmca_common_portals_noinst_la_LIBADD = $(common_portals_LIBS)# Conditionally install the header filesif WANT_INSTALL_HEADERSompidir = $(includedir)/openmpi/ompi/mca/common/portalsompi_HEADERS = $(headers)elseompidir = $(includedir)endif# These two rules will sym link the "noinst" libtool library filename# to the installable libtool library filename in the case where we are# compiling this component statically (case 2), described above).all-local: if test -z "$(lib_LTLIBRARIES)"; then \ rm -f "$(comp_inst)"; \ $(LN_S) "$(comp_noinst)" "$(comp_inst)"; \ ficlean-local: if test -z "$(lib_LTLIBRARIES)"; then \ rm -f "$(comp_inst)"; \ fi
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?