13
13
# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
14
14
# Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights
15
15
# reserved.
16
- # Copyright (c) 2014 Intel, Inc. All rights reserved.
16
+ # Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
17
17
# Copyright (c) 2014-2016 Research Organization for Information Science
18
18
# and Technology (RIST). All rights reserved.
19
+ # Copyright (c) 2016 IBM Corporation. All rights reserved.
19
20
# $COPYRIGHT$
20
21
#
21
22
# Additional copyrights may follow
@@ -226,11 +227,7 @@ AC_DEFUN([OPAL_CHECK_PMI],[
226
227
227
228
AC_DEFUN ( [ OPAL_CHECK_PMIX] ,[
228
229
229
- opal_pmix_ext_CPPFLAGS=
230
- opal_pmix_ext_LDFLAGS=
231
- opal_pmix_ext_LIBS=
232
-
233
- OPAL_VAR_SCOPE_PUSH([ pmix_ext_install_dir] )
230
+ OPAL_VAR_SCOPE_PUSH([ opal_external_pmix_save_CPPFLAGS opal_external_pmix_save_LDFLAGS opal_external_pmix_save_LIBS] )
234
231
235
232
AC_ARG_WITH ( [ pmix] ,
236
233
[ AC_HELP_STRING ([ --with-pmix(=DIR)] ,
@@ -245,30 +242,93 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
245
242
AC_MSG_CHECKING ( [ if user requested external PMIx support($with_pmix)] )
246
243
AS_IF ( [ test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "internal"] ,
247
244
[ AC_MSG_RESULT ( [ no] )
248
- opal_external_pmix_happy="no"] ,
245
+ opal_external_pmix_happy=no] ,
246
+
249
247
[ AC_MSG_RESULT ( [ yes] )
250
248
# check for external pmix lib */
251
249
AS_IF ( [ test "$with_pmix" = "external"] ,
252
250
[ pmix_ext_install_dir=/usr] ,
253
251
[ pmix_ext_install_dir=$with_pmix] )
254
- AC_MSG_CHECKING ( [ if external component can be used] )
255
- OPAL_CHECK_PACKAGE([ opal_pmix_ext] ,
256
- [ pmix.h] ,
257
- [ pmix] ,
258
- [ PMIx_Init] ,
259
- [ ] ,
260
- [ $pmix_ext_install_dir] ,
261
- [ ] ,
262
- [ AC_MSG_RESULT ( [ PMIx external support will be built] )
263
- opal_external_pmix_happy=yes] ,
264
- [ AC_MSG_RESULT ( [ no] )
265
- AC_MSG_WARN ( [ External PMIx support was requested but failed] )
266
- AC_MSG_WARN ( [ as explained above.] )
267
- AC_MSG_ERROR ( [ Cannot continue] ) ] )
268
- ] )
269
- AC_SUBST ( opal_pmix_ext_CPPFLAGS )
270
- AC_SUBST ( opal_pmix_ext_LDFLAGS )
271
- AC_SUBST ( opal_pmix_ext_LIBS )
252
+
253
+ # Make sure we have the headers and libs in the correct location
254
+ OPAL_CHECK_WITHDIR([ external-pmix] , [ $pmix_ext_install_dir/include] , [ pmix.h] )
255
+ OPAL_CHECK_WITHDIR([ external-libpmix] , [ $pmix_ext_install_dir/lib] , [ libpmix.*] )
256
+
257
+ # check the version
258
+ opal_external_pmix_save_CPPFLAGS=$CPPFLAGS
259
+ opal_external_pmix_save_LDFLAGS=$LDFLAGS
260
+ opal_external_pmix_save_LIBS=$LIBS
261
+
262
+ # if the pmix_version.h file does not exist, then
263
+ # this must be from a pre-1.1.5 version
264
+ AC_MSG_CHECKING ( [ PMIx version] )
265
+ CPPFLAGS="-I$pmix_ext_install_dir/include $CPPFLAGS"
266
+ AS_IF ( [ test "x`ls $pmix_ext_install_dir/include/pmix_version.h 2> /dev/null`" = "x"] ,
267
+ [ AC_MSG_RESULT ( [ version file not found - assuming v1.1.4] )
268
+ opal_external_pmix_version_found=1
269
+ opal_external_pmix_version=114] ,
270
+ [ AC_MSG_RESULT ( [ version file found] )
271
+ opal_external_pmix_version_found=0] )
272
+
273
+ # if it does exist, then we need to parse it to find
274
+ # the actual release series
275
+ AS_IF ( [ test "$opal_external_pmix_version_found" = "0"] ,
276
+ [ AC_MSG_CHECKING ( [ version 3x] )
277
+ AC_PREPROC_IFELSE ( [ AC_LANG_PROGRAM ( [
278
+ #include <pmix_version.h>
279
+ #if (PMIX_VERSION_MAJOR != 3L)
280
+ #error "not version 3"
281
+ #endif
282
+ ] , [ ] ) ] ,
283
+ [ AC_MSG_RESULT ( [ found] )
284
+ opal_external_pmix_version=3X
285
+ opal_external_pmix_version_found=1
286
+ AC_MSG_WARN ( [ This version of Open MPI does not support PMIx version 2.x and later] )
287
+ AC_MSG_ERROR ( [ Cannot continue] ) ] ,
288
+ [ AC_MSG_RESULT ( [ not found] ) ] ) ] )
289
+
290
+ AS_IF ( [ test "$opal_external_pmix_version_found" = "0"] ,
291
+ [ AC_MSG_CHECKING ( [ version 2x] )
292
+ AC_PREPROC_IFELSE ( [ AC_LANG_PROGRAM ( [
293
+ #include <pmix_version.h>
294
+ #if (PMIX_VERSION_MAJOR != 2L)
295
+ #error "not version 2"
296
+ #endif
297
+ ] , [ ] ) ] ,
298
+ [ AC_MSG_RESULT ( [ found] )
299
+ opal_external_pmix_version=2X
300
+ opal_external_pmix_version_found=1
301
+ AC_MSG_WARN ( [ This version of Open MPI does not support PMIx version 2.x and later] )
302
+ AC_MSG_ERROR ( [ Cannot continue] ) ] ,
303
+ [ AC_MSG_RESULT ( [ not found] ) ] ) ] )
304
+
305
+ AS_IF ( [ test "$opal_external_pmix_version_found" = "0"] ,
306
+ [ AC_MSG_CHECKING ( [ version 1x] )
307
+ AC_PREPROC_IFELSE ( [ AC_LANG_PROGRAM ( [
308
+ #include <pmix_version.h>
309
+ #if (PMIX_VERSION_MAJOR != 1L)
310
+ #error "not version 1"
311
+ #endif
312
+ ] , [ ] ) ] ,
313
+ [ AC_MSG_RESULT ( [ found] )
314
+ opal_external_pmix_version=1X
315
+ opal_external_pmix_version_found=1] ,
316
+ [ AC_MSG_RESULT ( [ not found] ) ] ) ] )
317
+
318
+ AS_IF ( [ test "x$opal_external_pmix_version" = "x"] ,
319
+ [ AC_MSG_WARN ( [ External PMIx support requested, but version] )
320
+ AC_MSG_WARN ( [ information of the external lib could not] )
321
+ AC_MSG_WARN ( [ be detected] )
322
+ AC_MSG_ERROR ( [ cannot continue] ) ] )
323
+
324
+ CPPFLAGS=$opal_external_pmix_save_CPPFLAGS
325
+ LDFLAGS=$opal_external_pmix_save_LDFLAGS
326
+ LIBS=$opal_external_pmix_save_LIBS
327
+
328
+ opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include"
329
+ opal_external_pmix_LDFLAGS=-L$pmix_ext_install_dir/lib
330
+ opal_external_pmix_LIBS=-lpmix
331
+ opal_external_pmix_happy=yes] )
272
332
273
333
OPAL_VAR_SCOPE_POP
274
334
] )
0 commit comments