aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/newt
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/installer/newt')
0 files changed, 0 insertions, 0 deletions
'>61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
dnl -*- Autoconf -*- fragment for the C++ daemon.

AC_MSG_CHECKING([whether to build daemon])
AC_MSG_RESULT([$guix_build_daemon])

dnl C++ environment.  This macro must be used unconditionnaly.
AC_PROG_CXX

if test "x$guix_build_daemon" = "xyes"; then

  AC_PROG_RANLIB
  AC_CONFIG_HEADER([nix/config.h])

  dnl Decompressors, for use by the substituter.
  AC_PATH_PROG([GZIP], [gzip])
  AC_PATH_PROG([BZIP2], [bzip2])
  AC_PATH_PROG([XZ], [xz])
  AC_SUBST([GZIP])
  AC_SUBST([BZIP2])
  AC_SUBST([XZ])

  dnl Use 64-bit file system calls so that we can support files > 2 GiB.
  AC_SYS_LARGEFILE

  dnl Look for libbz2, a required dependency.
  AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [true],
    [AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2.  See http://www.bzip.org/.])])
  AC_CHECK_HEADERS([bzlib.h], [true],
    [AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2.  See http://www.bzip.org/.])])

  dnl Look for SQLite, a required dependency.
  PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])

  AC_DEFINE([NIX_VERSION], ["0.0.0"], [Fake Nix version number.])
  AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
    [Guix host system type--i.e., platform and OS kernel tuple.])

  case "$LIBGCRYPT_PREFIX" in
    no)
      LIBGCRYPT_CFLAGS=""
      ;;
    *)
      LIBGCRYPT_CFLAGS="-I$LIBGCRYPT_PREFIX/include"
      ;;
  esac

  case "$LIBGCRYPT_LIBDIR" in
    no)
      LIBGCRYPT_LIBS="-lgcrypt"
      ;;
   *)
      LIBGCRYPT_LIBS="-L$LIBGCRYPT_LIBDIR -lgcrypt"
      ;;
  esac

  AC_SUBST([LIBGCRYPT_CFLAGS])
  AC_SUBST([LIBGCRYPT_LIBS])

  save_CFLAGS="$CFLAGS"
  save_LDFLAGS="$LDFLAGS"
  CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
  LDFLAGS="$LDFLAGS $LIBGCRYPT_LDFLAGS"

  have_gcrypt=yes
  AC_CHECK_LIB([gcrypt], [gcry_md_open], [:], [have_gcrypt=no])
  AC_CHECK_HEADER([gcrypt.h], [:], [have_gcrypt=no])
  if test "x$have_gcrypt" != "xyes"; then
    AC_MSG_ERROR([GNU libgcrypt not found; please install it.])
  fi

  CFLAGS="$save_CFLAGS"
  LDFLAGS="$save_LDFLAGS"

  dnl Chroot support.
  AC_CHECK_FUNCS([chroot unshare])
  AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h tr1/unordered_set])

  if test "x$ac_cv_func_chroot" != "xyes"; then
    AC_MSG_ERROR(['chroot' function missing, bailing out])
  fi

  dnl lutimes and lchown: used when canonicalizing store items.
  dnl posix_fallocate: used when extracting archives.
  dnl vfork: to speed up spawning of helper programs.
  dnl   `--> now disabled because of unpredictable behavior:
  dnl        see <http://lists.gnu.org/archive/html/guix-devel/2014-05/msg00036.html>
  dnl        and Nix commit f794465c (Nov. 2012).
  dnl sched_setaffinity: to improve RPC locality.
  dnl statvfs: to detect disk-full conditions.
  dnl strsignal: for error reporting.
  AC_CHECK_FUNCS([lutimes lchown posix_fallocate sched_setaffinity \
     statvfs nanosleep strsignal])

  dnl Check whether the store optimiser can optimise symlinks.
  AC_MSG_CHECKING([whether it is possible to create a link to a symlink])
  ln -s bla tmp_link
  if ln tmp_link tmp_link2 2> /dev/null; then
      AC_MSG_RESULT(yes)
      AC_DEFINE(CAN_LINK_SYMLINK, 1, [Whether link() works on symlinks.])
  else
      AC_MSG_RESULT(no)
  fi
  rm -f tmp_link tmp_link2

  dnl Check for <locale>.
  AC_LANG_PUSH(C++)
  AC_CHECK_HEADERS([locale])
  AC_LANG_POP(C++)


  dnl Check whether we have the `personality' syscall, which allows us
  dnl to do i686-linux builds on x86_64-linux machines.
  AC_CHECK_HEADERS([sys/personality.h])

  dnl Check for <linux/fs.h> (for immutable file support).
  AC_CHECK_HEADERS([linux/fs.h])

  dnl Check whether the 'offload' build hook can be built (uses
  dnl 'restore-file-set', which requires unbuffered custom binary input
  dnl ports from Guile >= 2.0.10.)
  GUIX_CHECK_UNBUFFERED_CBIP
  guix_build_daemon_offload="$ac_cv_guix_cbips_support_setvbuf"

  if test "x$guix_build_daemon_offload" = "xyes"; then
    AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1],
      [Define if the daemon's 'offload' build hook is being built.])
  fi

  dnl Temporary directory used to store the daemon's data.
  GUIX_TEST_ROOT_DIRECTORY
  GUIX_TEST_ROOT="$ac_cv_guix_test_root"
  AC_SUBST([GUIX_TEST_ROOT])

  AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
    [chmod +x nix/scripts/list-runtime-roots])
  AC_CONFIG_FILES([nix/scripts/substitute-binary],
    [chmod +x nix/scripts/substitute-binary])
  AC_CONFIG_FILES([nix/scripts/guix-authenticate],
    [chmod +x nix/scripts/guix-authenticate])
  AC_CONFIG_FILES([nix/scripts/offload],
    [chmod +x nix/scripts/offload])
fi

AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD],			\
  [test "x$guix_build_daemon" = "xyes"			\
   && test "x$guix_build_daemon_offload" = "xyes"])