diff --git a/auxdir/Makefile.am b/auxdir/Makefile.am index dfb4f40af1a58a7ed3b9827bdee86839602f4b15..cb9e63f9fc95bb8832802d49bbba67e2a322a297 100644 --- a/auxdir/Makefile.am +++ b/auxdir/Makefile.am @@ -35,4 +35,5 @@ EXTRA_DIST = \ x_ac_readline.m4 \ x_ac_setproctitle.m4 \ x_ac_sgi_job.m4 \ - x_ac_slurm_ssl.m4 + x_ac_slurm_ssl.m4 \ + x_ac_systemd.m4 diff --git a/auxdir/x_ac_systemd.m4 b/auxdir/x_ac_systemd.m4 new file mode 100644 index 0000000000000000000000000000000000000000..88c28699d2cb836902f3844df2275f8583e7c37b --- /dev/null +++ b/auxdir/x_ac_systemd.m4 @@ -0,0 +1,60 @@ +##***************************************************************************** +# AUTHOR: +# Written by Alejandro Sanchez - alex@schedmd.com +# +# SYNOPSIS: +# X_AC_SYSTEMD +# +# DESCRIPTION: +# Determine systemd presence +# Determine systemd version +# Determine systemd system unit dir +##***************************************************************************** + +AC_DEFUN([X_AC_SYSTEMD], +[ + + AC_CACHE_CHECK([for systemd presence], + [_cv_systemd_presence], + [PKG_CHECK_EXISTS([systemd], + [_cv_systemd_presence=yes], + [_cv_systemd_presence=no])]) + + if [ test "x$_cv_systemd_presence" != "xno" ]; then + AC_DEFINE([HAVE_SYSTEMD], + [1], + [Define systemd presence]) + + AC_CACHE_CHECK([for systemd version], + [_cv_systemd_version], + [AS_IF([_cv_systemd_version=$($PKG_CONFIG --modversion systemd 2>/dev/null)], + [], + [_cv_systemd_version=no])]) + + AS_IF([test "x$_cv_systemd_version" != "xno"], + [AC_DEFINE([SYSTEMD_VERSION], + [$_cv_systemd_version], + [Define systemd version identified])] + + [AM_CONDITIONAL([HAVE_SYSTEMD_TASKSMAX], + [ test -n "$_cv_systemd_version" && test "$_cv_systemd_version" -ge 227 ])] + + [AM_COND_IF([HAVE_SYSTEMD_TASKSMAX], + [AC_SUBST([SYSTEMD_TASKSMAX_OPTION], ["TasksMax=infinity"])], + [AC_SUBST([SYSTEMD_TASKSMAX_OPTION], [""])])]) + + # In the future we might want to enable the configure option + # --with-systemdsystemunitdir=DIR, so that users can specify + # at configure time the directory to install the .service files. + # https://www.freedesktop.org/software/systemd/man/daemon.html#Installing%20Systemd%20Service%20Files + + #AC_CACHE_CHECK([for systemd system unit dir], + # [_cv_systemd_systemunitdir], + # [PKG_CHECK_VAR([SYSTEMD_SYSTEM_UNIT_DIR], + # [systemd], + # [systemdsystemunitdir], + # [_cv_systemd_systemunitdir=$SYSTEMD_SYSTEM_UNIT_DIR], + # [_cv_systemd_systemunitdir=no])]) + fi + +]) diff --git a/configure.ac b/configure.ac index 6fa484d1186a648124a716dd3491a0e8d5f254c0..44699ae09528f47ad6cf229ed840727aa30e99fd 100644 --- a/configure.ac +++ b/configure.ac @@ -352,6 +352,11 @@ X_AC_SLURM_WITH_SSL AM_CONDITIONAL(HAVE_OPENSSL, test "x$ac_have_openssl" = "xyes") AC_SUBST(HAVE_OPENSSL) +dnl +dnl Check for systemd presence, version and system unit dir +dnl +X_AC_SYSTEMD + dnl dnl Check for compilation of SLURM auth modules: dnl