~ruther/guix-local

12e5b26643e2269e8f30d8399886d4302c3c09d1 — Ludovic Courtès 10 years ago c2b8467
build: Do not build (guix build syscalls) if 'mount' is missing from libc.

This disables compilation of this module on GNU/Hurd.
Reported by Manolis Ragkousis <manolis837@gmail.com>.

* m4/guix.m4 (GUIX_CHECK_LIBC_MOUNT): New variable.
* configure.ac: Use it.  Define 'BUILD_SYSCALLS_MODULE' conditional.
* Makefile.am (MODULES, EXTRA_DIST): Make 'guix/build/syscalls.scm'
  conditional on BUILD_SYSCALLS_MODULE.
3 files changed, 32 insertions(+), 1 deletions(-)

M Makefile.am
M configure.ac
M m4/guix.m4
M Makefile.am => Makefile.am +14 -1
@@ 88,7 88,6 @@ MODULES =					\
  guix/build/rpath.scm				\
  guix/build/cvs.scm				\
  guix/build/svn.scm				\
  guix/build/syscalls.scm			\
  guix/build/gremlin.scm			\
  guix/build/emacs-utils.scm			\
  guix/build/graft.scm				\


@@ 124,6 123,13 @@ MODULES =					\
  guix.scm					\
  $(GNU_SYSTEM_MODULES)

if BUILD_SYSCALLS_MODULE

MODULES +=					\
  guix/build/syscalls.scm

endif

if BUILD_DAEMON_OFFLOAD

MODULES +=					\


@@ 298,6 304,13 @@ EXTRA_DIST +=					\

endif !BUILD_DAEMON_OFFLOAD

if !BUILD_SYSCALLS_MODULE

EXTRA_DIST +=					\
  guix/build/syscalls.scm

endif !BUILD_SYSCALLS_MODULE


CLEANFILES =					\
  $(GOBJECTS)					\

M configure.ac => configure.ac +5 -0
@@ 85,6 85,11 @@ dnl Check whether (srfi srfi-37) works, and provide our own if it doesn't.
GUIX_CHECK_SRFI_37
AM_CONDITIONAL([INSTALL_SRFI_37], [test "x$ac_cv_guix_srfi_37_broken" = xyes])

dnl Check whether (guix build syscalls) can be built.
GUIX_CHECK_LIBC_MOUNT
AM_CONDITIONAL([BUILD_SYSCALLS_MODULE],
  [test "x$guix_cv_libc_has_mount" = "xyes"])

AC_ARG_WITH([nix-prefix],
  [AS_HELP_STRING([--with-nix-prefix=DIR],
    [search for Nix in DIR (for testing purposes and '--disable-daemon' builds)])],

M m4/guix.m4 => m4/guix.m4 +13 -0
@@ 257,3 257,16 @@ AC_DEFUN([GUIX_ASSERT_CXX11], [
    AC_MSG_ERROR([C++ compiler '$CXX' does not support the C++11 standard])
  fi
])

dnl GUIX_CHECK_LIBC_MOUNT
dnl
dnl Check whether libc provides 'mount'.  On GNU/Hurd it doesn't (yet).
AC_DEFUN([GUIX_CHECK_LIBC_MOUNT], [
  AC_CACHE_CHECK([whether libc provides 'mount'], [guix_cv_libc_has_mount],
    [GUILE_CHECK([retval], [(dynamic-func \"mount\" (dynamic-link))])
     if test "$retval" = 0; then
       guix_cv_libc_has_mount="yes"
     else
       guix_cv_libc_has_mount="no"
     fi])
])