diff --git a/PORTING b/PORTING new file mode 100644 index 00000000..8eeb418b --- /dev/null +++ b/PORTING @@ -0,0 +1,62 @@ +#+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.