Skip to content

Commit 8d9de51

Browse files
committed
configury: do not abort by default when event/external cannot be built
Signed-off-by: Gilles Gouaillardet <[email protected]>
1 parent 7b39e96 commit 8d9de51

File tree

1 file changed

+62
-55
lines changed

1 file changed

+62
-55
lines changed

opal/mca/event/external/configure.m4

Lines changed: 62 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# Copyright (c) 2009-2013 Cisco Systems, Inc. All rights reserved.
44
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved.
5-
# Copyright (c) 2015-2017 Research Organization for Information Science
5+
# Copyright (c) 2015-2018 Research Organization for Information Science
66
# and Technology (RIST). All rights reserved.
77
#
88
# Copyright (c) 2017 Intel, Inc. All rights reserved.
@@ -56,7 +56,7 @@ AC_DEFUN([MCA_opal_event_external_POST_CONFIG],[
5656
AC_DEFUN([MCA_opal_event_external_CONFIG],[
5757
AC_CONFIG_FILES([opal/mca/event/external/Makefile])
5858

59-
OPAL_VAR_SCOPE_PUSH([opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir])
59+
OPAL_VAR_SCOPE_PUSH([opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_external_support])
6060

6161
# Make some processing below easier ($with_libevent==yes and
6262
# $with_libevent==no has already been filtered out).
@@ -73,7 +73,8 @@ AC_DEFUN([MCA_opal_event_external_CONFIG],[
7373

7474
# Did the user want us to check for libevent in a specific location?
7575
AC_MSG_CHECKING([for external libevent in])
76-
AS_IF([test "$with_libevent" != "external" && \
76+
AS_IF([test -n "$with_libevent" && \
77+
test "$with_libevent" != "external" && \
7778
test "$with_libevent" != "internal" && \
7879
test "$with_libevent" != "yes" && \
7980
test "$with_libevent" != "no"],
@@ -104,70 +105,76 @@ AC_DEFUN([MCA_opal_event_external_CONFIG],[
104105
AS_IF([test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"],
105106
[opal_event_libdir="$with_libevent_libdir"])
106107

107-
opal_event_external_CPPFLAGS_save=$CPPFLAGS
108-
opal_event_external_CFLAGS_save=$CFLAGS
109-
opal_event_external_LDFLAGS_save=$LDFLAGS
110-
opal_event_external_LIBS_save=$LIBS
111-
112-
OPAL_CHECK_PACKAGE([opal_event_external],
113-
[event.h],
114-
[event],
115-
[event_config_new],
116-
[-levent_pthreads],
117-
[$opal_event_dir],
118-
[$opal_event_libdir],
119-
[opal_event_external_support=yes],
120-
[opal_event_external_support=no])
121-
122-
# Ensure that this libevent has the symbol
123-
# "evthread_set_lock_callbacks", which will only exist if
124-
# libevent was configured with thread support.
125-
LIBS="$opal_event_external_LDFLAGS $LIBS"
126-
AC_CHECK_LIB([event], [evthread_set_lock_callbacks],
127-
[],
128-
[AC_MSG_WARN([External libevent does not have thread support])
129-
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
130-
AC_MSG_WARN([thread support enabled])
131-
AC_MSG_ERROR([Cannot continue])])
132-
133-
AC_CHECK_LIB([event_pthreads], [evthread_use_pthreads],
134-
[],
135-
[AC_MSG_WARN([External libevent does not have thread support])
136-
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
137-
AC_MSG_WARN([thread support enabled])
138-
AC_MSG_ERROR([Cannot continue])])
139-
140-
CPPFLAGS=$opal_event_external_CPPFLAGS_save
141-
CFLAGS=$opal_event_external_CFLAGS_save
142-
LDFLAGS=$opal_event_external_LDFLAGS_save
143-
LIBS=$opal_event_external_LIBS_save
144-
145-
AC_SUBST(opal_event_external_CPPFLAGS)
146-
AC_SUBST(opal_event_external_LDFLAGS)
147-
AC_SUBST(opal_event_external_LIBS)
148-
149-
# These flags need to get passed to the wrapper compilers
150-
# (this is unnecessary for the internal/embedded event)
151-
event_external_WRAPPER_EXTRA_CPPFLAGS=$opal_event_external_CPPFLAGS
152-
153-
# Finally, add some flags to the wrapper compiler if we're
154-
# building with developer headers so that our headers can
155-
# be found.
156-
event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS
157-
event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS
108+
AS_IF([test "$with_libevent" != "internal"],
109+
[opal_event_external_CPPFLAGS_save=$CPPFLAGS
110+
opal_event_external_CFLAGS_save=$CFLAGS
111+
opal_event_external_LDFLAGS_save=$LDFLAGS
112+
opal_event_external_LIBS_save=$LIBS
113+
114+
OPAL_CHECK_PACKAGE([opal_event_external],
115+
[event.h],
116+
[event],
117+
[event_config_new],
118+
[-levent_pthreads],
119+
[$opal_event_dir],
120+
[$opal_event_libdir],
121+
[opal_event_external_support=yes],
122+
[opal_event_external_support=no])
123+
124+
AS_IF([test "$opal_event_external_support" = "yes"],
125+
[# Ensure that this libevent has the symbol
126+
# "evthread_set_lock_callbacks", which will only exist if
127+
# libevent was configured with thread support.
128+
LIBS="$opal_event_external_LDFLAGS $LIBS"
129+
AC_CHECK_LIB([event], [evthread_set_lock_callbacks],
130+
[],
131+
[AC_MSG_WARN([External libevent does not have thread support])
132+
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
133+
AC_MSG_WARN([thread support enabled])
134+
opal_event_external_support=no])])
135+
136+
AS_IF([test "$opal_event_external_support" = "yes"],
137+
[AC_CHECK_LIB([event_pthreads], [evthread_use_pthreads],
138+
[],
139+
[AC_MSG_WARN([External libevent does not have thread support])
140+
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
141+
AC_MSG_WARN([thread support enabled])
142+
opal_event_external_support=no])])
143+
144+
CPPFLAGS=$opal_event_external_CPPFLAGS_save
145+
CFLAGS=$opal_event_external_CFLAGS_save
146+
LDFLAGS=$opal_event_external_LDFLAGS_save
147+
LIBS=$opal_event_external_LIBS_save
148+
149+
AC_SUBST(opal_event_external_CPPFLAGS)
150+
AC_SUBST(opal_event_external_LDFLAGS)
151+
AC_SUBST(opal_event_external_LIBS)
152+
153+
# These flags need to get passed to the wrapper compilers
154+
# (this is unnecessary for the internal/embedded event)
155+
event_external_WRAPPER_EXTRA_CPPFLAGS=$opal_event_external_CPPFLAGS
156+
157+
# Finally, add some flags to the wrapper compiler if we're
158+
# building with developer headers so that our headers can
159+
# be found.
160+
event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS
161+
event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS])
158162

159163
##################################################################
160164

161165
# Done!
162166
AS_IF([test "$opal_event_external_support" = "yes"],
163-
[ # If we configured successfully, set
167+
[# If we configured successfully, set
164168
# OPAL_HAVE_WORKING_EVENTOPS to 1 (it's a calculated value
165169
# in the embedded Open MPI libevent, so we can only assume
166170
# what it is in the installed libevent :-\ ).
167171
file=$opal_event_dir/include/libevent/config.h
168172
OPAL_HAVE_WORKING_EVENTOPS=1
169173
$1],
170174
[OPAL_HAVE_WORKING_EVENTOPS=0
175+
AS_IF([test "$with_libevent" != internal && test -n "$with_libevent"],
176+
[AC_MSG_WARN([external libevent requested but cannot be built])
177+
AC_MSG_ERROR([Cannot continue.])])
171178
$2])
172179

173180
OPAL_VAR_SCOPE_POP

0 commit comments

Comments
 (0)