diff mbox series

[bug#50905,01/38] build-system/mozilla: New build system.

Message ID 20210929221938.17168-1-maximedevos@telenet.be
State Accepted
Headers show
Series Clean up TODO(core-updates) | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

M Sept. 29, 2021, 10:19 p.m. UTC
* guix/build-system/mozilla.scm
  (lower-mozilla): New procedure.
  (mozilla-build-system): New variable.
* Makefile.am (MODULES): Add it.
---
 Makefile.am                   |  1 +
 guix/build-system/mozilla.scm | 52 +++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)
 create mode 100644 guix/build-system/mozilla.scm


base-commit: 0cccc2f52cedd9b0e0646cc4d3ae64a886f2db6b

Comments

Mathieu Othacehe Oct. 1, 2021, 9:52 a.m. UTC | #1
Hello Maxime,

> +(define mozilla-build-system
> +  (build-system
> +    (name 'mozilla)
> +    (description "The build system for Mozilla software using the Autotools")
> +    (lower lower-mozilla)))

This new build system should be documented in the "Build systems"
section of the documentation.

Otherwise, the series looks fine and I'll probably apply it once the
above comment is fixed.

Thanks,

Mathieu
M Oct. 1, 2021, 2:23 p.m. UTC | #2
Mathieu Othacehe schreef op vr 01-10-2021 om 09:52 [+0000]:
> Hello Maxime,
> 
> > +(define mozilla-build-system
> > +  (build-system
> > +    (name 'mozilla)
> > +    (description "The build system for Mozilla software using the Autotools")
> > +    (lower lower-mozilla)))
> 
> This new build system should be documented in the "Build systems"
> section of the documentation.
> 
> Otherwise, the series looks fine and I'll probably apply it once the
> above comment is fixed.

I sent a v2, wherein the ‘gnu: icecat: Use mozilla-build-system.’ documents the build
system in doc/guix.texi.

Greetings,
Maxime.
diff mbox series

Patch

diff --git a/Makefile.am b/Makefile.am
index 56f60278b7..76166f4eec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -140,6 +140,7 @@  MODULES =					\
   guix/build-system/font.scm			\
   guix/build-system/go.scm			\
   guix/build-system/meson.scm			\
+  guix/build-system/mozilla.scm			\
   guix/build-system/minify.scm			\
   guix/build-system/minetest.scm		\
   guix/build-system/asdf.scm			\
diff --git a/guix/build-system/mozilla.scm b/guix/build-system/mozilla.scm
new file mode 100644
index 0000000000..b4141c8177
--- /dev/null
+++ b/guix/build-system/mozilla.scm
@@ -0,0 +1,52 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build-system mozilla)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system)
+  #:use-module (guix utils)
+  #:export (mozilla-build-system))
+
+;;
+;; Build procedure for packages using Autotools with the Mozillian conventions
+;; for --target, --host and --build, which are different from the GNU
+;; conventions.
+;;
+;; Code:
+
+(define* (lower-mozilla name #:key system target #:allow-other-keys
+                        #:rest arguments)
+  (define lower (build-system-lower gnu-build-system))
+  (if target
+      (apply lower
+             (substitute-keyword-arguments arguments
+               ;; Override --target and --host to what Mozillian configure
+               ;; scripts expect.
+               ((#:configure-flags configure-flags ''())
+                `(cons* ,(string-append "--target=" target)
+                        ,(string-append "--host=" (nix-system->gnu-triplet system))
+                        ,configure-flags))))
+      (apply lower name arguments))) ; not cross-compiling
+
+(define mozilla-build-system
+  (build-system
+    (name 'mozilla)
+    (description "The build system for Mozilla software using the Autotools")
+    (lower lower-mozilla)))
+
+;;; mozilla.scm ends here