From 9334abc47432d4149b06472421ebdcc55f6e97b7 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Fri, 24 Oct 2014 16:27:54 -0700 Subject: [PATCH] Makefile: fix problems with static linking Avoid a problem with double-derefence of a variable macro name (i.e., a macro with part of its name from an AC_SUBST, such as ```$(foo@BAR@baz)```. In what might be a bug in Automake 1.14.1, if you do a pattern like this: ```makefile lib_LTLIBRARIES = lib@A_PREFIX@a_lib.la noinst_LTLIBRARIES = lib@A_PREFIX@a_noinst.la lib@A_PREFIX@a_lib_la_SOURCES = a.c lib@A_PREFIX@a_noinst_la_SOURCES = $(lib@A_PREFIX@a_lib_la_SOURCES) ``` Then in the resulting Makefile, the value of ```$(lib@A_PREFIX@a_lib_la_OBJECTS)``` will be *blank* (when it really should be ```a.o```). To workaround this potential bug, I've simply avoided doing double-derefences like this, and effectively set the second ```_SOURCES``` line equal to ```a.c``` (just like the first ```_SOURCES``` line). Fixes #250. --- opal/mca/common/cuda/Makefile.am | 3 +-- opal/mca/common/ofacm/Makefile.am | 3 +-- opal/mca/common/sm/Makefile.am | 2 +- opal/mca/common/verbs/Makefile.am | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/opal/mca/common/cuda/Makefile.am b/opal/mca/common/cuda/Makefile.am index f11061cbae..77ed48d1da 100644 --- a/opal/mca/common/cuda/Makefile.am +++ b/opal/mca/common/cuda/Makefile.am @@ -85,8 +85,7 @@ lib@OPAL_LIB_PREFIX@mca_common_cuda_la_LDFLAGS = \ -version-info $(libmca_common_cuda_so_version) lib@OPAL_LIB_PREFIX@mca_common_cuda_la_LIBADD = $(common_cuda_LIBS) -lib@OPAL_LIB_PREFIX@mca_common_cuda_noinst_la_SOURCES = \ - $(lib@OPAL_LIB_PREFIX@mca_common_cuda_la_SOURCES) +lib@OPAL_LIB_PREFIX@mca_common_cuda_noinst_la_SOURCES = $(headers) $(sources) lib@OPAL_LIB_PREFIX@mca_common_cuda_noinst_la_LDFLAGS = $(common_cuda_LDFLAGS) lib@OPAL_LIB_PREFIX@mca_common_cuda_noinst_la_LIBADD = $(common_cuda_LIBS) diff --git a/opal/mca/common/ofacm/Makefile.am b/opal/mca/common/ofacm/Makefile.am index 3f2eab4572..b592f6badf 100644 --- a/opal/mca/common/ofacm/Makefile.am +++ b/opal/mca/common/ofacm/Makefile.am @@ -52,8 +52,7 @@ lib@OPAL_LIB_PREFIX@mca_common_ofacm_la_LDFLAGS = \ -version-info $(libmca_common_ofacm_so_version) \ $(common_ofacm_LDFLAGS) lib@OPAL_LIB_PREFIX@mca_common_ofacm_la_LIBADD = $(common_ofacm_LIBS) -lib@OPAL_LIB_PREFIX@mca_common_ofacm_noinst_la_SOURCES = \ - $(lib@OPAL_LIB_PREFIX@mca_common_ofacm_la_SOURCES) +lib@OPAL_LIB_PREFIX@mca_common_ofacm_noinst_la_SOURCES = $(headers) $(sources) # Conditionally install the header files diff --git a/opal/mca/common/sm/Makefile.am b/opal/mca/common/sm/Makefile.am index 419f13f695..e2b116c0f8 100644 --- a/opal/mca/common/sm/Makefile.am +++ b/opal/mca/common/sm/Makefile.am @@ -86,7 +86,7 @@ lib@OPAL_LIB_PREFIX@mca_common_sm_la_SOURCES = \ lib@OPAL_LIB_PREFIX@mca_common_sm_la_LDFLAGS = \ -version-info $(libmca_common_sm_so_version) lib@OPAL_LIB_PREFIX@mca_common_sm_noinst_la_SOURCES = \ - $(lib@OPAL_LIB_PREFIX@mca_common_sm_la_SOURCES) + $(headers) $(sources) # Conditionally install the header files diff --git a/opal/mca/common/verbs/Makefile.am b/opal/mca/common/verbs/Makefile.am index af63aeaff4..e410343c9e 100644 --- a/opal/mca/common/verbs/Makefile.am +++ b/opal/mca/common/verbs/Makefile.am @@ -52,8 +52,7 @@ lib@OPAL_LIB_PREFIX@mca_common_verbs_la_LDFLAGS = \ -version-info $(libmca_common_verbs_so_version) \ $(common_verbs_LDFLAGS) lib@OPAL_LIB_PREFIX@mca_common_verbs_la_LIBADD = $(common_verbs_LIBS) -lib@OPAL_LIB_PREFIX@mca_common_verbs_noinst_la_SOURCES = \ - $(lib@OPAL_LIB_PREFIX@mca_common_verbs_la_SOURCES) +lib@OPAL_LIB_PREFIX@mca_common_verbs_noinst_la_SOURCES = $(headers) $(sources) # Conditionally install the header files