dnl -*- shell-script -*- dnl dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana dnl University Research and Technology dnl Corporation. All rights reserved. dnl Copyright (c) 2004-2005 The University of Tennessee and The University dnl of Tennessee Research Foundation. All rights dnl reserved. dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. dnl Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2015-2017 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights dnl reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow dnl dnl $HEADER$ dnl # ORTE_CHECK_TM_LIBS_FLAGS(prefix, [LIBS or LDFLAGS]) # --------------------------------------------------- AC_DEFUN([ORTE_CHECK_TM_LIBS_FLAGS],[ OPAL_VAR_SCOPE_PUSH([orte_check_tm_flags]) orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` for orte_check_tm_val in $orte_check_tm_flags; do if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then if test "$2" = "LIBS"; then $1_$2="$$1_$2 $orte_check_tm_val" fi else if test "$2" = "LDFLAGS"; then $1_$2="$$1_$2 $orte_check_tm_val" fi fi done OPAL_VAR_SCOPE_POP ]) # ORTE_CHECK_TM(prefix, [action-if-found], [action-if-not-found]) # -------------------------------------------------------- AC_DEFUN([ORTE_CHECK_TM],[ if test -z $orte_check_tm_happy ; then OPAL_VAR_SCOPE_PUSH([orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save]) AC_ARG_WITH([tm], [AC_HELP_STRING([--with-tm(=DIR)], [Build TM (Torque, PBSPro, and compatible) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) OPAL_CHECK_WITHDIR([tm], [$with_tm], [include/tm.h]) orte_check_tm_found=no AS_IF([test "$with_tm" = "no"], [orte_check_tm_happy="no"], [orte_check_tm_happy="yes" AS_IF([test ! -z "$with_tm" && test "$with_tm" != "yes"], [orte_check_tm_dir="$with_tm"], [orte_check_tm_dir=""])]) AS_IF([test "$orte_check_tm_happy" = "yes"], [AC_MSG_CHECKING([for pbs-config]) orte_check_tm_pbs_config="not found" AS_IF([test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"], [orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config"], [AS_IF([pbs-config --prefix >/dev/null 2>&1], [orte_check_tm_pbs_config="pbs-config"])]) AC_MSG_RESULT([$orte_check_tm_pbs_config])]) # If we have pbs-config, get the flags we need from there and then # do simplistic tests looking for the tm headers and symbols AS_IF([test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"], [orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags` OPAL_LOG_MSG([orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS], 1) ORTE_CHECK_TM_LIBS_FLAGS([orte_check_tm], [LDFLAGS]) OPAL_LOG_MSG([orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS], 1) ORTE_CHECK_TM_LIBS_FLAGS([orte_check_tm], [LIBS]) OPAL_LOG_MSG([orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS], 1) # Now that we supposedly have the right flags, try them out. orte_check_tm_CPPFLAGS_save="$CPPFLAGS" orte_check_tm_LDFLAGS_save="$LDFLAGS" orte_check_tm_LIBS_save="$LIBS" CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS" LIBS="$LIBS $orte_check_tm_LIBS" LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS" AC_CHECK_HEADER([tm.h], [AC_CHECK_FUNC([tm_finalize], [orte_check_tm_found="yes"])]) CPPFLAGS="$orte_check_tm_CPPFLAGS_save" LDFLAGS="$orte_check_tm_LDFLAGS_save" LIBS="$orte_check_tm_LIBS_save"]) # If we don't have pbs-config, then we have to look around # manually. # Note that Torque 2.1.0 changed the name of their back-end # library to "libtorque". So we have to check for both libpbs and # libtorque. First, check for libpbs. orte_check_package_$1_save_CPPFLAGS="$CPPFLAGS" orte_check_package_$1_save_LDFLAGS="$LDFLAGS" orte_check_package_$1_save_LIBS="$LIBS" AS_IF([test "$orte_check_tm_found" = "no"], [AS_IF([test "$orte_check_tm_happy" = "yes"], [_OPAL_CHECK_PACKAGE_HEADER([orte_check_tm], [tm.h], [$orte_check_tm_dir], [orte_check_tm_found="yes"], [orte_check_tm_found="no"])]) AS_IF([test "$orte_check_tm_found" = "yes"], [_OPAL_CHECK_PACKAGE_LIB([orte_check_tm], [pbs], [tm_init], [], [$orte_check_tm_dir], [$orte_check_tm_libdir], [orte_check_tm_found="yes"], [_OPAL_CHECK_PACKAGE_LIB([orte_check_tm], [pbs], [tm_init], [-lcrypto], [$orte_check_tm_dir], [$orte_check_tm_libdir], [orte_check_tm_found="yes"], [_OPAL_CHECK_PACKAGE_LIB([orte_check_tm], [torque], [tm_init], [], [$orte_check_tm_dir], [$orte_check_tm_libdir], [orte_check_tm_found="yes"], [orte_check_tm_found="no"])])])])]) CPPFLAGS="$orte_check_package_$1_save_CPPFLAGS" LDFLAGS="$orte_check_package_$1_save_LDFLAGS" LIBS="$orte_check_package_$1_save_LIBS" if test "$orte_check_tm_found" = "no" ; then orte_check_tm_happy=no fi OPAL_SUMMARY_ADD([[Resource Managers]],[[Torque]],[$1],[$orte_check_tm_happy]) OPAL_VAR_SCOPE_POP fi # Did we find the right stuff? AS_IF([test "$orte_check_tm_happy" = "yes"], [$1_LIBS="[$]$1_LIBS $orte_check_tm_LIBS" $1_LDFLAGS="[$]$1_LDFLAGS $orte_check_tm_LDFLAGS" $1_CPPFLAGS="[$]$1_CPPFLAGS $orte_check_tm_CPPFLAGS" # add the TM libraries to static builds as they are required $1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS $1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS $2], [AS_IF([test ! -z "$with_tm" && test "$with_tm" != "no"], [AC_MSG_ERROR([TM support requested but not found. Aborting])]) orte_check_tm_happy="no" $3]) ])