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.
This commit is contained in:
Ludovic Courtès 2015-08-26 14:07:31 +02:00
parent c2b8467645
commit 12e5b26643
3 changed files with 32 additions and 1 deletions

View file

@ -88,7 +88,6 @@ MODULES = \
guix/build/rpath.scm \ guix/build/rpath.scm \
guix/build/cvs.scm \ guix/build/cvs.scm \
guix/build/svn.scm \ guix/build/svn.scm \
guix/build/syscalls.scm \
guix/build/gremlin.scm \ guix/build/gremlin.scm \
guix/build/emacs-utils.scm \ guix/build/emacs-utils.scm \
guix/build/graft.scm \ guix/build/graft.scm \
@ -124,6 +123,13 @@ MODULES = \
guix.scm \ guix.scm \
$(GNU_SYSTEM_MODULES) $(GNU_SYSTEM_MODULES)
if BUILD_SYSCALLS_MODULE
MODULES += \
guix/build/syscalls.scm
endif
if BUILD_DAEMON_OFFLOAD if BUILD_DAEMON_OFFLOAD
MODULES += \ MODULES += \
@ -298,6 +304,13 @@ EXTRA_DIST += \
endif !BUILD_DAEMON_OFFLOAD endif !BUILD_DAEMON_OFFLOAD
if !BUILD_SYSCALLS_MODULE
EXTRA_DIST += \
guix/build/syscalls.scm
endif !BUILD_SYSCALLS_MODULE
CLEANFILES = \ CLEANFILES = \
$(GOBJECTS) \ $(GOBJECTS) \

View file

@ -85,6 +85,11 @@ dnl Check whether (srfi srfi-37) works, and provide our own if it doesn't.
GUIX_CHECK_SRFI_37 GUIX_CHECK_SRFI_37
AM_CONDITIONAL([INSTALL_SRFI_37], [test "x$ac_cv_guix_srfi_37_broken" = xyes]) 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], AC_ARG_WITH([nix-prefix],
[AS_HELP_STRING([--with-nix-prefix=DIR], [AS_HELP_STRING([--with-nix-prefix=DIR],
[search for Nix in DIR (for testing purposes and '--disable-daemon' builds)])], [search for Nix in DIR (for testing purposes and '--disable-daemon' builds)])],

View file

@ -257,3 +257,16 @@ AC_DEFUN([GUIX_ASSERT_CXX11], [
AC_MSG_ERROR([C++ compiler '$CXX' does not support the C++11 standard]) AC_MSG_ERROR([C++ compiler '$CXX' does not support the C++11 standard])
fi 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])
])