[Libreoffice-commits] .: bootstrap.1 conf-for-build.in configure.in download post_download.in set_soenv.in solenv/gbuild solenv/inc soltools/cpp

Tor Lillqvist tml at kemper.freedesktop.org
Fri May 13 10:27:17 PDT 2011


 bootstrap.1                   |    8 
 conf-for-build.in             |    9 
 configure.in                  |  416 +++++++++++++++++++------------------
 download                      |    2 
 post_download.in              |    2 
 set_soenv.in                  |   47 ++--
 solenv/gbuild/gbuild.mk       |    2 
 solenv/gbuild/platform/ios.mk |  466 ++++++++++++++++++++++++++++++++++++++++++
 solenv/inc/settings.mk        |    8 
 solenv/inc/unx.mk             |    4 
 solenv/inc/unxiosr.mk         |   75 ++++++
 soltools/cpp/_unix.c          |   35 ---
 12 files changed, 824 insertions(+), 250 deletions(-)

New commits:
commit aa0d86d67aac6e8f1a51afc616a65f697d219851
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat May 7 00:25:55 2011 +0300

    Some initial baby steps towards cross-compilation
    
    And some baby steps for cross-compiling for iOS in particular.

diff --git a/bootstrap.1 b/bootstrap.1
index 3daa1e2..cae59ce 100644
--- a/bootstrap.1
+++ b/bootstrap.1
@@ -17,6 +17,14 @@ if test "$BUILD_DMAKE" != "NO"; then
     if test ! -x "$SRC_ROOT/dmake/dmake$EXEEXT"; then
         cd "$SRC_ROOT/dmake" || exit
 
+	# If cross-compiling then don't use the cross compilers to build dmake.
+	if test "$CROSS_COMPILING" = "yes"; then
+            CC=""
+            CXX=""
+            export CC
+            export CXX
+        fi
+
         # Special case! The w32/tcsh build needs CC pointing to the MSVC++ compiler
         # but we need a cygwin/gcc build dmake to understand the posix paths
         if test "$GUI" = "WNT"; then
diff --git a/conf-for-build.in b/conf-for-build.in
new file mode 100755
index 0000000..196b2f1
--- /dev/null
+++ b/conf-for-build.in
@@ -0,0 +1,9 @@
+AC_INIT([LibreOffice], [3.3],,, [http://documentfoundation.org/])
+AC_PREREQ(2.50)
+AC_CANONICAL_SYSTEM
+AC_PROG_CC
+AC_PROG_CXX
+
+
+echo CC_FOR_BUILD='${CC_FOR_BUILD:-'$CC'}' >&3
+echo CXX_FOR_BUILD='${CXX_FOR_BUILD:-'$CXX'}' >&3
diff --git a/configure.in b/configure.in
index cad162f..f7a4853 100755
--- a/configure.in
+++ b/configure.in
@@ -1303,6 +1303,14 @@ echo "********************************************************************"
 echo ""
 
 dnl ===================================================================
+dnl checks build and host OSes
+dnl ===================================================================
+AC_CANONICAL_SYSTEM
+
+CROSS_COMPILING=$cross_compiling
+AC_SUBST(CROSS_COMPILING)
+
+dnl ===================================================================
 dnl check for required programs (grep, awk, sed, bash)
 dnl ===================================================================
 cat /dev/null > warn
@@ -1347,42 +1355,6 @@ fi
 AC_SUBST(GNUTAR)
 
 dnl ===================================================================
-dnl Checks for --with-local-solenv invocation
-dnl TODO: Is this still required?
-dnl ===================================================================
-AC_MSG_CHECKING([for solenv environment])
-if test -z "$with_local_solenv"; then
-   LOCAL_SOLENV="DEFAULT"
-   AC_MSG_RESULT([default])
-else
-   LOCAL_SOLENV=$with_local_solenv
-   AC_MSG_RESULT([$with_local_solenv])
-fi
-AC_SUBST(LOCAL_SOLENV)
-
-if test "$LOCAL_SOLENV" = "DEFAULT"; then
-  _solenv="./solenv"
-else
-  _solenv="$LOCAL_SOLENV"
-fi
-AC_SUBST(_solenv)
-
-if test -e $_solenv/inc/minor.mk; then
-   # Get UPD number from ./solenv/inc/minor.mk
-   UPD="`grep RSCVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
-   AC_SUBST(UPD)
-   SOURCEVERSION="`grep SOURCEVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
-   AC_SUBST(SOURCEVERSION)
-else
-   AC_MSG_ERROR([$_solenv/inc/minor.mk missing but needed for architecture/os detecion and proper environment script generation...])
-fi
-
-dnl ===================================================================
-dnl Checks for the operating system and processor.
-dnl ===================================================================
-AC_CANONICAL_HOST
-
-dnl ===================================================================
 dnl The following is a list of supported systems.
 dnl Sequential to keep the logic very simple
 dnl These values may be checked and reset later.
@@ -1449,14 +1421,16 @@ case "$host_os" in
         test_fontconfig=no
         _os=WINNT
         ;;
-    darwin*) # Mac OS X
+    darwin*) # Mac OS X or iOS
         test_gtk=yes
         test_randr=no
         test_freetype=no
         test_fontconfig=no
         test_cairo=no
         _os=Darwin
-        if test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then
+        if test "$host_cpu" = "arm"; then
+	    :
+        elif test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then
             AC_MSG_WARN([Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray])
             echo "Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray" >>warn
             enable_systray=no
@@ -1533,6 +1507,198 @@ AC_SUBST(OSVERSION)
 AC_SUBST(PTHREAD_CFLAGS)
 AC_SUBST(PTHREAD_LIBS)
 
+if test $_os = "WINNT"; then
+   AC_MSG_CHECKING([Windows build environment sanity])
+   dnl ===================================================================
+   dnl Sanity check! Native windows programs cannot use cygwin symlinks!
+   dnl ===================================================================
+   dnl As long as awk instead of $AWK is used somewhere in the sources,
+   dnl check for $AWK and awk. $AWK is pointing to gawk in cygwin.
+      if test -L $AWK -o -L `which awk` -o -L `which tar` -o -L `which gunzip` ; then
+         AC_MSG_ERROR([$AWK, awk, tar or gunzip is a Cygwin symlink!
+Native Windows programs cannot use Cygwin symlinks. Remove the symbolic
+link, and copy the program to the name of the link.])
+      fi
+   dnl ===================================================================
+   dnl If $CC is set to a MinGW compiler, e.g. "gcc -mno-cygwin" enable
+   dnl $WITH_MINGW
+   dnl ===================================================================
+      if test -n "$CC";then
+         if test "`$CC -dumpmachine 2>/dev/null | $SED -e 's/^.*-//'`" = "mingw32"; then
+            WITH_MINGW="yes"
+         fi
+      fi
+   dnl ===================================================================
+   if test "$WITH_MINGW" = "yes" ; then
+      if test -z "$CC"; then
+         CC="gcc -mno-cygwin"
+         CXX="g++ -mno-cygwin"
+      fi
+   fi
+   AC_MSG_RESULT([ok])
+fi
+AC_SUBST(WITH_MINGW)
+
+dnl ===================================================================
+dnl Extra check for Windows. cygwin builds need gcc to build dmake
+dnl and g++ to build guw.exe although MS cl (or MinGW) is used to
+dnl build LibO.
+dnl ===================================================================
+if test "_os" = "WINNT" ; then
+   AC_MSG_CHECKING([for Cygwin gcc/g++])
+   if which gcc > /dev/null && which g++ > /dev/null ; then
+      AC_MSG_RESULT([found])
+   else
+      AC_MSG_ERROR([Cygwin gcc and g++ are needed, please install them.])
+   fi
+fi
+
+dnl ===================================================================
+dnl  Checks for C compiler,
+dnl  The check for the C++ compiler is later on.
+dnl ===================================================================
+GCC_HOME_SET="true"
+AC_MSG_CHECKING([gcc home])
+if test -z "$with_gcc_home"; then
+   if test -n "$enable_icecream" && test "$enable_icecream" != "no" ; then
+      GCC_HOME="/opt/icecream"
+   else
+      GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
+      GCC_HOME_SET="false"
+   fi
+else
+    GCC_HOME="$with_gcc_home"
+fi
+AC_MSG_RESULT($GCC_HOME)
+AC_SUBST(GCC_HOME)
+
+if test "$GCC_HOME_SET" = "true" ; then
+   if test -z "$CC"; then
+      CC="$GCC_HOME/bin/gcc"
+   fi
+   if test -z "$CXX"; then
+      CXX="$GCC_HOME/bin/g++"
+   fi
+fi
+
+dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
+if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then
+   AC_PROG_CC
+fi
+
+COMPATH=`dirname "$CC"`
+if test "$COMPATH" = "." ; then
+    AC_PATH_PROGS(COMPATH, $CC)
+    dnl double square bracket to get single because of M4 quote...
+    COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`;
+fi
+COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`;
+
+dnl ===================================================================
+dnl  Test the gcc version,  3 is OK
+dnl ===================================================================
+if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) -a "$GCC" = "yes"; then
+    AC_MSG_CHECKING([the GNU C compiler version])
+   _gcc_version=`$CC -dumpversion`
+   _gcc_major=`echo $_gcc_version | $AWK -F. '{ print \$1 }'`
+   GCCVER=`echo $_gcc_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
+
+   if test "$_os" = "Darwin" -a "$host_cpu" != "arm" -a "$GCCVER" -ge "040100" ; then
+      if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then
+         export CC=$GCC_HOME/bin/gcc-4.0
+          dnl  export CC to have it available in set_soenv -> config.guess
+         GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
+         if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then
+            GCCVER=$GCCVER2
+         fi
+      fi
+      if test "$GCCVER" -ge "040100" ; then
+         AC_MSG_ERROR([You need to use the gcc-4.0 compiler (gcc $_gcc_version won't work with the MacOSX10.4u.sdk) - set CC accordingly])
+      else
+         AC_MSG_RESULT([implicitly using CC=$CC])
+      fi
+   else
+      AC_MSG_RESULT([checked (gcc $_gcc_version)])
+   fi
+   if test "$_os" = "SunOS"; then
+      AC_MSG_CHECKING([gcc linker])
+      if $CC -Wl,--version 2>&1 |head -n 1| grep -v GNU > /dev/null;then
+          AC_MSG_ERROR([failed (not GNU ld). Use GNU ld instead of Sun ld on Solaris])
+      fi
+      AC_MSG_RESULT([ok (GNU ld)])
+   fi
+fi
+
+HAVE_LD_BSYMBOLIC_FUNCTIONS=
+if test "$GCC" = "yes"; then
+   AC_MSG_CHECKING( for -Bsymbolic-functions linker support )
+   bsymbolic_functions_ldflags_save=$LDFLAGS
+   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo"
+   AC_LINK_IFELSE([AC_LANG_PROGRAM([
+   #include <stdio.h>
+   ],[
+    printf ("hello world\n");
+   ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
+   if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then
+     AC_MSG_RESULT( found )
+   else
+     AC_MSG_RESULT( not found )
+   fi
+   LDFLAGS=$bsymbolic_functions_ldflags_save
+fi
+AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
+
+dnl ===================================================================
+dnl Set up a different compiler to produce tools to run on the build
+dnl machine when doing cross-compilation
+dnl ===================================================================
+
+if test "$cross_compiling" = "yes"; then
+  export tmpdir=`mktemp -d conf.XXXXXX`
+  eval `(unset CC CXX CFLAGS
+    autoconf conf-for-build.in >$tmpdir/conf-for-build
+    cd $tmpdir
+    sh ./conf-for-build 3>&1 >/dev/null)`
+  rm -rf $tmpdir
+  unset tmpdir
+else
+  CC_FOR_BUILD="$CC"
+  CXX_FOR_BUILD="$CXX"
+fi
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CXX_FOR_BUILD)
+
+dnl ===================================================================
+dnl Checks for --with-local-solenv invocation
+dnl TODO: Is this still required?
+dnl ===================================================================
+AC_MSG_CHECKING([for solenv environment])
+if test -z "$with_local_solenv"; then
+   LOCAL_SOLENV="DEFAULT"
+   AC_MSG_RESULT([default])
+else
+   LOCAL_SOLENV=$with_local_solenv
+   AC_MSG_RESULT([$with_local_solenv])
+fi
+AC_SUBST(LOCAL_SOLENV)
+
+if test "$LOCAL_SOLENV" = "DEFAULT"; then
+  _solenv="./solenv"
+else
+  _solenv="$LOCAL_SOLENV"
+fi
+AC_SUBST(_solenv)
+
+if test -e $_solenv/inc/minor.mk; then
+   # Get UPD number from ./solenv/inc/minor.mk
+   UPD="`grep RSCVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
+   AC_SUBST(UPD)
+   SOURCEVERSION="`grep SOURCEVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
+   AC_SUBST(SOURCEVERSION)
+else
+   AC_MSG_ERROR([$_solenv/inc/minor.mk missing but needed for architecture/os detecion and proper environment script generation...])
+fi
+
 dnl ===================================================================
 dnl Set the ENABLE_CRASHDUMP variable.
 dnl ===================================================================
@@ -1807,155 +1973,6 @@ AC_SUBST(DICT_SYSTEM_DIR)
 AC_SUBST(HYPH_SYSTEM_DIR)
 AC_SUBST(THES_SYSTEM_DIR)
 
-if test $_os = "WINNT"; then
-   AC_MSG_CHECKING([Windows build environment sanity])
-   dnl ===================================================================
-   dnl Sanity check! Native windows programs cannot use cygwin symlinks!
-   dnl ===================================================================
-   dnl As long as awk instead of $AWK is used somewhere in the sources,
-   dnl check for $AWK and awk. $AWK is pointing to gawk in cygwin.
-      if test -L $AWK -o -L `which awk` -o -L `which tar` -o -L `which gunzip` ; then
-         AC_MSG_ERROR([$AWK, awk, tar or gunzip is a cygwin symlink!
-Native windows programs cannot use cygwin symlinks. Remove the symbolic
-link, and copy the program to the name of the link.])
-      fi
-   dnl ===================================================================
-   dnl Another sanity check! More a band-aid. winenv.* adds guw.exe to
-   dnl CC and CXX but the configure checks here assume that guw.exe
-   dnl (if needed at all) is not yet present.
-   dnl ===================================================================
-   CC=`echo $CC | $SED "s/^guw.exe //"`
-   CXX=`echo $CXX | $SED "s/^guw.exe //"`
-   dnl ===================================================================
-   dnl If $CC is set to a MinGW compiler, e.g. "gcc -mno-cygwin" enable
-   dnl $WITH_MINGW
-   dnl ===================================================================
-      if test -n "$CC";then
-         if test "`$CC -dumpmachine 2>/dev/null | $SED -e 's/^.*-//'`" = "mingw32"; then
-            WITH_MINGW="yes"
-         fi
-      fi
-   dnl ===================================================================
-   if test "$WITH_MINGW" = "yes" ; then
-      if test -z "$CC"; then
-         CC="gcc -mno-cygwin"
-         CXX="g++ -mno-cygwin"
-      fi
-   fi
-   AC_MSG_RESULT([ok])
-fi
-AC_SUBST(WITH_MINGW)
-
-dnl ===================================================================
-dnl Extra check for Windows. cygwin builds need gcc to build dmake
-dnl and g++ to build guw.exe although MS cl (or MinGW) is used to
-dnl build LibO.
-dnl ===================================================================
-if test "$_os" = "WINNT" ; then
-   AC_MSG_CHECKING([for cygwin gcc/g++])
-   if which gcc > /dev/null && which g++ > /dev/null ; then
-      AC_MSG_RESULT([found])
-   else
-      AC_MSG_ERROR([cygwin gcc and g++ are needed, please install them.])
-   fi
-fi
-
-
-dnl ===================================================================
-dnl  Checks for c compiler,
-dnl  The check for the c++ compiler is later on.
-dnl ===================================================================
-GCC_HOME_SET="true"
-AC_MSG_CHECKING([gcc home])
-if test -z "$with_gcc_home"; then
-   if test -n "$enable_icecream" && test "$enable_icecream" != "no" ; then
-      GCC_HOME="/opt/icecream"
-   else
-      GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
-      GCC_HOME_SET="false"
-   fi
-else
-    GCC_HOME="$with_gcc_home"
-fi
-AC_MSG_RESULT($GCC_HOME)
-AC_SUBST(GCC_HOME)
-
-if test "$GCC_HOME_SET" = "true" ; then
-   if test -z "$CC"; then
-      CC="$GCC_HOME/bin/gcc"
-   fi
-   if test -z "$CXX"; then
-      CXX="$GCC_HOME/bin/g++"
-   fi
-fi
-
-dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
-if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then
-   AC_PROG_CC
-fi
-
-COMPATH=`dirname "$CC"`
-if test "$COMPATH" = "." ; then
-    AC_PATH_PROGS(COMPATH, $CC)
-    dnl double square bracket to get single because of M4 quote...
-    COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`;
-fi
-COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`;
-
-dnl ===================================================================
-dnl  Test the gcc version,  3 is OK
-dnl ===================================================================
-if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) -a "$GCC" = "yes"; then
-    AC_MSG_CHECKING([the GNU gcc compiler version])
-   _gcc_version=`$CC -dumpversion`
-   _gcc_major=`echo $_gcc_version | $AWK -F. '{ print \$1 }'`
-   GCCVER=`echo $_gcc_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
-
-   if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then
-      if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then
-         export CC=$GCC_HOME/bin/gcc-4.0
-          dnl  export CC to have it available in set_soenv -> config.guess
-         GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
-         if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then
-            GCCVER=$GCCVER2
-         fi
-      fi
-      if test "$GCCVER" -ge "040100" ; then
-         AC_MSG_ERROR([You need to use the gcc-4.0 compiler (gcc $_gcc_version won't work with the MacOSX10.4u.sdk) - set CC accordingly])
-      else
-         AC_MSG_RESULT([implicitly using CC=$CC])
-      fi
-   else
-      AC_MSG_RESULT([checked (gcc $_gcc_version)])
-   fi
-   if test "$_os" = "SunOS"; then
-      AC_MSG_CHECKING([gcc linker])
-      if $CC -Wl,--version 2>&1 |head -n 1| grep -v GNU > /dev/null;then
-          AC_MSG_ERROR([failed (not GNU ld). Use GNU ld instead of Sun ld on Solaris])
-      fi
-      AC_MSG_RESULT([ok (GNU ld)])
-   fi
-fi
-
-HAVE_LD_BSYMBOLIC_FUNCTIONS=
-if test "$GCC" = "yes"; then
-   AC_MSG_CHECKING( for -Bsymbolic-functions linker support )
-   bsymbolic_functions_ldflags_save=$LDFLAGS
-   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo"
-   AC_LINK_IFELSE([AC_LANG_PROGRAM([
-   #include <stdio.h>
-   ],[
-    printf ("hello world\n");
-   ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
-   if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then
-     AC_MSG_RESULT( found )
-   else
-     AC_MSG_RESULT( not found )
-   fi
-   LDFLAGS=$bsymbolic_functions_ldflags_save
-fi
-AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
-
 dnl ===================================================================
 dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
 dnl ===================================================================
@@ -2041,21 +2058,22 @@ if test "$GCC" = "yes" ; then
    else
       hash_styles="$with_linker_hash_style"
    fi
-   
+
    for hash_style in $hash_styles ; do
       test "$HAVE_LD_HASH_STYLE" = "TRUE" && continue
       hash_style_ldflags_save=$LDFLAGS
       LDFLAGS="$LDFLAGS -Wl,--hash-style=$hash_style"
 
-      AC_TRY_RUN([
-#include <stdio.h>
-
-int main(char argc, char** argv) {
-   printf ("");
-   return 0;
-}
-       ], HAVE_LD_HASH_STYLE=TRUE; WITH_LINKER_HASH_STYLE=$hash_style, HAVE_LD_HASH_STYLE=FALSE)
-
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([
+	  #include <stdio.h>
+	],[
+	  printf ("");
+	])],
+	[ if ./conftest$EXEEXT; then 
+	    HAVE_LD_HASH_STYLE=TRUE
+	    WITH_LINKER_HASH_STYLE=$hash_style
+          fi], 
+	[HAVE_LD_HASH_STYLE=FALSE])
        LDFLAGS=$hash_style_ldflags_save
    done
    
@@ -2462,7 +2480,7 @@ fi
 AC_SUBST([VALGRIND_CFLAGS])
 
 dnl ===================================================================
-dnl Testing for c++ compiler and version...
+dnl Testing for C++ compiler and version...
 dnl ===================================================================
 if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then
    if test -e "$CC"; then
@@ -2482,7 +2500,7 @@ if test "$GXX" = "yes"; then
    _gpp_version=`$CXX -dumpversion`
    _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'`
 
-   if test "$_os" = "Darwin" -a "$_gpp_majmin" -ge "401" ; then
+   if test "$_os" = "Darwin" -a "$host_cpu" != "arm" -a "$_gpp_majmin" -ge "401" ; then
       if test -z "$save_CXX" -a -x "$GCC_HOME/bin/g++-4.0" ; then
          CXX=$GCC_HOME/bin/g++-4.0
          _gpp_majmin_2=`"$CXX" -dumpversion | $AWK -F. '{ print \$1*100+\$2 }'`
diff --git a/download b/download
index d45489c..07bf86a 100755
--- a/download
+++ b/download
@@ -272,5 +272,5 @@ done
 
 [ -x "post_download" ] || { echo "'post_download' script not found, run ./autogen.sh." ; exit 1 ; }
 
-./post_download || exit 1
+./post_download --build=$BUILD_ALIAS --host=$HOST_ALIAS || exit 1
 # vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/post_download.in b/post_download.in
index ce09523..14e9737 100755
--- a/post_download.in
+++ b/post_download.in
@@ -24,7 +24,7 @@ case "$build_os" in
     cygwin*) # Windows
         _os=WINNT
         ;;
-    darwin*) # Mac OS X
+    darwin*) # Mac OS X or iOS
         _os=Darwin
         ;;
     freebsd*)
diff --git a/set_soenv.in b/set_soenv.in
index 45414af..408bf4b 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -8,7 +8,7 @@
 # Description:
 # set_soenv generates a file that contains all necessary
 # environment variables for the build proces of OpenOffice
-# on Linux, NetBSD, Solaris, Windows NT and Mac OS X/Darwin.
+# on Linux, NetBSD, Solaris, Windows, Mac OS X and iOS.
 #
 # Program steps.
 #
@@ -102,8 +102,7 @@ my ( $dmake, $build, $build_client, $nmake, $mkout, $deliver, $zipdep );
 #
 # $platform is needed for PathFormat()
 #
-$platform          = `./config.guess`;
-chomp( $platform );
+$platform       = '@host_alias@';
 
 $UPD            = '@UPD@';          # the project's UPD
 $newline        = "\n";             # Perl newline character
@@ -706,17 +705,29 @@ elsif ( $platform =~ m/cygwin/ )
   }
 }
 elsif ( $platform =~ m/darwin/ )
-{     print "Setting Mac OS X/Darwin specific values... ";
-      $BIG_SVX        = "TRUE";
+{     $BIG_SVX        = "TRUE";
       $COM            = "GCC";
       $COMPATH        = '@COMPATH@';
-      if ($platform =~ m/^powerpc/)
+      if ($platform =~ m/^arm/)
+      {
+          print "Setting values for iOS... ";
+          $outfile        = "iOSEnv.Set.sh";
+          $CPU            = "R";
+          $CPUNAME        = "ARM";
+          $OUTPATH        = "unxiosr";
+          $GUI            = "UNX";
+          $OS             = "IOS";
+          $GUIBASE        = "cocoatouch";
+      }
+      elsif ($platform =~ m/^powerpc/)
       {
           print "Setting values for Mac OS X/Darwin on PowerPC... ";
           $outfile        = "MacOSXPPCEnv.Set.sh";
           $CPU            = "P";
           $CPUNAME        = "POWERPC";
           $OUTPATH        = "unxmacxp";
+          $OS             = "MACOSX";
+          $GUI            = "UNX";
       }
       else
       {
@@ -725,13 +736,13 @@ elsif ( $platform =~ m/darwin/ )
           $CPU            = "I";
           $CPUNAME        = "INTEL";
           $OUTPATH        = "unxmacxi";
+          $OS             = "MACOSX";
+          $GUI            = "UNX";
       }
-      $GUI            = "UNX";
       $GVER           = "VCL";
       $INPATH         = $OUTPATH.$PROEXT;
-      $OS             = "MACOSX";
       $PATH_SEPERATOR = $ps;
-      # GUIBASE is set below; may be "aqua" or "unx".
+      # GUIBASE is set below for Mac OS X; may be "aqua" or "unx".
 }
 elsif ( $platform =~ m/dragonfly/ )
 {
@@ -933,7 +944,7 @@ $XINC                 = PathFormat('@XINC@'); # X11 includes
 
 
 # Mac OS X/Darwin only variables.
-if ( $platform =~ m/darwin/ )
+if ( $platform =~ m/darwin/ && $platform !~ m/^arm/)
 {  $FRAMEWORKSHOME       = $ds."Developer".$ds."SDKs".$ds."MacOSX10.4u.sdk".$ds."System".$ds."Library".$ds."Frameworks";
    if ( $XLIB eq "no_x_libraries" ) {
       $GUIBASE  = "aqua";
@@ -1032,11 +1043,11 @@ elsif ($platform =~ m/linux|netbsd|freebsd|aix|openbsd|dragonfly/)
 {
    $SOLAREXTRALIB     = $L.$par_dir.$LIB64;
 }
-elsif ($platform =~ m/darwin/)
+elsif ($platform =~ m/darwin/ && $platform !~ m/^arm/)
 {  $SOLAREXTRALIB     = $L.$LIB.
                         $L.$USR.$LIB;
 }
-elsif ($platform !~ m/cygwin/ )
+elsif ($platform !~ m/cygwin/ && $platform !~ m/^arm-apple/)
 {  AddWarning( "set_soenv", "$platform not configured for linkage create libraries" );
 }
 
@@ -1424,7 +1435,7 @@ elsif ($platform =~ m/cygwin/)
        $SOLARINC   .= $I.PathFormat('@DIRECTXSDK_HOME@').$INCLUDE;
    }
 }
-elsif ($platform =~ m/darwin/)
+elsif ($platform =~ m/darwin/ && $platform !~ m/^arm/)
 {  $SOLARINC         .= $I.$FRAMEWORKSHOME.$ds."JavaVM.framework".$ds."Versions".$ds."Current".$ds."Headers".
                         $I.$FRAMEWORKSHOME.$ds."JavaVM.framework".$ds."Headers";
    # [ed] 6/15/02 Add in X11 headers as appropriate for the build
@@ -1433,6 +1444,9 @@ elsif ($platform =~ m/darwin/)
                         $I.$XINC.$ds."freetype2";
    }
 }
+elsif ($platform =~ m/^arm-apple/)
+{
+}
 else
 {  AddWarning( "set_soenv", "$platform not configured for system dependant include dir" );
 }
@@ -1631,7 +1645,7 @@ ToFile( "DYNAMIC_CRT",       $DYNAMIC_CRT,       "e" );
 ToFile( "SET_EXCEPTIONS",    $SET_EXCEPTIONS,    "e" );
 ToFile( "use_shl_versions",  $use_shl_versions,  "e" );
 ToFile( "FLIPCMD",           $FLIPCMD,           "e" );
-if ( $platform =~ m/darwin/ )
+if ( $platform =~ m/darwin/ && $platform !~ m/^arm/)
 {
 # MAXOSX_DEPLOYMENT_TARGET : The minimum version required to run the build,
 # build can assume functions/libraries of that version to be available
@@ -1741,6 +1755,11 @@ ToFile( "SOLARINC",          $SOLARINC,          "e" );
 ToFile( "COMP_ENV",          $COMP_ENV,          "e" );
 ToFile( "JAVAHOME",          $JAVAHOME,          "e" );
 ToFile( "CC",                $CC,                "e" );
+ToFile( "CROSS_COMPILING",   "@CROSS_COMPILING@","e" );
+ToFile( "BUILD_ALIAS",       "@build_alias@",    "e" );
+ToFile( "HOST_ALIAS",        "@host_alias@",     "e" );
+ToFile( "CC_FOR_BUILD",      "@CC_FOR_BUILD@",   "e" );
+ToFile( "CXX_FOR_BUILD",     "@CXX_FOR_BUILD@",  "e" );
 ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
 		"@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
 ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index b173717..72e41e5 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -163,6 +163,8 @@ else ifeq ($(OS),DRAGONFLY)
 include $(GBUILDDIR)/platform/dragonfly.mk
 else ifeq ($(OS),SOLARIS)
 include $(GBUILDDIR)/platform/solaris.mk
+else ifeq ($(OS),IOS)
+include $(GBUILDDIR)/platform/ios.mk
 else
 $(eval $(call gb_Output_error,Unsupported OS: $(OS)))
 endif
diff --git a/solenv/gbuild/platform/ios.mk b/solenv/gbuild/platform/ios.mk
new file mode 100644
index 0000000..6bb7b37
--- /dev/null
+++ b/solenv/gbuild/platform/ios.mk
@@ -0,0 +1,466 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+GUI := UNX
+COM := GCC
+
+# Darwin mktemp -t expects a prefix, not a pattern
+gb_MKTEMP := /usr/bin/mktemp -t gbuild.
+
+gb_CC := "gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk"
+gb_CXX := "g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk"
+gb_GCCP := "gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk"
+gb_AR := ar
+gb_AWK := awk
+gb_CLASSPATHSEP := :
+
+# use CC/CXX if they are nondefaults
+ifneq ($(origin CC),default)
+gb_CC := $(CC)
+gb_GCCP := $(CC)
+endif
+ifneq ($(origin CXX),default)
+gb_CXX := $(CXX)
+endif
+
+gb_OSDEFS := \
+	-D$(OS) \
+	-D_PTHREADS \
+	-DUNIX \
+	-DUNX \
+	-D_REENTRANT \
+	-DNO_PTHREAD_PRIORITY \
+	$(EXTRA_CDEFS) \
+
+gb_COMPILERDEFS := \
+	-D$(COM) \
+	-DCPPU_ENV=gcc3 \
+	-DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
+
+gb_CPUDEFS := -DARM32
+
+gb_SDKDIR := /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk
+
+
+gb_CFLAGS := \
+	-isysroot $(gb_SDKDIR) \
+	-Wall \
+	-Wendif-labels \
+	-Wextra \
+	-Wshadow \
+	-fPIC \
+	-fmessage-length=0 \
+	-fno-common \
+	-fno-strict-aliasing \
+	-pipe \
+
+gb_CXXFLAGS := \
+	-isysroot $(gb_SDKDIR) \
+	-Wall \
+	-Wendif-labels \
+	-Wextra \
+	-Wno-ctor-dtor-privacy \
+	-Wno-non-virtual-dtor \
+	-fmessage-length=0 \
+	-fno-common \
+	-fno-strict-aliasing \
+	-fsigned-char \
+	-malign-natural \
+	-pipe \
+	#-Wshadow \ break in compiler headers already
+	#-fsigned-char \ might be removed?
+	#-malign-natural \ might be removed?
+
+# these are to get g++ to switch to Objective-C++ mode
+# (see toolkit module for a case where it is necessary to do it this way)
+gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions
+
+gb_OBJCFLAGS := -x objective-c
+
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -Werror
+gb_CXXFLAGS_WERROR := -Werror
+endif
+
+gb_LinkTarget_EXCEPTIONFLAGS := \
+	-DEXCEPTIONS_ON \
+	-fexceptions \
+	-fno-enforce-eh-specs \
+
+gb_LinkTarget_NOEXCEPTIONFLAGS := \
+	-DEXCEPTIONS_OFF \
+	-fno-exceptions \
+
+gb_LinkTarget_LDFLAGS := \
+	-Wl,-syslibroot,$(gb_SDKDIR) \
+	$(subst -L../lib , ,$(SOLARLIB)) \
+#man ld says: obsolete	-Wl,-multiply_defined,suppress \
+
+ifneq ($(gb_DEBUGLEVEL),0)
+gb_COMPILEROPTFLAGS := -O0
+else
+gb_COMPILEROPTFLAGS := -O2
+endif
+
+gb_COMPILERNOOPTFLAGS := -O0
+
+# Helper class
+
+gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
+
+gb_Helper_set_ld_path := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# convert parametters filesystem root to native notation
+# does some real work only on windows, make sure not to
+# break the dummy implementations on unx*
+define gb_Helper_convert_native
+$(1)
+endef
+
+
+# CObject class
+
+define gb_CObject__command
+$(call gb_Output_announce,$(2),$(true),C  ,3)
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
+	$(gb_CC) \
+		$(DEFS) $(CFLAGS) \
+		-c $(3) \
+		-o $(1) \
+		-MMD -MT $(call gb_CObject_get_target,$(2)) \
+		-MF $(call gb_CObject_get_dep_target,$(2)) \
+		-I$(dir $(3)) \
+		$(INCLUDE))
+endef
+
+
+# CxxObject class
+
+# N.B: $(CXXFLAGS) may contain -x objective-c++, which must come before -c
+define gb_CxxObject__command
+$(call gb_Output_announce,$(2),$(true),CXX,3)
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
+	$(gb_CXX) \
+		$(DEFS) $(CXXFLAGS) \
+		-c $(3) \
+		-o $(1) \
+		-MMD -MT $(call gb_CxxObject_get_target,$(2)) \
+		-MF $(call gb_CxxObject_get_dep_target,$(2)) \
+		-I$(dir $(3)) \
+		$(INCLUDE_STL) $(INCLUDE))
+endef
+
+
+# ObjCxxObject class
+
+define gb_ObjCxxObject__command
+$(call gb_Output_announce,$(2),$(true),OCX,3)
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	mkdir -p $(dir $(call gb_ObjCxxObject_get_dep_target,$(2))) && \
+	$(gb_CXX) \
+		$(DEFS) $(OBJCXXFLAGS) \
+		-c $(3) \
+		-o $(1) \
+		-MMD -MT $(call gb_ObjCxxObject_get_target,$(2)) \
+		-MF $(call gb_ObjCxxObject_get_dep_target,$(2)) \
+		-I$(dir $(3)) \
+		$(INCLUDE_STL) $(INCLUDE))
+endef
+
+# ObjCObject class
+
+define gb_ObjCObject__command
+$(call gb_Output_announce,$(2),$(true),OCC,3)
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	mkdir -p $(dir $(call gb_ObjCObject_get_dep_target,$(2))) && \
+	$(gb_CC) \
+		$(DEFS) $(OBJCFLAGS) \
+		-c $(3) \
+		-o $(1) \
+		-MMD -MT $(call gb_ObjCObject_get_target,$(2)) \
+		-MF $(call gb_ObjCObject_get_dep_target,$(2)) \
+		-I$(dir $(3)) \
+		$(INCLUDE_STL) $(INCLUDE))
+endef
+
+
+# LinkTarget class
+
+define gb_LinkTarget__get_rpath_for_layer
+$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
+endef
+
+gb_LinkTarget__RPATHS := \
+	URELIB:@__________________________________________________URELIB/ \
+	UREBIN: \
+	OOO:@__________________________________________________OOO/ \
+	BRAND: \
+	SDKBIN: \
+	NONEBIN: \
+
+define gb_LinkTarget__get_installname
+$(if $(2),-install_name '$(2)$(1)',)
+endef
+
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
+gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_OBJCFLAGS) $(gb_COMPILEROPTFLAGS)
+
+ifeq ($(gb_SYMBOL),$(true))
+gb_LinkTarget_CFLAGS += -g
+gb_LinkTarget_CXXFLAGS += -g
+gb_LinkTarget_OBJCXXFLAGS += -g
+gb_LinkTarget_OBJCFLAGS += -g
+endif
+
+gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
+gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+
+# FIXME framework handling very hackish
+define gb_LinkTarget__get_liblinkflags
+$(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \
+$(addprefix -framework ,$(filter $(gb_Library__FRAMEWORKS),$(1)))
+endef
+
+define gb_LinkTarget__get_layer
+$(if $(filter Executable,$(1)),\
+	$$(call gb_Executable_get_layer,$(2)),\
+	$$(call gb_Library_get_layer,$(2)))
+endef
+
+# FIXME the DYLIB_FILE mess is only necessary because
+# solver layout is different from installation layout
+define gb_LinkTarget__command_dynamiclink
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	DYLIB_FILE=`$(gb_MKTEMP)` && \
+	$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
+		$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+		$(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+		$(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \
+	$(gb_CXX) \
+		$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+		$(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+		$(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
+		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+		$(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \
+		$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
+		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
+		-o $(1) \
+		`cat $${DYLIB_FILE}` && \
+	$(if $(filter Library CppunitTest,$(TARGETTYPE)),\
+		$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \
+		ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \
+	rm -f $${DYLIB_FILE})
+endef
+
+# parameters: 1-linktarget 2-cobjects 3-cxxobjects
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+	mkdir -p $(dir $(1)) && \
+	$(gb_AR) -rsu $(1) \
+		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+		$(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \
+		$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
+		2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
+
+
+# Library class
+
+gb_Library_DEFS :=
+gb_Library_TARGETTYPEFLAGS := -dynamiclib -single_module
+gb_Library_SYSPRE := lib
+gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
+gb_Library_PLAINEXT := .dylib
+gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT)
+
+ifeq ($(CPUNAME),INTEL)
+gb_Library_OOOEXT := mxi$(gb_Library_PLAINEXT)
+gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
+else # ifeq ($(CPUNAME),POWERPC)
+gb_Library_OOOEXT := mxp$(gb_Library_PLAINEXT)
+gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
+endif
+
+gb_Library__FRAMEWORKS := \
+
+gb_Library_PLAINLIBS_NONE += \
+	jpeg \
+	m \
+	pthread \
+	z \
+
+gb_Library_FILENAMES := \
+	$(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \
+	$(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+	$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+	$(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+	$(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
+	$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
+	$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \
+	$(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
+	$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
+
+
+gb_Library_LAYER := \
+	$(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
+	$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
+	$(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+	$(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
+	$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
+	$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
+	$(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+	$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
+
+define gb_Library_get_rpath
+$(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1))))
+endef
+
+define gb_Library_Library_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1))
+
+endef
+
+
+# StaticLibrary class
+
+gb_StaticLibrary_DEFS :=
+gb_StaticLibrary_SYSPRE := lib
+gb_StaticLibrary_PLAINEXT := .a
+gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
+
+gb_StaticLibrary_FILENAMES := \
+	$(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \
+	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
+
+gb_StaticLibrary_StaticLibrary_platform =
+
+
+# Executable class
+
+gb_Executable_EXT :=
+gb_Executable_TARGETTYPEFLAGS := -bind_at_load
+
+gb_Executable_LAYER := \
+	$(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
+	$(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
+	$(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
+	$(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
+	$(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
+
+
+define gb_Executable_get_rpath
+$(call gb_LinkTarget__get_installname,$(1),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1))))
+endef
+
+define gb_Executable_Executable_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Executable_get_layer,$(1))
+
+endef
+
+
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_CppunitTest_SYSPRE := libtest_
+gb_CppunitTest_EXT := .dylib
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := NONE
+
+endef
+
+# JunitTest class
+
+define gb_JunitTest_JunitTest_platform
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+	-Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/OpenOffice.org.app/Contents/MacOS/soffice}" \
+	-Dorg.openoffice.test.arg.env=DYLD_LIBRARY_PATH \
+	-Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
+
+endef
+
+# SdiTarget class
+
+gb_SdiTarget_SVIDLPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# SrsPartMergeTarget
+
+gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# SrsPartTarget class
+
+gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc
+gb_SrsPartTarget_RSCCOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET)
+
+define gb_SrsPartTarget__command_dep
+$(call gb_Helper_abbreviate_dirs,\
+	$(gb_GCCP) \
+		-MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \
+		$(INCLUDE) \
+		$(DEFS) \
+		-c -x c++-header $(2) \
+		-o $(call gb_SrsPartTarget_get_dep_target,$(1)))
+endef
+
+
+# ComponentTarget
+
+gb_XSLTPROCPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_Library_COMPONENTPREFIXES := \
+	OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
+	URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
+
+
+# vim: set noet sw=4:
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index c8f168c..9add3f4 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -527,6 +527,10 @@ RSC_LANG_ISO+:=$(completelangiso)
 TARGETTYPE=CUI
 .ENDIF
 
+.IF "$(TARGETPLAFORM)"==""
+TARGETPLATFORM=HOST
+.ENDIF
+
 # --- Pfade setzen -------------------------------------------------
 
 # Output-Pfad
@@ -884,7 +888,11 @@ CDEFS+=-DTIMELOG
 
 CDEFSCXX=
 CDEFSOBJ=
+.IF "$(OS)"=="IOS"
+CDEFSSLO=
+.ELSE
 CDEFSSLO=-DSHAREDLIB -D_DLL_
+.ENDIF
 CDEFSGUI=-DGUI
 CDEFSCUI=-DCUI
 #CDEFSMT=-DMULTITHREAD
diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk
index 25b2fa0..58a9e2b 100644
--- a/solenv/inc/unx.mk
+++ b/solenv/inc/unx.mk
@@ -151,6 +151,10 @@
 .INCLUDE : unxmacxi.mk
 .ENDIF
 
+.IF "$(COM)$(OS)$(CPU)" == "GCCIOSR"
+.INCLUDE : unxiosr.mk
+.ENDIF
+
 .IF "$(COM)$(OS)$(CPU)" == "GCCLINUXM"
 .INCLUDE : unxlngmips.mk
 .ENDIF
diff --git a/solenv/inc/unxiosr.mk b/solenv/inc/unxiosr.mk
new file mode 100644
index 0000000..07877b8
--- /dev/null
+++ b/solenv/inc/unxiosr.mk
@@ -0,0 +1,75 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# --- Unix Environment for iOS cross-compilation -------------
+
+.IF "$(TARGETPLATFORM)"=="BUILD"
+CC:=$(CC_FOR_BUILD)
+CXX:=$(CXX_FOR_BUILD)
+.ENDIF
+
+CFLAGS=-c $(EXTRA_CFLAGS)
+
+LINKC*=$(CC)
+LINK*=$(CXX)
+
+LIBMGR*=ar
+LIBFLAGS=-r
+
+PROCESSOR_DEFINES=-DARM32
+
+DLLPOST=
+DLLPOSTFIX=
+
+# flags to enable build with symbols
+CFLAGSENABLESYMBOLS=-g
+
+# Flag for including debugging information in object files
+CFLAGSDEBUG=-g
+CFLAGSDBGUTIL=
+
+# Flag to specify output file to compiler/linker
+CFLAGSOUTOBJ=-o
+
+# # Include generic Mac OS X makefile
+# .INCLUDE : unxmacx.mk
+
+# --- general *ix settings ---
+HC=hc
+HCFLAGS=
+PATH_SEPERATOR*=:
+CDEFS+=-D__DMAKE
+
+CDEFS+=-DUNIX
+
+YACC*=yacc
+YACCFLAGS*=-d -t
+
+EXECPOST=
+SCPPOST=.ins
+DLLDEST=$(LB)
+SOLARSHAREDBIN=$(SOLARLIBDIR)
diff --git a/soltools/cpp/_unix.c b/soltools/cpp/_unix.c
index 68cd945..d132fdb 100644
--- a/soltools/cpp/_unix.c
+++ b/soltools/cpp/_unix.c
@@ -198,39 +198,4 @@ void
 }
 
 
-/* memmove is defined here because some vendors don't provide it at
-   all and others do a terrible job (like calling malloc) */
-
-#if !defined(__IBMC__) && !defined(_WIN32) && !defined(__GLIBC__)
-
-void *
-    memmove(void *dp, const void *sp, size_t n)
-{
-    unsigned char *cdp, *csp;
-
-    if (n <= 0)
-        return 0;
-    cdp = dp;
-    csp = (unsigned char *) sp;
-    if (cdp < csp)
-    {
-        do
-        {
-            *cdp++ = *csp++;
-        } while (--n);
-    }
-    else
-    {
-        cdp += n;
-        csp += n;
-        do
-        {
-            *--cdp = *--csp;
-        } while (--n);
-    }
-    return 0;
-}
-
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list