[Libreoffice-commits] .: 2 commits - configure.in README.cross

Tor Lillqvist tml at kemper.freedesktop.org
Thu May 17 23:41:52 PDT 2012


 README.cross |   66 +++++++++++++++++++----------------------------------------
 configure.in |    5 ++++
 2 files changed, 27 insertions(+), 44 deletions(-)

New commits:
commit bc229ca1abf8b179631ae563ef77f565a1a9d496
Author: Tor Lillqvist <tml at iki.fi>
Date:   Thu May 17 22:57:46 2012 +0300

    Update README.cross to match reality better
    
    Change-Id: I14e97bb9e3351ed7a5e7e8c853253353bfe9df2e

diff --git a/README.cross b/README.cross
index 7dcb03c..c66e1d4 100644
--- a/README.cross
+++ b/README.cross
@@ -1,29 +1,15 @@
 Cross-compiling LibreOffice
 ===========================
 
-The cross-compilation experimentation is going on for four platforms:
-Windows, iOS, Android and PowerPC Mac OS X. It happens in the master
-branch of LibreOffice. Some people have talked about setting up a
-separate branch for Android work, or even separate clones at github,
-but that is not necessary.
-
-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, originally done in spare time just for the hacking
-pleasure. No promise, explicit or implied, is given that it will ever
-be finished.
-
-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.
+Cross-compilation work has been done, to various degrees, for four
+platforms: Windows, iOS, Android and PowerPC Mac OS X.
 
 
 General
 -------
 
 In GNU Autoconf terminology, "build" is the platform on which you are
-running a build on some software and "host" is the platform on which
+running a build of some software and "host" is the platform on which
 the software you are building will run. Only in the specific case of
 building compilers and other programming tools is the term "target"
 used to indicate the platform for which the tools your are building
@@ -180,7 +166,8 @@ CXX_FOR_BUILD=ccache g++
 --without-helppack-integration
 --without-myspell-dicts
 
-Once you have compiled it, you may want to try to run it:
+Once you have compiled it, you may want to try to run it, for instance
+using Wine:
 
 $ cd /tmp
 $ tar xf <your-build-dir>/instsetoo_native/wntgcci.pro/LibreOffice_Dev/archive/install/en-US/LibO-Dev_3.6.0alpha0_Win_x86_install-arc_en-US.tar.gz
@@ -277,7 +264,8 @@ thought yet.
 The Apple tool-chain for iOS cross-building is available only for
 Mac OS X.
 
-Here is an autogen.lastrun for iOS (device) using Xcode 4.3 and clang:
+Here is an autogen.lastrun for iOS (device) using Xcode 4.3 and clang,
+and Xcode 3 for the build platform parts:
 CXX=ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
 CC=ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
 CC_FOR_BUILD=ccache /Xcode3/usr/bin/gcc-4.0 -mmacosx-version-min=10.4
@@ -288,31 +276,18 @@ CXX_FOR_BUILD=ccache /Xcode3/usr/bin/g++-4.0 -mmacosx-version-min=10.4
 --without-helppack-integration
 --without-myspell-dicts
 
-And here for the iOS simulator, using Xcode 4.2 and gcc:
-CXX=ccache /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
-CC=ccache /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
-CC_FOR_BUILD=ccache /Xcode3/usr/bin/gcc-4.0 -mmacosx-version-min=10.4
-CXX_FOR_BUILD=ccache /Xcode3/usr/bin/g++-4.0 -mmacosx-version-min=10.4
---with-distro=LibreOfficeiOS
---with-system-nss
---enable-debug
---without-help
---without-helppack-integration
---without-myspell-dicts
-
-It seems that with the latest iOS SDK one has to do:
-sudo ln -s i686-apple-darwin10 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/c++/4.2.1/i686-apple-darwin11
-or g++ won't find its headers like <bits/c++config.h>
-
 The --with-system-nss doesn't mean that any Mozilla NSS would be used,
 it's just a trick to bypass some tests in the configure script.
 
-For the iOS simulator, using Xcode 4.3 and gcc (should switch to clang here, too):
-CXX=ccache /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
-CC=ccache /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
-CC_FOR_BUILD=ccache /Xcode3/usr/bin/gcc-4.0 -mmacosx-version-min=10.4
-CXX_FOR_BUILD=ccache /Xcode3/usr/bin/g++-4.0 -mmacosx-version-min=10.4
+For the iOS simulator, using Xcode 4.3 and clang both for the host and
+build platform:
+
+CXX=ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
+CC=ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
+CC_FOR_BUILD=ccache clang -arch i386 -mmacosx-version-min=10.6
+CXX_FOR_BUILD=ccache clang++ -arch i386 -mmacosx-version-min=10.6
 --enable-werror
+--with-build-platform-configure-options=--with-macosx-version-min-required=10.6 --with-macosx-sdk=10.6
 --with-distro=LibreOfficeiOS
 --with-system-nss
 --without-help
@@ -330,15 +305,18 @@ Android
 From a technical point of view the core Android OS is Linux, but
 everything else is different. Unlike iOS, an Android app can use
 shared objects just fine, so that aspect of UNO doesn't need special
-handling.
+handling. Except that there is a silly low limit in the Android
+dynamic linker on the number of libraries you can dlopen. Note that
+this is a limitation of user-level code, not the kernel. Here are
+various ways around this problem that are being examined.
 
 As for the GUI, the same holds as said above for iOS.
 
 Android cross-compilation work has been done on Linux (openSUSE in
 particular) and Mac OS X. The Android cross-buld tool-chain (the
-"Native Development Kit", or NDK) is available for Linux, Mac OS X and
-Windows. (Trying to cross-compile from Windows will probably drive you
-insane.)
+"Native Development Kit", or NDK) is available for Linux and Mac OS
+X. Sure, for Windows, too, but trying to cross-compile LO from Windows
+will probably drive you insane.
 
 Here is an autogen.lastrun for Android, when cross-compiling from Mac OS X:
 
commit 6868d84b13a52efe91337f2dccb88e59b9f8d2b7
Author: Tor Lillqvist <tml at iki.fi>
Date:   Thu May 17 22:45:04 2012 +0300

    Add generic --with-build-platform-configure-options

diff --git a/configure.in b/configure.in
index 9c23d8a..510d82a 100644
--- a/configure.in
+++ b/configure.in
@@ -991,6 +991,9 @@ AC_ARG_WITH(gnu-patch,
         [Specify location of GNU patch on Solaris or FreeBSD.]),
 ,)
 
+AC_ARG_WITH(build-platform-configure-options,
+        [Specify options for the configure script run for the *build* platform in a cross-compilation])
+
 AC_ARG_WITH(gnu-cp,
     AS_HELP_STRING([--with-gnu-cp],
         [Specify location of GNU cp on Solaris or FreeBSD.]),
@@ -2021,6 +2024,7 @@ AC_ARG_WITH(macosx-version-max-allowed,
 
 dnl ===================================================================
 dnl options for stuff used during cross-compilation build
+dnl These are superseded by --with-build-platform-configure-options
 dnl ===================================================================
 
 AC_ARG_WITH(system-boost-for-build,
@@ -3472,6 +3476,7 @@ if test "$cross_compiling" = "yes"; then
     test -n "$with_system_expat_for_build" && sub_conf_opts="$sub_conf_opts --with-system-expat"
     test "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" && sub_conf_opts="$sub_conf_opts --with-system-icu"
     test -n "$with_system_libxml_for_build" && sub_conf_opts="$sub_conf_opts --with-system-libxml"
+    sub_conf_opts="$sub_conf_opts $with_build_platform_configure_options"
     ./configure \
         --disable-mozilla \
         --disable-build-mozilla \


More information about the Libreoffice-commits mailing list