Merge branch 'master' into core-updates-frozen
[jackhill/guix/guix.git] / Makefile.am
index 7d5f6a7..56f6027 100644 (file)
@@ -141,6 +141,7 @@ MODULES =                                   \
   guix/build-system/go.scm                     \
   guix/build-system/meson.scm                  \
   guix/build-system/minify.scm                 \
+  guix/build-system/minetest.scm               \
   guix/build-system/asdf.scm                   \
   guix/build-system/copy.scm                   \
   guix/build-system/glib-or-gtk.scm            \
@@ -203,6 +204,7 @@ MODULES =                                   \
   guix/build/gnu-dist.scm                      \
   guix/build/guile-build-system.scm            \
   guix/build/maven-build-system.scm            \
+  guix/build/minetest-build-system.scm         \
   guix/build/node-build-system.scm             \
   guix/build/perl-build-system.scm             \
   guix/build/python-build-system.scm           \
@@ -220,6 +222,7 @@ MODULES =                                   \
   guix/build/linux-module-build-system.scm     \
   guix/build/store-copy.scm                    \
   guix/build/json.scm                          \
+  guix/build/pack.scm                          \
   guix/build/utils.scm                         \
   guix/build/union.scm                         \
   guix/build/profiles.scm                      \
@@ -234,6 +237,7 @@ MODULES =                                   \
   guix/build/emacs-utils.scm                   \
   guix/build/java-utils.scm                    \
   guix/build/lisp-utils.scm                    \
+  guix/build/meson-configuration.scm           \
   guix/build/maven/java.scm                    \
   guix/build/maven/plugin.scm                  \
   guix/build/maven/pom.scm                     \
@@ -258,6 +262,7 @@ MODULES =                                   \
   guix/import/json.scm                         \
   guix/import/kde.scm                          \
   guix/import/launchpad.scm                    \
+  guix/import/minetest.scm                     \
   guix/import/opam.scm                         \
   guix/import/print.scm                                \
   guix/import/pypi.scm                         \
@@ -301,6 +306,7 @@ MODULES =                                   \
   guix/scripts/import/go.scm                   \
   guix/scripts/import/hackage.scm              \
   guix/scripts/import/json.scm                 \
+  guix/scripts/import/minetest.scm             \
   guix/scripts/import/opam.scm                 \
   guix/scripts/import/pypi.scm                 \
   guix/scripts/import/stackage.scm             \
@@ -365,10 +371,14 @@ AUX_FILES =                                               \
   gnu/packages/aux-files/chromium/master-preferences.json              \
   gnu/packages/aux-files/emacs/guix-emacs.el           \
   gnu/packages/aux-files/guix.vim                      \
-  gnu/packages/aux-files/linux-libre/5.12-arm.conf     \
-  gnu/packages/aux-files/linux-libre/5.12-arm64.conf   \
-  gnu/packages/aux-files/linux-libre/5.12-i686.conf    \
-  gnu/packages/aux-files/linux-libre/5.12-x86_64.conf  \
+  gnu/packages/aux-files/linux-libre/5.14-arm.conf     \
+  gnu/packages/aux-files/linux-libre/5.14-arm64.conf   \
+  gnu/packages/aux-files/linux-libre/5.14-i686.conf    \
+  gnu/packages/aux-files/linux-libre/5.14-x86_64.conf  \
+  gnu/packages/aux-files/linux-libre/5.13-arm.conf     \
+  gnu/packages/aux-files/linux-libre/5.13-arm64.conf   \
+  gnu/packages/aux-files/linux-libre/5.13-i686.conf    \
+  gnu/packages/aux-files/linux-libre/5.13-x86_64.conf  \
   gnu/packages/aux-files/linux-libre/5.10-arm.conf     \
   gnu/packages/aux-files/linux-libre/5.10-arm64.conf   \
   gnu/packages/aux-files/linux-libre/5.10-i686.conf    \
@@ -469,6 +479,7 @@ SCM_TESTS =                                 \
   tests/import-utils.scm                       \
   tests/inferior.scm                           \
   tests/lint.scm                               \
+  tests/minetest.scm                           \
   tests/modules.scm                            \
   tests/monads.scm                             \
   tests/nar.scm                                \
@@ -490,6 +501,7 @@ SCM_TESTS =                                 \
   tests/services/file-sharing.scm              \
   tests/services/configuration.scm             \
   tests/services/linux.scm                     \
+  tests/services/telephony.scm                 \
   tests/sets.scm                               \
   tests/size.scm                               \
   tests/status.scm                             \
@@ -513,6 +525,8 @@ SCM_TESTS =                                 \
 
 if HAVE_GUILE_LIB
 SCM_TESTS += tests/go.scm
+else
+EXTRA_DIST += tests/go.scm
 endif
 
 if BUILD_DAEMON_OFFLOAD
@@ -614,9 +628,11 @@ EXTRA_DIST +=                                              \
   .guix-authorizations                                 \
   .guix-channel                                                \
   scripts/guix.in                                      \
+  etc/disarchive-manifest.scm                          \
   etc/guix-install.sh                                  \
   etc/news.scm                                         \
   etc/release-manifest.scm                             \
+  etc/source-manifest.scm                              \
   etc/system-tests.scm                                 \
   etc/historical-authorizations                                \
   build-aux/build-self.scm                             \
@@ -666,15 +682,53 @@ CLEANFILES =                                      \
 # the whole thing.  Likewise, set 'XDG_CACHE_HOME' to avoid loading possibly
 # stale files from ~/.cache/guile/ccache.
 %.go: make-go ; @:
-make-go: $(MODULES) guix/config.scm $(dist_noinst_DATA)
-       $(AM_V_at)echo "Compiling Scheme modules..." ;                  \
-       unset GUILE_LOAD_COMPILED_PATH ;                                \
-       XDG_CACHE_HOME=/nowhere                                         \
-       host=$(host) srcdir="$(top_srcdir)"                             \
-       $(top_builddir)/pre-inst-env                                    \
-       $(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)"                \
-         --no-auto-compile                                             \
-         -s "$(top_srcdir)"/build-aux/compile-all.scm $^
+make-go: make-core-go make-packages-go make-system-go make-cli-go
+
+# Define a rule to build a subset of the .go files.
+define guile-compilation-rule
+
+$(1): $(2)
+       $(AM_V_at)echo "Compiling Scheme modules..." ;          \
+       unset GUILE_LOAD_COMPILED_PATH ;                        \
+       XDG_CACHE_HOME=/nowhere                                 \
+       host=$(host) srcdir="$(top_srcdir)"                     \
+       $(top_builddir)/pre-inst-env                            \
+       $(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)"        \
+         --no-auto-compile                                     \
+         -s "$(top_srcdir)"/build-aux/compile-all.scm          \
+         --total $(words $(MODULES))                           \
+         --completed $(3)                                      \
+         $$(filter %.scm,$$^)
+
+.PHONY: $(1)
+
+endef
+
+# Split compilation in several steps, each of which building a subset of
+# $(MODULES).  The main goal is to reduce peak memory consumption, as reported
+# in <https://issues.guix.gnu.org/48963>.  Each 'eval' call below creates a
+# 'make-*-go' phony target that builds the corresponding subset.
+
+MODULES_CORE     = guix.scm $(filter-out guix/scripts/%,$(filter guix/%,$(MODULES)))
+MODULES_PACKAGES = $(filter gnu/packages/%,$(MODULES))
+MODULES_SYSTEM   = gnu.scm $(filter-out gnu/packages/%,$(filter gnu/%,$(MODULES)))
+MODULES_CLI      = $(filter guix/scripts/%,$(MODULES))
+
+$(eval $(call guile-compilation-rule,make-core-go,     \
+  $(MODULES_CORE) guix/config.scm $(dist_noinst_DATA), \
+  0))
+
+$(eval $(call guile-compilation-rule,make-packages-go, \
+  $(MODULES_PACKAGES) make-core-go,                    \
+  $(words $(MODULES_CORE))))
+
+$(eval $(call guile-compilation-rule,make-system-go,   \
+  $(MODULES_SYSTEM) make-packages-go make-core-go,     \
+  $(words $(MODULES_CORE) $(MODULES_PACKAGES))))
+
+$(eval $(call guile-compilation-rule,make-cli-go,                      \
+  $(MODULES_CLI) make-system-go make-packages-go make-core-go,         \
+  $(words $(MODULES_CORE) $(MODULES_PACKAGES) $(MODULES_SYSTEM))))
 
 SUFFIXES = .go