[5] | 1 | # $Id$ |
---|
[1] | 2 | # |
---|
| 3 | # SYNOPSIS |
---|
| 4 | # |
---|
| 5 | # AX_SLURM([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) |
---|
| 6 | # |
---|
| 7 | # DESCRIPTION |
---|
| 8 | # |
---|
| 9 | # Check for SLURM libraries and headers. |
---|
| 10 | # |
---|
| 11 | # This macro caslurms:: |
---|
| 12 | # |
---|
| 13 | # AC_SUBST(SLURM_INCLUDES) |
---|
| 14 | # AC_SUBST(SLURM_LDFLAGS) |
---|
| 15 | # AC_SUBST(SLURM_LIBS) |
---|
| 16 | # |
---|
| 17 | # LAST MODIFICATION |
---|
| 18 | # |
---|
| 19 | # 2010-09-09 |
---|
| 20 | # |
---|
| 21 | # LICENSE |
---|
| 22 | # |
---|
| 23 | # Written by: |
---|
| 24 | # MichaÅ MatÅoka <michal.matloka@student.put.poznan.pl> |
---|
| 25 | # Based on macro for LSF written by |
---|
| 26 | # Mariusz MamoÅski <mamonski@man.poznan.pl> |
---|
| 27 | # Placed under Public Domain. |
---|
| 28 | # |
---|
| 29 | |
---|
| 30 | AC_DEFUN([AX_SLURM],[ |
---|
| 31 | AC_ARG_WITH([slurm-inc], [AC_HELP_STRING([--with-slurm-inc=<include-dir>], |
---|
| 32 | [Path to headers directory (containing slurm/slurm.h)])]) |
---|
| 33 | AC_ARG_WITH([slurm-lib], [AC_HELP_STRING([--with-slurm-lib=<lib-dir>], |
---|
| 34 | [Path to directory with SLURM libraries (containing libslurm.a)])]) |
---|
| 35 | |
---|
| 36 | AC_SUBST(SLURM_INCLUDES) |
---|
| 37 | AC_SUBST(SLURM_LDFLAGS) |
---|
| 38 | AC_SUBST(SLURM_LIBS) |
---|
| 39 | |
---|
| 40 | AC_MSG_NOTICE([checking for SLURM]) |
---|
| 41 | |
---|
| 42 | AC_MSG_CHECKING([for SLURM compile flags]) |
---|
| 43 | ax_slurm_msg="" |
---|
| 44 | if test x$with_slurm_inc != x; then |
---|
| 45 | SLURM_INCLUDES="-I${with_slurm_inc}" |
---|
| 46 | else |
---|
| 47 | SRUN_PATH=`which srun` |
---|
| 48 | if test x"$SRUN_PATH" != x; then |
---|
| 49 | SRUN_DIR=`dirname $SRUN_PATH` |
---|
| 50 | SLURM_HOME=`dirname $SRUN_DIR` |
---|
| 51 | SLURM_INCLUDES="-I$SLURM_HOME/include" |
---|
| 52 | else |
---|
| 53 | ax_slurm_msg="no srun in PATH" |
---|
| 54 | fi |
---|
| 55 | fi |
---|
| 56 | |
---|
| 57 | AC_MSG_RESULT([$SLURM_INCLUDES$ax_slurm_msg]) |
---|
| 58 | |
---|
| 59 | AC_MSG_CHECKING([for SLURM library dir]) |
---|
| 60 | ax_slurm_msg="" |
---|
| 61 | if test x$with_slurm_lib == x; then |
---|
| 62 | |
---|
| 63 | SRUN_PATH=`which srun` |
---|
| 64 | |
---|
| 65 | if test x"$SRUN_PATH" != x; then |
---|
| 66 | SRUN_DIR=`dirname $SRUN_PATH` |
---|
| 67 | SLURM_HOME=`dirname $SRUN_DIR` |
---|
| 68 | with_slurm_lib=$SLURM_HOME/lib |
---|
| 69 | else |
---|
| 70 | ax_slurm_msg="no srun in PATH" |
---|
| 71 | fi |
---|
| 72 | fi |
---|
| 73 | AC_MSG_RESULT([$with_slurm_lib$ax_slurm_msg]) |
---|
| 74 | |
---|
| 75 | |
---|
| 76 | SLURM_LIBS="-lslurm " |
---|
| 77 | SLURM_LDFLAGS="-L${with_slurm_lib}" |
---|
| 78 | |
---|
| 79 | |
---|
| 80 | CPPFLAGS_save="$CPPFLAGS" |
---|
| 81 | LDFLAGS_save="$LDFLAGS" |
---|
| 82 | LIBS_save="$LIBS" |
---|
| 83 | CPPFLAGS="$CPPFLAGS $SLURM_INCLUDES" |
---|
| 84 | LDFLAGS="$LDFLAGS $SLURM_LDFLAGS" |
---|
| 85 | LIBS="$LIBS $SLURM_LIBS" |
---|
| 86 | |
---|
| 87 | ax_slurm_ok="no" |
---|
| 88 | |
---|
| 89 | AC_MSG_CHECKING([for usable SLURM libraries/headers]) |
---|
| 90 | AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include "slurm/slurm.h" ]], |
---|
| 91 | [[ job_desc_msg_t job_req; /*at least check for declared structs */ |
---|
| 92 | return 0; |
---|
| 93 | ]])], |
---|
| 94 | [ ax_slurm_ok="yes"], |
---|
| 95 | [ echo "*** The SLURM test program failed to link or run. See the file config.log" |
---|
| 96 | echo "*** for the exact error that occured."], |
---|
| 97 | [ |
---|
| 98 | ax_slurm_ok=yes |
---|
| 99 | echo $ac_n "cross compiling; assumed OK... $ac_c" |
---|
| 100 | ]) |
---|
| 101 | |
---|
| 102 | CPPFLAGS="$CPPFLAGS_save" |
---|
| 103 | LDFLAGS="$LDFLAGS_save" |
---|
| 104 | LIBS="$LIBS_save" |
---|
| 105 | AC_MSG_RESULT([$ax_slurm_ok]) |
---|
| 106 | |
---|
| 107 | if test x"$ax_slurm_ok" = xyes; then |
---|
| 108 | ifelse([$1], , :, [$1]) |
---|
| 109 | else |
---|
| 110 | ifelse([$2], , :, [$2]) |
---|
| 111 | fi |
---|
| 112 | ]) |
---|