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 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], [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]) ])