build: Bail out on unsupported platforms; add `--with-courage'.
authorLudovic Courtès <ludo@gnu.org>
Fri, 5 Jul 2013 19:54:52 +0000 (21:54 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 5 Jul 2013 19:54:52 +0000 (21:54 +0200)
* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): New macro.
* configure.ac: Use it.

configure.ac
m4/guix.m4

index ff512dd..80d35a4 100644 (file)
@@ -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],
index ed2e720..477b0e4 100644 (file)
@@ -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.