summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--m4/guix.m429
2 files changed, 30 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ff512dd1ff..80d35a4272 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,6 +22,7 @@ guilemoduledir="${datarootdir}/guile/site/2.0"
AC_SUBST([guilemoduledir])
GUIX_SYSTEM_TYPE
+GUIX_ASSERT_SUPPORTED_SYSTEM
AC_ARG_WITH(store-dir,
AC_HELP_STRING([--with-store-dir=PATH],
diff --git a/m4/guix.m4 b/m4/guix.m4
index ed2e720241..477b0e4eb3 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -70,6 +70,35 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
AC_SUBST([guix_system])
])
+dnl GUIX_ASSERT_SUPPORTED_SYSTEM
+dnl
+dnl Assert that this is a system to which the distro is ported.
+AC_DEFUN([GUIX_ASSERT_SUPPORTED_SYSTEM], [
+ AC_REQUIRE([GUIX_SYSTEM_TYPE])
+
+ AC_ARG_WITH([courage], [AC_HELP_STRING([--with-courage],
+ [Assert that even if this platform is unsupported, you will be
+courageous and port the GNU System distribution to it (see
+"GNU Distribution" in the manual.)])],
+ [guix_courageous="$withval"],
+ [guix_courageous="no"])
+
+ # Currently only Linux-based systems are supported, and only on some
+ # platforms.
+ case "$guix_system" in
+ x86_64-linux|i686-linux)
+ ;;
+ *)
+ if test "x$guix_courageous" = "xyes"; then
+ AC_MSG_WARN([building Guix on `$guix_system', which is not supported])
+ else
+ AC_MSG_ERROR([`$guix_system' is not a supported platform.
+See "GNU Distribution" in the manual, or try `--with-courage'.])
+ fi
+ ;;
+ esac
+])
+
dnl GUIX_ASSERT_GUILE_FEATURES FEATURES
dnl
dnl Assert that FEATURES are provided by $GUILE.