diff options
author | Josselin Poiret <dev@jpoiret.xyz> | 2022-05-23 22:37:26 +0200 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2022-05-25 09:27:25 +0200 |
commit | dab819d5c4c55609efae098c8e3c2f2757c34e5b (patch) | |
tree | 43691e8653b203da8cd5100085f67253ce48f2a7 /gnu/platform.scm | |
parent | d129d962e437fd215c5e9428fc1b26e2d72ffbda (diff) | |
download | guix-dab819d5c4c55609efae098c8e3c2f2757c34e5b.tar.gz |
Move (gnu platform) and (gnu platforms ...) to guix/.
* gnu/platform.scm: * gnu/platforms/arm.scm: * gnu/platforms/hurd.scm: * gnu/platforms/mips.scm: * gnu/platforms/powerpc.scm: * gnu/platforms/riscv.scm: * gnu/platforms/s390.scm: * gnu/platforms/x86.scm: Move to guix/. * Makefile.am: * doc/guix.texi (Porting to a New Platform): * etc/release-manifest.scm: * gnu/ci.scm: * gnu/image.scm: * gnu/local.mk: * gnu/packages/bioinformatics.scm: * gnu/packages/bootstrap.scm: * gnu/packages/cross-base.scm: * gnu/packages/instrumentation.scm: * gnu/packages/linux.scm: * gnu/system/image.scm: * gnu/system/images/hurd.scm: * gnu/system/images/novena.scm: * gnu/system/images/pine64.scm: * gnu/system/images/pinebook-pro.scm: * gnu/system/images/rock64.scm: * guix/scripts/build.scm: * guix/scripts/system.scm: * guix/self.scm: Update (gnu platform...) to (guix platform...). Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'gnu/platform.scm')
-rw-r--r-- | gnu/platform.scm | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/gnu/platform.scm b/gnu/platform.scm deleted file mode 100644 index fdc3685e7c..0000000000 --- a/gnu/platform.scm +++ /dev/null @@ -1,139 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2021 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 platform) - #:use-module (guix discovery) - #:use-module (guix memoization) - #:use-module (guix records) - #:use-module (guix ui) - #:use-module (srfi srfi-1) - #:export (platform - platform? - platform-target - platform-system - platform-linux-architecture - platform-glibc-dynamic-linker - - platform-modules - platforms - lookup-platform-by-system - lookup-platform-by-target - lookup-platform-by-target-or-system - platform-system->target - platform-target->system - - systems - targets)) - - -;;; -;;; Platform record. -;;; - -;; Description of a platform supported by GNU Guix. -;; -;; The 'target' field must be a valid GNU triplet as defined here: -;; https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Specifying-Target-Triplets.html. -;; It is used for cross-compilation purposes. -;; -;; The 'system' field is the name of the corresponding system as defined in -;; the (gnu packages bootstrap) module. It can be for instance -;; "aarch64-linux" or "armhf-linux". It is used to emulate a different host -;; architecture, for instance i686-linux on x86_64-linux-gnu, or armhf-linux -;; on x86_64-linux, using the QEMU binfmt transparent emulation mechanism. -;; -;; The 'linux-architecture' is only relevant if the kernel is Linux. In that -;; case, it corresponds to the ARCH variable used when building Linux. -;; -;; The 'glibc-dynamic-linker' field is the name of Glibc's dynamic linker for -;; the corresponding system. -(define-record-type* <platform> platform make-platform - platform? - (target platform-target) - (system platform-system) - (linux-architecture platform-linux-architecture - (default #f)) - (glibc-dynamic-linker platform-glibc-dynamic-linker)) - - -;;; -;;; Platforms. -;;; - -(define (platform-modules) - "Return the list of platform modules." - (all-modules (map (lambda (entry) - `(,entry . "gnu/platforms")) - %load-path) - #:warn warn-about-load-error)) - -(define platforms - ;; The list of publically-known platforms. - (memoize - (lambda () - (fold-module-public-variables (lambda (obj result) - (if (platform? obj) - (cons obj result) - result)) - '() - (platform-modules))))) - -(define (lookup-platform-by-system system) - "Return the platform corresponding to the given SYSTEM." - (find (lambda (platform) - (let ((s (platform-system platform))) - (and (string? s) (string=? s system)))) - (platforms))) - -(define (lookup-platform-by-target target) - "Return the platform corresponding to the given TARGET." - (find (lambda (platform) - (let ((t (platform-target platform))) - (and (string? t) (string=? t target)))) - (platforms))) - -(define (lookup-platform-by-target-or-system target-or-system) - "Return the platform corresponding to the given TARGET or SYSTEM." - (or (lookup-platform-by-target target-or-system) - (lookup-platform-by-system target-or-system))) - -(define (platform-system->target system) - "Return the target matching the given SYSTEM if it exists or false -otherwise." - (let ((platform (lookup-platform-by-system system))) - (and=> platform platform-target))) - -(define (platform-target->system target) - "Return the system matching the given TARGET if it exists or false -otherwise." - (let ((platform (lookup-platform-by-target system))) - (and=> platform platform-system))) - - -;;; -;;; Systems & Targets. -;;; - -(define (systems) - "Return the list of supported systems." - (delete-duplicates - (filter-map platform-system (platforms)))) - -(define (targets) - "Return the list of supported targets." - (map platform-target (platforms))) |