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
@@ -155,16 +156,16 @@ AC_DEFUN([OPAL_CHECK_PMI],[
155
156
default_pmi_loc=yes] )
156
157
AS_IF ( [ test ! -z "$with_pmi_libdir"] ,
157
158
[ check_pmi_lib_dir=$with_pmi_libdir
158
- default_pmi_libloc=no] ,
159
+ default_pmi_libloc=no] ,
159
160
[ check_pmi_lib_dir=$check_pmi_install_dir
160
- AS_IF ( [ test "$default_pmi_loc" = "no"] ,
161
- [ default_pmi_libloc=no] ,
162
- [ default_pmi_libloc=yes] ) ] )
161
+ AS_IF ( [ test "$default_pmi_loc" = "no"] ,
162
+ [ default_pmi_libloc=no] ,
163
+ [ default_pmi_libloc=yes] ) ] )
163
164
164
165
# check for pmi-1 lib */
165
166
slurm_pmi_found=no
166
167
OPAL_CHECK_PMI_LIB([ $check_pmi_install_dir] ,
167
- [ $check_pmi_lib_dir] ,
168
+ [ $check_pmi_lib_dir] ,
168
169
[ pmi] , [ PMI_Init] ,
169
170
[ slurm_pmi_found=yes] ,
170
171
[ opal_enable_pmi1=yes
@@ -174,10 +175,10 @@ AC_DEFUN([OPAL_CHECK_PMI],[
174
175
175
176
AS_IF ( [ test "$opal_enable_pmi1" = "yes"] ,
176
177
[ AS_IF ( [ test "$default_pmi_loc" = "no" || test "$slurm_pmi_found" = "yes"] ,
177
- [ opal_pmi1_CPPFLAGS="$pmi_CPPFLAGS"
178
+ [ opal_pmi1_CPPFLAGS="$pmi_CPPFLAGS"
178
179
AC_SUBST ( opal_pmi1_CPPFLAGS ) ] )
179
180
AS_IF ( [ test "$default_pmi_libloc" = "no" || test "$slurm_pmi_found" = "yes"] ,
180
- [ opal_pmi1_LDFLAGS="$pmi_LDFLAGS"
181
+ [ opal_pmi1_LDFLAGS="$pmi_LDFLAGS"
181
182
AC_SUBST ( opal_pmi1_LDFLAGS )
182
183
opal_pmi1_rpath="$pmi_rpath"
183
184
AC_SUBST ( opal_pmi1_rpath ) ] ) ] )
@@ -195,25 +196,25 @@ AC_DEFUN([OPAL_CHECK_PMI],[
195
196
196
197
AS_IF ( [ test "$opal_enable_pmi2" = "yes"] ,
197
198
[ AS_IF ( [ test "$default_pmi_loc" = "no" || test "$slurm_pmi_found" = "yes"] ,
198
- [ opal_pmi2_CPPFLAGS="$pmi2_CPPFLAGS"
199
+ [ opal_pmi2_CPPFLAGS="$pmi2_CPPFLAGS"
199
200
AC_SUBST ( opal_pmi2_CPPFLAGS ) ] )
200
201
AS_IF ( [ test "$default_pmi_libloc" = "no" || test "$slurm_pmi_found" = "yes"] ,
201
- [ opal_pmi2_LDFLAGS="$pmi2_LDFLAGS"
202
+ [ opal_pmi2_LDFLAGS="$pmi2_LDFLAGS"
202
203
AC_SUBST ( opal_pmi2_LDFLAGS )
203
204
opal_pmi2_rpath="$pmi2_rpath"
204
205
AC_SUBST ( opal_pmi2_rpath ) ] ) ] )
205
206
206
207
# since support was explicitly requested, then we should error out
207
208
# if we didn't find the required support
208
- AC_MSG_CHECKING ( [ can PMI support be built] )
209
+ AC_MSG_CHECKING ( [ can PMI support be built] )
209
210
AS_IF ( [ test "$opal_enable_pmi1" != "yes" && test "$opal_enable_pmi2" != "yes"] ,
210
211
[ AC_MSG_RESULT ( [ no] )
211
212
AC_MSG_WARN ( [ PMI support requested (via --with-pmi) but neither pmi.h] )
212
- AC_MSG_WARN ( [ nor pmi2.h were found under locations:] )
213
+ AC_MSG_WARN ( [ nor pmi2.h were found under locations:] )
213
214
AC_MSG_WARN ( [ $check_pmi_install_dir] )
214
215
AC_MSG_WARN ( [ $check_pmi_install_dir/slurm] )
215
216
AC_MSG_WARN ( [ Specified path: $with_pmi] )
216
- AC_MSG_WARN ( [ OR neither libpmi nor libpmi2 were found under:] )
217
+ AC_MSG_WARN ( [ OR neither libpmi nor libpmi2 were found under:] )
217
218
AC_MSG_WARN ( [ $check_pmi_lib_dir/lib] )
218
219
AC_MSG_WARN ( [ $check_pmi_lib_dir/lib64] )
219
220
AC_MSG_WARN ( [ Specified path: $with_pmi_libdir] )
@@ -230,7 +231,7 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
230
231
opal_pmix_ext_LDFLAGS=
231
232
opal_pmix_ext_LIBS=
232
233
233
- OPAL_VAR_SCOPE_PUSH([ pmix_ext_install_dir] )
234
+ OPAL_VAR_SCOPE_PUSH([ pmix_ext_install_dir opal_pmix_CPPFLAGS_save opal_pmix_LDFLAGS_save opal_pmix_LIBS_save opal_pmix_LD_LIBRARY_PATH_save ] )
234
235
235
236
AC_ARG_WITH ( [ pmix] ,
236
237
[ AC_HELP_STRING ([ --with-pmix(=DIR)] ,
@@ -251,21 +252,76 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
251
252
AS_IF ( [ test "$with_pmix" = "external"] ,
252
253
[ pmix_ext_install_dir=/usr] ,
253
254
[ pmix_ext_install_dir=$with_pmix] )
255
+ # Make sure we have the headers and libs in the correct location
256
+ OPAL_CHECK_WITHDIR([ external-pmix] , [ $pmix_ext_install_dir/include] , [ pmix.h] )
257
+ OPAL_CHECK_WITHDIR([ external-libpmix] , [ $pmix_ext_install_dir/lib] , [ libpmix.*] )
254
258
AC_MSG_CHECKING ( [ if external component can be used] )
255
259
OPAL_CHECK_PACKAGE([ opal_pmix_ext] ,
256
260
[ pmix.h] ,
257
261
[ pmix] ,
258
262
[ PMIx_Init] ,
259
263
[ ] ,
260
264
[ $pmix_ext_install_dir] ,
261
- [ ] ,
265
+ [ $pmix_ext_install_dir/lib ] ,
262
266
[ AC_MSG_RESULT ( [ PMIx external support will be built] )
263
267
opal_external_pmix_happy=yes] ,
264
- [ AC_MSG_RESULT ( [ no] )
268
+ [ opal_external_pmix_happy="no"
269
+ AC_MSG_RESULT ( [ no] )
265
270
AC_MSG_WARN ( [ External PMIx support was requested but failed] )
266
271
AC_MSG_WARN ( [ as explained above.] )
267
272
AC_MSG_ERROR ( [ Cannot continue] ) ] )
268
- ] )
273
+ # Check the version
274
+ opal_external_pmix_version="unknown"
275
+ opal_pmix_CPPFLAGS_save=$CPPFLAGS
276
+ opal_pmix_LDFLAGS_save=$LDFLAGS
277
+ opal_pmix_LIBS_save=$LIBS
278
+ LD_LIBRARY_PATH_orig=$opal_pmix_LD_LIBRARY_PATH_save
279
+
280
+ CPPFLAGS=$opal_pmix_ext_CPPFLAGS
281
+ LDFLAGS=$opal_pmix_ext_LDFLAGS
282
+ LIBS=$opal_pmix_ext_LIBS
283
+ LD_LIBRARY_PATH=$pmix_ext_install_dir/lib
284
+
285
+ AC_MSG_CHECKING ( [ PMIx library version] )
286
+ AC_TRY_RUN ( [
287
+ #include <stdio.h>
288
+ #include <stdlib.h>
289
+ #include <pmix.h>
290
+ #include <pmix/pmix_common.h>
291
+
292
+ int main(int argc, char **argv)
293
+ {
294
+ const char * version = NULL;
295
+ FILE *f = NULL;
296
+
297
+ f = fopen("conftestval", "w");
298
+ if( !f ) exit(1);
299
+ version = PMIx_Get_version();
300
+ fprintf(f, "%s", version);
301
+ fclose(f);
302
+
303
+ return 0;
304
+ }
305
+ ] , [
306
+ eval opal_external_pmix_version=`cat conftestval`
307
+ AC_MSG_RESULT ( [ $opal_external_pmix_version] )
308
+ ] , [
309
+ LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
310
+ opal_external_pmix_happy="no"
311
+ AC_MSG_ERROR ( [ External PMIx support requested but could not build/run a test program. Aborting] )
312
+ ] , [
313
+ LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
314
+ opal_external_pmix_happy="no"
315
+ AC_MSG_ERROR ( [ External PMIx disabled for cross compile. Aborting] )
316
+ ] )
317
+ CPPFLAGS=$opal_pmix_CPPFLAGS_save
318
+ LDFLAGS=$opal_pmix_LDFLAGS_save
319
+ LIBS=$opal_pmix_LIBS_save
320
+ LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
321
+
322
+ opal_external_pmix_happy="yes"
323
+ ] )
324
+
269
325
AC_SUBST ( opal_pmix_ext_CPPFLAGS )
270
326
AC_SUBST ( opal_pmix_ext_LDFLAGS )
271
327
AC_SUBST ( opal_pmix_ext_LIBS )
0 commit comments