diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-08-26 14:07:31 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-08-27 00:49:23 +0200 |
commit | 12e5b26643e2269e8f30d8399886d4302c3c09d1 (patch) | |
tree | cd2b0cdb72957146a411c490bf430eb963118535 | |
parent | c2b8467645bb2c2e17eb9c580f39e345c4dc2f4a (diff) | |
download | guix-12e5b26643e2269e8f30d8399886d4302c3c09d1.tar guix-12e5b26643e2269e8f30d8399886d4302c3c09d1.tar.gz |
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.
-rw-r--r-- | Makefile.am | 15 | ||||
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | m4/guix.m4 | 13 |
3 files changed, 32 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index ada4cbea0b..76d505abf5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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) \ diff --git a/configure.ac b/configure.ac index 2c8b9f076c..247a9d5068 100644 --- a/configure.ac +++ b/configure.ac @@ -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)])], diff --git a/m4/guix.m4 b/m4/guix.m4 index fa5a4023ba..2113383770 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -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]) +]) |