guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MinGW guile.exe cross build patch series v10


From: Jan Nieuwenhuizen
Subject: MinGW guile.exe cross build patch series v10
Date: Thu, 18 Aug 2016 08:08:39 +0200

Hi!

Recap how to use these patches

    $ ./pre-inst-env guix build --target=i686-w64-mingw32 hello
    $ guix environment --ad-hoc wine -- wine 
/gnu/store/9sx5hhdlyk7b3xdv7120yn5742l9xj2p-hello-2.10/bin/hello.exe
    Hello, world!

This series addresses the comments from Alex Kost and features slight rewrites
illustrated by Mark Weaver to avoid triggering any rebuilds.  This means now
doing things like, in ncurses

    (patches (if (target-mingw?)
                 (search-patches "ncurses-mingw.patch")
                 '()))))

I'm not sure if/when/where we want to rewrite such things again in a way you
would write it had we not aimed to avoid rebuilds (i.e., more like the v9
patch set had).

The biggest change wrt v9 that has not been reviewed is #:configure-flags
section in 0007-gnu-ncurses-support-mingw.patch, it would be nice if that
could be simplified.

As suggested by Ludovic, I have tested all individual patches with the
scripts below.

Greetings,
Jan

test
--8<---------------cut here---------------start------------->8---
#! /bin/sh -ex

set -o pipefail;

rm -f test*.log
for i in $(seq 11 -1 0); do
    git checkout v10~$i;
    git show --no-patch --abbrev-commit --pretty=oneline HEAD > test-$i.log
    ./TEST |& tee -a test-$i.log
done
--8<---------------cut here---------------end--------------->8---


TEST
--8<---------------cut here---------------start------------->8---
#! /bin/sh -ex

rm -f gnu/packages/cross-base.go gnu/packages/mingw.go
make

./pre-inst-env guix build --quiet gcc-cross-sans-libc-x86_64-linux-gnu
./pre-inst-env guix build --quiet gcc-cross-x86_64-linux-gnu
./pre-inst-env guix build --quiet hello
./pre-inst-env guix build --quiet guile

./pre-inst-env guix build --quiet --target=mips64el-linux-gnuabi64 hello

if grep mingw gnu/packages/cross-base.scm; then
    ./pre-inst-env guix build --quiet --target=i686-w64-mingw32 hello
fi

if grep mingw gnu/packages/multiprecision.scm; then
    ./pre-inst-env guix build --quiet --target=i686-w64-mingw32 gmp
fi

if grep mingw gnu/packages/ncurses.scm; then
    ./pre-inst-env guix build --quiet --target=i686-w64-mingw32 ncurses
fi

if grep mingw gnu/packages/readline.scm; then
    ./pre-inst-env guix build --quiet --target=i686-w64-mingw32 readline
fi

if grep mingw gnu/packages/guile.scm; then
    ./pre-inst-env guix build --quiet --target=i686-w64-mingw32 --keep-failed 
guile
fi
--8<---------------cut here---------------end--------------->8---





reply via email to

[Prev in Thread] Current Thread [Next in Thread]