summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2010-03-04 23:07:04 +0000
committerNeil Jerram <neil@ossau.uklinux.net>2010-03-04 23:07:04 +0000
commita52d8d6fea7f36e8105af6bdc030040d5bda299f (patch)
tree5fe06cd471c969a80dff9fcf6e95a34646908859
parenta0aa1e5b69d6ef0311aeea8e4b9a94eae18a1aaf (diff)
downloadguile-a52d8d6fea7f36e8105af6bdc030040d5bda299f.tar.gz
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.
-rw-r--r--README42
1 files changed, 29 insertions, 13 deletions
diff --git a/README b/README
index 32300a866..0795d47aa 100644
--- a/README
+++ b/README
@@ -177,29 +177,45 @@ switches specific to Guile you may find useful in some circumstances.
--disable-regex --- omit regular expression interfaces
-Cross building Guile =====================================================
+Cross-building for Windows ================================================
Guile can be cross-compiled for Windows using the i586-mingw32msvc
cross-compiler. To do this, you first need to cross-build Guile's
-prerequisites - GNU MP and libtool/libltdl (as described above) - and
-then cross-build Guile itself.
+prerequisites (GNU MP and libtool/libltdl, as listed above) and then
+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 \
-GUILE_FOR_BUILD=/usr/local/bin/guile \
./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc
Then run `make' - which should complete without any errors - and `sudo
-make install'. (`make check' doesn't work when cross-compiling,
-because the built DLLs and program cannot be run on GNU/Linux.)
-
-The `GUILE_FOR_BUILD=...' setting is needed because some later steps
-of the build process use Guile itself. In the non-cross-compiling
-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.
+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 \
+LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \
+GUILE_FOR_BUILD=/usr/local/bin/guile \
+./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc
+
+In this case, note that `make check' won't work, because it can't test
+the Guile that has just been cross-built (and there would be no point
+in testing the GUILE_FOR_BUILD Guile instead).
+
+
+Cross building for other hosts =============================================
Cross-compiling for other hosts may also work, using the following
instructions; but this has not been recently tested.