1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-10 11:20:28 +02:00

Improve README text on cross-building for Windows

* README: In particular, cover and recommend using wine.  Separate the
  "not recently tested" instructions into a separate section. Otherwise,
  various minor textual improvements.
This commit is contained in:
Neil Jerram 2010-03-04 23:07:04 +00:00
parent a0aa1e5b69
commit a52d8d6fea

40
README
View file

@ -177,29 +177,45 @@ switches specific to Guile you may find useful in some circumstances.
--disable-regex --- omit regular expression interfaces --disable-regex --- omit regular expression interfaces
Cross building Guile ===================================================== Cross-building for Windows ================================================
Guile can be cross-compiled for Windows using the i586-mingw32msvc Guile can be cross-compiled for Windows using the i586-mingw32msvc
cross-compiler. To do this, you first need to cross-build Guile's cross-compiler. To do this, you first need to cross-build Guile's
prerequisites - GNU MP and libtool/libltdl (as described above) - and prerequisites (GNU MP and libtool/libltdl, as listed above) and then
then cross-build Guile itself. cross-build Guile itself.
For each of these steps, configure using an invocation like this: For each of these builds, configure using an invocation like this:
CPPFLAGS=-I/usr/local/i586-mingw32msvc/include \
LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \
./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc
Then run `make' - which should complete without any errors - and `sudo
make install'.
Some later steps of the build process (e.g. for preparing
documentation) involve running Guile, and ideally these steps should
use the Guile that has just been built. You can arrange for this,
even when cross-building, by having wine and binfmt installed; these
packages allow the Linux kernel to run Windows executables and DLLs.
In this case, you can also run `make check' after `make', to run
Guile's test suite.
Alternatively, you can use another Guile installation for these steps,
from a normal non-cross build. To do this, set the GUILE_FOR_BUILD
environment variable when running ./configure; for example:
CPPFLAGS=-I/usr/local/i586-mingw32msvc/include \ CPPFLAGS=-I/usr/local/i586-mingw32msvc/include \
LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \ LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \
GUILE_FOR_BUILD=/usr/local/bin/guile \ GUILE_FOR_BUILD=/usr/local/bin/guile \
./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc ./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc
Then run `make' - which should complete without any errors - and `sudo In this case, note that `make check' won't work, because it can't test
make install'. (`make check' doesn't work when cross-compiling, the Guile that has just been cross-built (and there would be no point
because the built DLLs and program cannot be run on GNU/Linux.) in testing the GUILE_FOR_BUILD Guile instead).
The `GUILE_FOR_BUILD=...' setting is needed because some later steps
of the build process use Guile itself. In the non-cross-compiling Cross building for other hosts =============================================
case this is the version of Guile that has just been built. When
cross-compiling, you have to set GUILE_FOR_BUILD to tell the build
where it can find a native version of Guile, to use for these steps.
Cross-compiling for other hosts may also work, using the following Cross-compiling for other hosts may also work, using the following
instructions; but this has not been recently tested. instructions; but this has not been recently tested.