From: Janneke Nieuwenhuizen <janneke@gnu.org>
To: 65456@debbugs.gnu.org
Subject: bug#65456: [PATCH 1/2] build: Build gnu/packages/*.go in five steps.
Date: Tue, 22 Aug 2023 19:19:41 +0200 [thread overview]
Message-ID: <606351ff2416c9086638a1c379b84ba811b384fa.1692723764.git.janneke@gnu.org> (raw)
In-Reply-To: <cover.1692723764.git.janneke@gnu.org>
This breaks-up packages into five chunks of ~150,000 lines, allowing guix
build --target=i586-pc-gnu from an x86 host.
This is a followup to 1aa7ee52c6c520c2dbbdb06f1381466e9fd96294.
* Makefile.am (first_half): Rename to...
(first_quart): ...this, and also split into...
(second_quart): ...this.
(third_quart, MODULES_PACKAGES3, MODULES_PACKAGE4): New variables.
(make-packages3-go, make-packages4-go): New targets.
(make-packages-go): Add them.
---
Makefile.am | 62 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 54 insertions(+), 8 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 738532f839..7c8c215f86 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -776,19 +776,45 @@ endef
# in <https://issues.guix.gnu.org/48963>. Each 'eval' call below creates a
# 'make-*-go' phony target that builds the corresponding subset.
-first_half := \
- gnu/packages/a% gnu/packages/b% gnu/packages/c% gnu/packages/d% \
- gnu/packages/e% gnu/packages/f% gnu/packages/g% gnu/packages/h% \
- gnu/packages/i% gnu/packages/j% gnu/packages/k% gnu/packages/l%
+first_fifth := \
+ gnu/packages/a% gnu/packages/b% gnu/packages/c%
+
+second_fifth := \
+ gnu/packages/d% gnu/packages/e% gnu/packages/f%
+
+third_fifth := \
+ gnu/packages/g% gnu/packages/h% gnu/packages/i%
+
+fourth_fifth := \
+ gnu/packages/j% gnu/packages/k% gnu/packages/l% gnu/packages/m% \
+ gnu/packages/n% gnu/packages/o%
MODULES_CORE := guix.scm $(filter-out guix/scripts/%,$(filter guix/%,$(MODULES)))
-MODULES_PACKAGES1 := $(filter $(first_half),$(MODULES))
-MODULES_PACKAGES2 := $(filter-out $(first_half),$(filter gnu/packages/%,$(MODULES)))
-MODULES_PACKAGES := $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)
+MODULES_PACKAGES1 := $(filter $(first_fifth),$(MODULES))
+MODULES_PACKAGES2 := $(filter $(second_fifth),$(MODULES))
+MODULES_PACKAGES3 := $(filter $(third_fifth),$(MODULES))
+MODULES_PACKAGES4 := $(filter $(fourth_fifth),$(MODULES))
+MODULES_PACKAGES5 := $(filter-out $(first_fifth) $(second_fifth) \
+ $(third_fifth) $(fourth_fifth), \
+ $(filter gnu/packages/%,$(MODULES)))
+MODULES_PACKAGES := $(MODULES_PACKAGES1) $(MODULES_PACKAGES2) \
+ $(MODULES_PACKAGES3) $(MODULES_PACKAGES4) \
+ $(MODULES_PACKAGES5)
MODULES_SYSTEM := gnu.scm $(filter-out gnu/packages/%,$(filter gnu/%,$(MODULES)))
MODULES_CLI := $(filter guix/scripts/%,$(MODULES))
MODULES_PO := guix/build/po.scm
+print-p1:
+ @echo $(MODULES_PACKAGES1)
+print-p2:
+ @echo $(MODULES_PACKAGES2)
+print-p3:
+ @echo $(MODULES_PACKAGES3)
+print-p4:
+ @echo $(MODULES_PACKAGES4)
+print-p5:
+ @echo $(MODULES_PACKAGES5)
+
$(eval $(call guile-compilation-rule,make-core-go, \
$(MODULES_CORE) guix/config.scm $(dist_noinst_DATA), \
0))
@@ -804,7 +830,27 @@ $(eval $(call guile-compilation-rule,make-packages2-go, \
$(words $(MODULES_CORE) $(MODULES_PACKAGES1))))
.PHONY: make-packages2-go
-make-packages-go: make-packages1-go make-packages2-go
+$(eval $(call guile-compilation-rule,make-packages3-go, \
+ $(MODULES_PACKAGES3) make-core-go make-packages1-go make-packages2-go, \
+ $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2))))
+.PHONY: make-packages3-go
+
+$(eval $(call guile-compilation-rule,make-packages4-go, \
+ $(MODULES_PACKAGES4) make-core-go make-packages1-go make-packages2-go \
+ make-packages3-go, \
+ $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2) \
+ $(MODULES_PACKAGES3))))
+.PHONY: make-packages4-go
+
+$(eval $(call guile-compilation-rule,make-packages5-go, \
+ $(MODULES_PACKAGES5) make-core-go make-packages1-go make-packages2-go \
+ make-packages3-go make-packages4-go, \
+ $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2) \
+ $(MODULES_PACKAGES3) $(MODULES_PACKAGES4))))
+.PHONY: make-packages5-go
+
+make-packages-go: make-packages1-go make-packages2-go \
+ make-packages3-go make-packages4-go make-packages5-go
.PHONY: make-packages-go
$(eval $(call guile-compilation-rule,make-system-go, \
--
2.41.0
next prev parent reply other threads:[~2023-08-22 17:21 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-22 17:17 bug#65456: [PATCH 0/2] Split guix build into more steps for 32bit hosts Janneke Nieuwenhuizen
2023-08-22 17:19 ` Janneke Nieuwenhuizen [this message]
2023-08-22 17:33 ` bug#65456: [PATCH 1/2] build: Build gnu/packages/*.go in five steps Janneke Nieuwenhuizen
2023-08-22 17:19 ` bug#65456: [PATCH 2/2] self: Build gnu/packages/*.go in 26 steps on 32bit Janneke Nieuwenhuizen
2023-08-22 21:51 ` bug#65456: [PATCH 0/2] Split guix build into more steps for 32bit hosts Ludovic Courtès
2023-08-23 6:16 ` bug#65456: [PATCH v3] self: Build guix/ and gnu/packages/ directories in 26 steps Janneke Nieuwenhuizen
2023-08-23 9:41 ` bug#65456: [PATCH v4] self: Build directories in chunks of max 25 files at a time Janneke Nieuwenhuizen
2023-08-24 14:42 ` bug#65456: [PATCH 0/2] Split guix build into more steps for 32bit hosts Ludovic Courtès
2023-09-01 12:48 ` Janneke Nieuwenhuizen
2023-09-16 15:16 ` Janneke Nieuwenhuizen
2023-09-18 4:52 ` Janneke Nieuwenhuizen
2023-08-24 5:33 ` bug#65456: [PATCH v3] self: Build guix/ and gnu/packages/ directories in 26 steps Janneke Nieuwenhuizen
2023-08-24 6:44 ` Dr. Arne Babenhauserheide
2023-08-22 17:49 ` bug#65456: [PATCH v2 1/2] build: Build gnu/packages/*.go in five steps Janneke Nieuwenhuizen
2023-08-22 17:49 ` bug#65456: [PATCH v2 2/2] self: Build gnu/packages/*.go in 26 steps Janneke Nieuwenhuizen
2023-08-22 17:55 ` Janneke Nieuwenhuizen
2023-08-22 19:28 ` Janneke Nieuwenhuizen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=606351ff2416c9086638a1c379b84ba811b384fa.1692723764.git.janneke@gnu.org \
--to=janneke@gnu.org \
--cc=65456@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).