#+COMMENT:                                                            -*- org -*-
#+TITLE: Porting GNU Mes

* Porting GNU Mes to ARM

The ARM port can be found in wip-arm on savannah.

For development, we use Guix's qemu-binfmt-service-type.

** Guix Setup, see [[info:guix#Virtualization%20Services][Virtualization Services]].

Add something like
   #+BEGIN_SRC scheme
      (service qemu-binfmt-service-type
               (qemu-binfmt-configuration
                (platforms (lookup-qemu-platforms "arm"))
                (guix-support? #t)))
   #+END_SRC
to your config.scm and run guix system reconfigure.

** Setup environment

   #+BEGIN_SRC bash
   guix environment -s armhf-linux --pure --ad-hoc bash coreutils diffutils gawk gcc-toolchain grep guile help2man make nyacc pkg-config sed texinfo
   PATH=~/src/mescc-tools-arm/bin:$PATH
   #+END_SRC

(No git, graphviz on ARM yet).

** Try it
   #+BEGIN_SRC bash
   ./configure --with-courage --with-system-libc
   ./simple.sh
   #+END_SRC

some failures are expected.

** Build it
   #+BEGIN_SRC bash
   ./configure --with-courage --with-system-libc
   make MES=guile
   make check
   #+END_SRC

expect many failures.  Non-system-libc, i.e. using the Mes C Library is currently WIP.

* Porting GNU Mes to x86_64

The x86_64 port is almost done, only a few bugs remain.  The Guix
bootstrap for x86_64 uses x86 mes and that is not expected to change.

* Porting GNU Mes to GNU/Hurd

The Hurd port can be found in wip-hurd on savannah.  For development, we
use a Debian GNU/Hurd vm.

* Legalese
Copyright © 2019 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.
