1
1

dist: Add infrastructre for prjects to not build

Two related changes to allow projects to not build based on
configure test results, as opposed to only reacting to
user configure options today.  Use case is disabling a project
like oshmem because no communication channels can be built.

First, Move PROJECT_* AM_CONDITIONALs from the top of configure to
the bottom, so that we can change the results during configure.
Second, add a DIST_SUBDIRS to Makefile.am (and populate it in
opal_mca) so that "make dist" will work even when a project is
disabled.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
This commit is contained in:
Brian Barrett 2018-05-17 17:11:12 +00:00
parent 70b154f7ff
commit 22bdf85299
3 changed files with 17 additions and 4 deletions

View File

@ -12,7 +12,7 @@
# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2012-2015 Los Alamos National Security, Inc. All rights reserved.
# Copyright (c) 2014 Intel, Inc. All rights reserved.
# Copyright (c) 2017 Amazon.com, Inc. or its affiliates.
# Copyright (c) 2017-2018 Amazon.com, Inc. or its affiliates.
# All Rights reserved.
# $COPYRIGHT$
#
@ -22,6 +22,7 @@
#
SUBDIRS = config contrib $(MCA_PROJECT_SUBDIRS) test
DIST_SUBDIRS = config contrib $(MCA_PROJECT_DIST_SUBDIRS) test
EXTRA_DIST = README INSTALL VERSION Doxyfile LICENSE autogen.pl README.JAVA.txt AUTHORS
include examples/Makefile.include

View File

@ -12,6 +12,8 @@ dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2010-2016 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
dnl Copyright (c) 2018 Amazon.com, Inc. or its affiliates.
dnl All Rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
@ -225,16 +227,19 @@ AC_DEFUN([OPAL_MCA],[
# now configure all the projects, frameworks, and components. Most
# of the hard stuff is in here
MCA_PROJECT_SUBDIRS=
MCA_PROJECT_DIST_SUBDIRS=
m4_foreach(mca_project, [mca_project_list],
[# BWB: Until projects have separate configure scripts
# and can skip running all of ORTE, just avoid recursing
# into orte sub directory if orte disabled
if (test "mca_project" = "ompi" && test "$enable_mpi" != "no") || test "mca_project" = "opal" || test "mca_project" = "orte" || test "mca_project" = "oshmem"; then
MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS mca_project"
MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS mca_project"
fi
MCA_CONFIGURE_PROJECT(mca_project)])
AC_SUBST(MCA_PROJECT_SUBDIRS)
AC_SUBST(MCA_PROJECT_DIST_SUBDIRS)
m4_undefine([mca_component_configure_active])
])

View File

@ -23,6 +23,8 @@
# Copyright (c) 2014-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
# Copyright (c) 2018 Amazon.com, Inc. or its affiliates.
# All Rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -266,15 +268,12 @@ m4_ifdef([project_oshmem], [OSHMEM_CONFIGURE_OPTIONS])
# Set up project specific AM_CONDITIONALs
AS_IF([test "$enable_ompi" != "no"], [project_ompi_amc=true], [project_ompi_amc=false])
m4_ifndef([project_ompi], [project_ompi_amc=false])
AM_CONDITIONAL([PROJECT_OMPI], [test "$project_ompi_amc" = "true"])
AS_IF([test "$enable_orte" != "no"], [project_orte_amc=true], [project_orte_amc=false])
m4_ifndef([project_orte], [project_orte_amc=false])
AM_CONDITIONAL([PROJECT_ORTE], [test "$project_orte_amc" = "true"])
AS_IF([test "$enable_oshmem" != "no"], [project_oshmem_amc=true], [project_oshmem_amc=false])
m4_ifndef([project_oshmem], [project_oshmem_amc=false])
AM_CONDITIONAL([PROJECT_OSHMEM], [test "$project_oshmem_amc" = "true"])
if test "$enable_binaries" = "no" && test "$enable_dist" = "yes"; then
AC_MSG_WARN([--disable-binaries is incompatible with --enable dist])
@ -1344,6 +1343,14 @@ m4_ifdef([project_ompi],
# Party on
############################################################################
# set projects good/no good AM_CONDITIONALS. This is at the end so
# that the OSHMEM/OMPI projects can be disabled, if needed, based on
# MCA tests. If a project is to be disabled, also remove it from
# MCA_PROJECT_SUBDIRS to actually disable building.
AM_CONDITIONAL([PROJECT_OMPI], [test "$project_ompi_amc" = "true"])
AM_CONDITIONAL([PROJECT_ORTE], [test "$project_orte_amc" = "true"])
AM_CONDITIONAL([PROJECT_OSHMEM], [test "$project_oshmem_amc" = "true"])
AC_MSG_CHECKING([if libtool needs -no-undefined flag to build shared libraries])
case "`uname`" in
CYGWIN*|MINGW*|AIX*)