summaryrefslogtreecommitdiff
path: root/README.cross
diff options
context:
space:
mode:
Diffstat (limited to 'README.cross')
-rw-r--r--README.cross98
1 files changed, 74 insertions, 24 deletions
diff --git a/README.cross b/README.cross
index 640b63055cc3..87044e417ab0 100644
--- a/README.cross
+++ b/README.cross
@@ -1,11 +1,19 @@
Cross-compiling LibreOffice
===========================
-Notes on cross-compiling LibreOffice, written by Tor Lillqvist
-<tlillqvist@novell.com> <tml@iki.fi> in May, 2011.
+Notes on cross-compiling LibreOffice, originally written by Tor
+Lillqvist <tlillqvist@novell.com> <tml@iki.fi> in May, 2011, for later
+history see git log.
-Cross-compilation of LibreOffice is not possible yet. Some initial
-work is done, "baby steps", but a lot remains. This work is highly
+My cross-compilation experimentation is going on for four platforms:
+Windows, iOS, Android and PowerPC Mac OS X. I work on the master
+branch of LibreOffice. Some other people have talked about setting up
+a separate branch for Android work, or even separate clones at
+github. I am not interested in that.
+
+Cross-compilation of LibreOffice completely is not possible yet. Much
+work has been done, "baby steps" for some platforms, much more for
+others, but a lot remains. For iOS and Android this work is highly
experimental and done mostly in my own spare time just for the hacking
pleasure. No promise, explicit or implied, is given that it will ever
be finished.
@@ -14,12 +22,6 @@ Searching for information about cross-compilation of OpenOffice.org
(the predecessor of LibreOffice) you will find information about what
actually was not cross-compilation, but using QEMU.
-My cross-compilation experimentation is going on for four platforms:
-Windows, iOS, Android and PowerPC Mac OS X. I work on the master
-branch of LibreOffice. Some other people have talked about setting up
-a separate branch for Android work, or even separate clones at
-github. I am not interested in that.
-
General
-------
@@ -62,17 +64,17 @@ Windows
-------
There is some support in LibreOffice already (from OpenOffice.org) for
-building it locally on Windows but with the GNU tool-chain, i.e. what
-is commonly known as MinGW. But as far as I know, that work has never
-attempted cross-compilation.
+building it locally on Windows with the GNU tool-chain (MinGW). But as
+far as I know, that work has never attempted cross-compilation.
This OOo-originated MinGW support attempts to support both running
-Cygwin gcc in its -mno-cygwin mode, and a native MinGW compiler. The
+Cygwin gcc in its -mno-cygwin mode, and a native MinGW compiler. The
-mno-cygwin mechanism in the Cygwin gcc is rapidly being obsoleted, if
-it isn't already, and I have not attempted to check that it keeps
-working. Ditto for native MinGW; if one compiles natively on Windows,
-why not use Microsoft's compiler, as OOo/LO has been build for Windows
-all the time using that and it works fine.
+it isn't already, and I have not attempted to try to keep it working;
+in fact I have activly cleaned out mechanisms related to this. Ditto
+for native MinGW. If one compiles natively on Windows, just use
+Microsoft's compiler. OOo/LO has been built for Windows all the time
+using that.
In my opinion, the only case where it makes sense to use MinGW is for
cross-compilation. There is just too much crack on Windows anyway, and
@@ -86,20 +88,34 @@ Build Service, running on openSUSE:
http://download.opensuse.org/repositories/windows:/mingw:/win32/
-[You can install it like:
+You can install it on openSUSE like this:
zypper ar http://download.opensuse.org/repositories/windows:/mingw:/win32/SLE_11_SP1/windows:mingw:win32.repo
-zypper in mingw32-cross-gcc mingw32-python-devel mingw32-libexpat-devel \
- mingw32-libexpat mingw32-boost-devel mingw32-libhyphen-devel \
- mingw32-libhyphen mingw32-hyphen-en mingw32-liblpsolve-devel
+zypper in mingw32-cross-gcc mingw32-cross-gcc-c++ mingw32-python-devel \
+ mingw32-libexpat-devel mingw32-libexpat mingw32-boost-devel \
+ mingw32-libhyphen-devel mingw32-libhyphen mingw32-hyphen-en \
+ mingw32-liblpsolve mingw32-liblpsolve-devel \
+ mingw32-libxml2-devel mingw32-libxslt-devel mingw32-libicu \
+ mingw32-libicu-devel mingw32-libgraphite2 mingw32-libgraphite2-devel \
+ mingw32-cairo mingw32-cairo-devel mingw32-librsvg mingw32-librsvg-devel \
+ mingw32-hunspell mingw32-hunspell-devel mingw32-libcurl \
+ mingw32-libcurl-devel mingw32-libneon mingw32-libneon-devel \
+ mingw32-libopenssl mingw32-libopenssl-devel mingw32-libtextcat \
+ mingw32-libtextcat-devel mingw32-libdb mingw32-libdb-devel \
+ mingw32-cross-pkg-config mingw32-pkg-config mingw32-libcppunit \
+ mingw32-libcppunit-devel mingw32-libredland mingw32-libredland-devel \
+ mingw32-libmythes mingw32-libmythes-devel
There might be more that are missing, please read carefully what autogen.sh
tells you, and either remove one of the --with-system-*, or install the
-missing dependency. ]
+missing dependency.
+
+It also looks like graphite2.pc needs tweaking in order to work right; but
+that's likely to be fixed in the openSUSE project.
It is somewhat unclear how well thought-out the conditionals and code
for MinGW inside the OOo-originated code in LibreOffice actually
-is. The little I have seen of it seems a bit randomish, with
+are. What I have noticed of it seems a bit randomish, with
copy-pasting having been preferred to factoring out differences.
The autogen.lastrun I use for my MinGW cross-compilation experimentation is:
@@ -111,6 +127,7 @@ CXX_FOR_BUILD=ccache g++
--build=x86_64-unknown-linux-gnu
--host=i686-w64-mingw32
--with-distro=LibreOfficeWin32
+--disable-activex
--disable-binfilter
--disable-build-mozilla
--disable-directx
@@ -151,6 +168,39 @@ CXX_FOR_BUILD=ccache g++
--with-system-openssl
--with-system-redland
--with-vendor=no
+--without-help
+--without-helppack-integration
+--without-myspell-dicts
+
+TODO:
+
+- installation
+ - so far the make_installer.pl calls makecab.exe, uuidgen.exe, and
+ others; would be best to avoid that if at all possible (using a free
+ cab implementation, part of Wine or something)
+ - MSI generation
+ - if at all possible, the make dev-install installation (with links
+ back to the build) should be done so that it would be directly
+ executable via wine after doing make dev-install :-)
+
+- runtime
+ - no idea if the entire thing works after the installation at all; I
+ suppose there will be runtime problems to look at too
+
+- cleanup
+ - enable & fix pieces that are currently disabled
+ - --without-myspell-dicts
+ - --disable-directx
+ - --disable-activex
+ - --disable-mozilla
+ - much of the stuff currently relies on --with-system-*, and
+ consequently on the mingw32-* openSUSE packages; might be good to be
+ able to build with as few dependencies as possible - but that is low
+ prio I think
+
+- profiling
+ - when all the above is sorted out, we should look at the speed of
+ this vs. the speed of the MSVC version
iOS