platform: Introduce new platforms.

* gnu/platforms/intel.scm: New file.
* gnu/platforms/mips.scm: Ditto.
* gnu/platforms/powerpc.scm: Ditto.
* gnu/platforms/riscv.scm: Ditto.
* gnu/platforms/s390.scm: Ditto.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add them.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
Mathieu Othacehe 2022-05-02 12:54:44 +02:00
parent 6e0b2adf5f
commit 31f7696be4
No known key found for this signature in database
GPG key ID: 8354763531769CA6
6 changed files with 159 additions and 7 deletions

View file

@ -632,7 +632,11 @@ GNU_SYSTEM_MODULES = \
%D%/packages/zwave.scm \
\
%D%/platforms/arm.scm \
%D%/platforms/hurd.scm \
%D%/platforms/mips.scm \
%D%/platforms/powerpc.scm \
%D%/platforms/riscv.scm \
%D%/platforms/s390.scm \
%D%/platforms/x86.scm \
\
%D%/services.scm \
%D%/services/admin.scm \

29
gnu/platforms/mips.scm Normal file
View file

@ -0,0 +1,29 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; 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 (gnu platforms mips)
#:use-module (gnu platform)
#:use-module (gnu packages linux)
#:use-module (guix records)
#:export (mips64-linux))
(define mips64-linux
(platform
(target "mips64el-linux-gnu")
(system "mips64el-linux")
(linux-architecture "mips")))

36
gnu/platforms/powerpc.scm Normal file
View file

@ -0,0 +1,36 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; 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 (gnu platforms powerpc)
#:use-module (gnu platform)
#:use-module (gnu packages linux)
#:use-module (guix records)
#:export (powerpc-linux
powerpc64le-linux))
(define powerpc-linux
(platform
(target "powerpc-linux-gnu")
(system "powerpc-linux")
(linux-architecture "powerpc")))
(define powerpc64le-linux
(platform
(target "powerpc64le-linux-gnu")
(system "powerpc64le-linux")
(linux-architecture "powerpc")))

29
gnu/platforms/riscv.scm Normal file
View file

@ -0,0 +1,29 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; 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 (gnu platforms riscv)
#:use-module (gnu platform)
#:use-module (gnu packages linux)
#:use-module (guix records)
#:export (riscv64-linux))
(define riscv64-linux
(platform
(target "riscv64-linux-gnu")
(system "riscv64-linux")
(linux-architecture "riscv")))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -16,13 +16,14 @@
;;; 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 (gnu platforms hurd)
(define-module (gnu platforms s390)
#:use-module (gnu platform)
#:use-module (gnu packages linux)
#:use-module (guix records)
#:export (hurd))
#:export (s390x-linux))
(define hurd
(define s390x-linux
(platform
(target "i586-pc-gnu")
(system "i586-gnu")))
(target "s390x-linux-gnu")
(system "s390x-linux")
(linux-architecture "s390")))

53
gnu/platforms/x86.scm Normal file
View file

@ -0,0 +1,53 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; 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 (gnu platforms x86)
#:use-module (gnu platform)
#:use-module (gnu packages linux)
#:use-module (guix records)
#:export (i686-linux
x86_64-linux
i686-mingw
x86_64-mingw))
(define i686-linux
(platform
(target "i686-linux-gnu")
(system "i686-linux")
(linux-architecture "i386")))
(define x86_64-linux
(platform
(target "x86_64-linux-gnu")
(system "x86_64-linux")
(linux-architecture "x86_64")))
(define i686-mingw
(platform
(target "i686-w64-mingw32")
(system #f)))
(define x86_64-mingw
(platform
(target "x86_64-w64-mingw32")
(system #f)))
(define hurd
(platform
(target "i586-pc-gnu")
(system "i586-gnu")))