Kaydet (Commit) 6dd7798f authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Drop the Windows information, nobody has done that for years

Change-Id: Idaf5b50c3fcd1083d758055889dea7e117adef3b
üst 4b8fd386
......@@ -2,7 +2,10 @@ Cross-compiling LibreOffice
***************************
Cross-compilation works, to various degree, to the following
platforms: Windows, iOS, Android, and Raspbian.
platforms: iOS, Android, and Raspbian.
Note that this document has not been updated very often, and not
everything here necessarily is true any more.
General
......@@ -47,199 +50,6 @@ configure.in is just the top level; when we get down to the actual
makefilery used to build the bits of LibreOffice, it gets much worse.
Windows
*******
There was some support in LibreOffice already from OpenOffice.org days
for building it locally on Windows with the GNU tool-chain (MinGW).
Apparently, those doing that work never attempted cross-compilation.
This OOo-originated MinGW support attempts to be for both running the
Cygwin gcc in its -mno-cygwin mode, and a Windows-native MinGW
compiler. The -mno-cygwin mechanism in the Cygwin gcc is rapidly being
obsoleted, if it isn't already, and we have not attempted to try to
keep it working; in fact we have actively cleaned out mechanisms
related to this. Ditto for native MinGW. If one compiles natively on
Windows, just use a version of Microsoft's compiler. OpenOffice.org
and LibreOffice have been built for Windows all the time using that.
The only case where it makes sense to use MinGW is for
cross-compilation. There is just too much crack involved on Windows
anyway, and it is a semi-miracle that the MSVC build under Cygwin
works as nicely as it does.
MinGW is available as cross-build toolchains pre-packaged in more or
less official packages for many Linux distros including Debian, Fedora
and openSUSE. For instance, the mingw32 packages in the Open Build
Service, running on openSUSE, can be found at:
http://download.opensuse.org/repositories/windows:/mingw:/win32/
For example, you can install it like this:
zypper ar http://download.opensuse.org/repositories/windows:/mingw:/win32/<your_os>/windows:mingw:win32.repo
where <your_os> is one of SLE_11, SLE_11_SP1, openSUSE_XX.Y, or
openSUSE_Factory.
zypper in mingw32-cross-gcc mingw32-cross-gcc-c++ mingw32-python-devel \
mingw32-python mingw32-libboost_date_time \
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-libcairo2 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-libexttextcat \
mingw32-libexttextcat-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 mingw32-mozilla-nss \
mingw32-mozilla-nss-devel mingw32-mozilla-nspr \
mingw32-mozilla-nspr-devel mingw32-libpoppler mingw32-libpoppler-devel
You also need wine, ideally:
zypper ar http://download.opensuse.org/repositories/Emulators:/Wine/<your_os>/Emulators:Wine.repo
zypper in wine wine-devel wine-devel-32bit
And in order to be able to use 'winegcc -m32', also
zypper in glibc-devel-32bit gcc-32bit
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.
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
are. It often seems a bit randomish, with copy-pasting having been
preferred to factoring out differences.
Most of the configuration settings are maintained in the
distro-configs/LibreOfficeMinGW.conf file, so in your autogen.input,
you can use:
CC=ccache i686-w64-mingw32-gcc
CXX=ccache i686-w64-mingw32-g++
CC_FOR_BUILD=ccache gcc
CXX_FOR_BUILD=ccache g++
--with-distro=LibreOfficeMinGW
Alternatively, you can use something like the following; but the
preferred way is to keep the LibreOfficeMinGW.conf file up-to-date.
CC=ccache i686-w64-mingw32-gcc
CXX=ccache i686-w64-mingw32-g++
CC_FOR_BUILD=ccache gcc
CXX_FOR_BUILD=ccache g++
--build=x86_64-unknown-linux-gnu
--host=i686-w64-mingw32
--with-distro=LibreOfficeWin32
--disable-activex
--disable-directx
--disable-ext-nlpsolver
--disable-report-builder
--disable-scripting-beanshell
--disable-scripting-javascript
--disable-ext-wiki-publisher
--disable-pdfimport
--enable-python=system
--with-system-altlinuxhyph
--with-system-boost
--with-system-cairo
--with-system-cppunit
--with-system-curl
--with-system-expat
--with-system-hunspell
--with-system-icu
--with-system-libpng
--with-system-libwpd
--with-system-libwpg
--with-system-libwps
--with-system-libxml
--with-system-lpsolve
--with-system-mythes
--with-system-neon
--with-system-openssl
--with-system-redland
--with-vendor=no
--without-help
--without-helppack-integration
--without-myspell-dicts
Once you have compiled it, you may want to try to run it, for instance
using Wine:
$ cd /tmp
$ tar xf <your-build-dir>/workdir/wntgcci.pro/installation/LibreOffice_Dev/archive/install/en-US/LibO-Dev_4.1.0.0.alpha0_Win_x86_archive.tar.gz
$ cd LibO-Dev_4.1.0.0.alpha0_Win_x86_archive/LOdev\ 4.1/program/
$ wine soffice.exe
NB. it is important to unpack somewhere low in the hierarchy structure (like
in /tmp as advised above), otherwise you'll get BerkeleyDB errors on startup.
And if you are brave enough, you can even debug it. First you have to add the
URE dll's to the wine's PATH using 'wine regedit' - see
http://www.winehq.org/docs/wineusr-guide/environment-variables, and add
Z:\tmp\LibO-Dev_4.1.0.0.alpha0_Win_x86_archive/LOdev\ 4.1\URE\bin
to "Path" in My Computer->HKEY_CURRENT_USER->Environment.
And start debugging:
$ winedbg soffice.bin
Would be great to be able to use winedbg --gdb, but it was crashing here :-( -
but maybe you'll be more lucky.
Tricks of some use with winedbg:
--------------------------------
To examine OUStrings, you might want to use the following trick (prints 50
unicode characters of rLibName OUString - the +10 is where the buffer starts):
Wine-dbg>x /50u rLibName->pData+10
0x0909b6c8: vnd.sun.star.expand:$LO_LIB_DIR/abplo.dll
TODO:
- make the debugging more convenient on (native) Windows
- check possibilities like WinGDB - http://www.wingdb.com/
- or find / write a MSVS / WinDBG extension that can read MinGW debugging
symbols natively; more info
http://windbg.info/forum/12-symbol-and-source-files-/21-debugging-mingwgcc-built-dll-in-visual-studio.html
- 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
- 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
- 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
- profiling
- when all the above is sorted out, we should look at the speed of
this vs. the speed of the MSVC version
iOS
***
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment