Skip to content

Commit 7b39e96

Browse files
jsquyresggouaillardet
authored andcommitted
WIP
Signed-off-by: Jeff Squyres <[email protected]>
1 parent 22a13e3 commit 7b39e96

File tree

2 files changed

+138
-123
lines changed

2 files changed

+138
-123
lines changed

opal/mca/event/configure.m4

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,52 @@ dnl
88
dnl $HEADER$
99
dnl
1010

11-
# There will only be one component used in this framework, and it will
12-
# be selected at configure time by priority. Components must set
13-
# their priorities in their configure.m4 files. They must also set
14-
# the shell variable $opal_event_base_include to a header file name
15-
# (relative to opal/mca/event) that will be included in
16-
# opal/mca/event/event.h.
11+
dnl There will only be one component used in this framework, and it will
12+
dnl be selected at configure time by priority. Components must set
13+
dnl their priorities in their configure.m4 files. They must also set
14+
dnl the shell variable $opal_event_base_include to a header file name
15+
dnl (relative to opal/mca/event) that will be included in
16+
dnl opal/mca/event/event.h.
1717

1818
dnl We only want one winning component (vs. STOP_AT_FIRST_PRIORITY,
1919
dnl which will allow all components of the same priority who succeed to
2020
dnl win)
21+
2122
m4_define(MCA_opal_event_CONFIGURE_MODE, STOP_AT_FIRST)
2223

24+
dnl
25+
dnl Setup --with-libevent and --with-libevent-libdir
26+
dnl
27+
AC_DEFUN([MCA_opal_event_SETUP],[
28+
AC_ARG_WITH([libevent],
29+
[AC_HELP_STRING([--with-libevent=DIR],
30+
[Search for libevent headers and libraries in DIR. Should only be used if an external copy of libevent is being used.])])
31+
32+
# Bozo check
33+
AS_IF([test "$with_libevent" = "no"],
34+
[AC_MSG_WARN([It is not possible to configure Open MPI --without-libevent])
35+
AC_MSG_ERROR([Cannot continue])])
36+
AS_IF([test "$with_libevent" = "yes"],
37+
[with_libevent=])
38+
39+
AC_ARG_WITH([libevent-libdir],
40+
[AC_HELP_STRING([--with-libevent-libdir=DIR],
41+
[Search for libevent libraries in DIR. Should only be used if an external copy of libevent is being used.])])
42+
43+
# Make sure the user didn't specify --with-libevent=internal and
44+
# --with-libevent-libdir=whatever (because you can only specify
45+
# --with-libevent-libdir when external libevent is being used).
46+
AS_IF([test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"],
47+
[AC_MSG_WARN([Both --with-libevent=internal and --with-libevent-libdir=DIR])
48+
AC_MSG_WARN([were specified, which does not make sense.])
49+
AC_MSG_ERROR([Cannot continue])])
50+
])
51+
2352
AC_DEFUN([MCA_opal_event_CONFIG],[
2453
opal_event_base_include=
2554

55+
MCA_opal_event_SETUP
56+
2657
# configure all the components
2758
MCA_CONFIGURE_FRAMEWORK($1, $2, 1)
2859

opal/mca/event/external/configure.m4

Lines changed: 101 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -56,123 +56,107 @@ 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])
60-
61-
AC_ARG_WITH([libevent],
62-
[AC_HELP_STRING([--with-libevent=DIR],
63-
[Search for libevent headers and libraries in DIR. Should only be used if an external copy of libevent is being used.])])
64-
65-
# Bozo check
66-
AS_IF([test "$with_libevent" = "no"],
67-
[AC_MSG_WARN([It is not possible to configure Open MPI --without-libevent])
68-
AC_MSG_ERROR([Cannot continue])])
69-
70-
AC_ARG_WITH([libevent-libdir],
71-
[AC_HELP_STRING([--with-libevent-libdir=DIR],
72-
[Search for libevent libraries in DIR. Should only be used if an external copy of libevent is being used.])])
73-
74-
# Make sure the user didn't specify --with-libevent=internal and
75-
# --with-libevent-libdir=whatever (because you can only specify
76-
# --with-libevent-libdir when external libevent is being used).
77-
AS_IF([test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"],
78-
[AC_MSG_WARN([Both --with-libevent=internal and --with-libevent-libdir=DIR])
79-
AC_MSG_WARN([were specified, which does not make sense.])
80-
AC_MSG_ERROR([Cannot continue])])
81-
82-
# Do we want this external component? (slightly redundant logic,
83-
# but hopefully slightly more clear...)
84-
opal_event_external_want=no
85-
AS_IF([test "$with_libevent" = "external"], [opal_event_external_want=yes])
86-
AS_IF([test -n "$with_libevent_libdir"], [opal_event_external_want=yes])
87-
AS_IF([test -n "$with_libevent" && test "$with_libevent" != "no" && test "$with_libevent" != "internal"], [opal_event_external_want=yes])
88-
89-
# If we want external support, try it
90-
AS_IF([test "$opal_event_external_want" = "yes"],
91-
[ # Error out if the specified dir does not exist
92-
OPAL_CHECK_WITHDIR([libevent-libdir], [$with_libevent_libdir],
93-
[libevent.*])
94-
95-
AC_MSG_CHECKING([for external libevent in])
96-
AS_IF([test "$with_libevent" != "external" && test "$with_libevent" != "yes"],
97-
[opal_event_dir=$with_libevent
98-
AC_MSG_RESULT([$opal_event_dir])
99-
OPAL_CHECK_WITHDIR([libevent], [$opal_event_dir],
100-
[include/event.h])
101-
AS_IF([test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"],
102-
[AC_MSG_CHECKING([for $with_libevent/lib64])
103-
AS_IF([test -d "$with_libevent/lib64"],
104-
[opal_event_libdir_found=yes
105-
AC_MSG_RESULT([found])],
106-
[opal_event_libdir_found=no
107-
AC_MSG_RESULT([not found])])
108-
AS_IF([test "$opal_event_libdir_found" = "yes"],
109-
[opal_event_libdir="$with_libevent/lib64"],
110-
[AC_MSG_CHECKING([for $with_libevent/lib])
111-
AS_IF([test -d "$with_libevent/lib"],
112-
[AC_MSG_RESULT([found])
113-
opal_event_libdir="$with_libevent/lib"],
114-
[AC_MSG_RESULT([not found])
115-
AC_MSG_WARN([Library directories were not found:])
116-
AC_MSG_WARN([ $with_libevent/lib64])
117-
AC_MSG_WARN([ $with_libevent/lib])
118-
AC_MSG_WARN([Please use --with-libevent-libdir to identify it.])
119-
AC_MSG_ERROR([Cannot continue])])])])],
120-
[AC_MSG_RESULT([(default search paths)])])
121-
AS_IF([test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"],
122-
[opal_event_libdir="$with_libevent_libdir"])
123-
124-
opal_event_external_CPPFLAGS_save=$CPPFLAGS
125-
opal_event_external_CFLAGS_save=$CFLAGS
126-
opal_event_external_LDFLAGS_save=$LDFLAGS
127-
opal_event_external_LIBS_save=$LIBS
128-
129-
OPAL_CHECK_PACKAGE([opal_event_external],
130-
[event.h],
131-
[event],
132-
[event_config_new],
133-
[-levent_pthreads],
134-
[$opal_event_dir],
135-
[$opal_event_libdir],
136-
[opal_event_external_support=yes],
137-
[opal_event_external_support=no])
138-
139-
# Ensure that this libevent has the symbol
140-
# "evthread_set_lock_callbacks", which will only exist if
141-
# libevent was configured with thread support.
142-
LIBS="$opal_event_external_LDFLAGS $LIBS"
143-
AC_CHECK_LIB([event], [evthread_set_lock_callbacks],
144-
[],
145-
[AC_MSG_WARN([External libevent does not have thread support])
146-
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
147-
AC_MSG_WARN([thread support enabled])
148-
AC_MSG_ERROR([Cannot continue])])
149-
150-
AC_CHECK_LIB([event_pthreads], [evthread_use_pthreads],
151-
[],
152-
[AC_MSG_WARN([External libevent does not have thread support])
153-
AC_MSG_WARN([Open MPI requires libevent to be compiled with])
154-
AC_MSG_WARN([thread support enabled])
155-
AC_MSG_ERROR([Cannot continue])])
156-
157-
CPPFLAGS=$opal_event_external_CPPFLAGS_save
158-
CFLAGS=$opal_event_external_CFLAGS_save
159-
LDFLAGS=$opal_event_external_LDFLAGS_save
160-
LIBS=$opal_event_external_LIBS_save
161-
162-
AC_SUBST(opal_event_external_CPPFLAGS)
163-
AC_SUBST(opal_event_external_LDFLAGS)
164-
AC_SUBST(opal_event_external_LIBS)
165-
166-
# These flags need to get passed to the wrapper compilers
167-
# (this is unnecessary for the internal/embedded event)
168-
event_external_WRAPPER_EXTRA_CPPFLAGS=$opal_event_external_CPPFLAGS
169-
170-
# Finally, add some flags to the wrapper compiler if we're
171-
# building with developer headers so that our headers can
172-
# be found.
173-
event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS
174-
event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS
175-
])
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])
60+
61+
# Make some processing below easier ($with_libevent==yes and
62+
# $with_libevent==no has already been filtered out).
63+
AS_IF([test "$with_libevent" = "external"],
64+
[with_libevent=])
65+
66+
# Once we get to this point, $with_libevent is either: blank, a
67+
# directory location, or "internal".
68+
69+
# Check the value of $with_libevent_libdir. This macro safely
70+
# handles "yes", "no", blank, and directory name values.
71+
OPAL_CHECK_WITHDIR([libevent-libdir], [$with_libevent_libdir],
72+
[libevent.*])
73+
74+
# Did the user want us to check for libevent in a specific location?
75+
AC_MSG_CHECKING([for external libevent in])
76+
AS_IF([test "$with_libevent" != "external" && \
77+
test "$with_libevent" != "internal" && \
78+
test "$with_libevent" != "yes" && \
79+
test "$with_libevent" != "no"],
80+
[opal_event_dir=$with_libevent
81+
AC_MSG_RESULT([$opal_event_dir])
82+
OPAL_CHECK_WITHDIR([libevent], [$opal_event_dir],
83+
[include/event.h])
84+
AS_IF([test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"],
85+
[AC_MSG_CHECKING([for $with_libevent/lib64])
86+
AS_IF([test -d "$with_libevent/lib64"],
87+
[opal_event_libdir_found=yes
88+
AC_MSG_RESULT([found])],
89+
[opal_event_libdir_found=no
90+
AC_MSG_RESULT([not found])])
91+
AS_IF([test "$opal_event_libdir_found" = "yes"],
92+
[opal_event_libdir="$with_libevent/lib64"],
93+
[AC_MSG_CHECKING([for $with_libevent/lib])
94+
AS_IF([test -d "$with_libevent/lib"],
95+
[AC_MSG_RESULT([found])
96+
opal_event_libdir="$with_libevent/lib"],
97+
[AC_MSG_RESULT([not found])
98+
AC_MSG_WARN([Library directories were not found:])
99+
AC_MSG_WARN([ $with_libevent/lib64])
100+
AC_MSG_WARN([ $with_libevent/lib])
101+
AC_MSG_WARN([Please use --with-libevent-libdir to identify it.])
102+
AC_MSG_ERROR([Cannot continue])])])])],
103+
[AC_MSG_RESULT([(default search paths)])])
104+
AS_IF([test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"],
105+
[opal_event_libdir="$with_libevent_libdir"])
106+
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
158+
159+
##################################################################
176160

177161
# Done!
178162
AS_IF([test "$opal_event_external_support" = "yes"],

0 commit comments

Comments
 (0)