summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2011-05-07 00:25:55 +0300
committerTor Lillqvist <tml@iki.fi>2011-05-13 20:24:40 +0300
commiteaf8e0939a3d8b724dec7ff48d4ada48bbfe3ebc (patch)
treeb6c3cac34c1c8e4a88065a42362b8aa7e10a4513
parent3a44b0d21d8d37943643330d8f9aa4152e613c8f (diff)
Some initial baby steps towards cross-compilation
And some baby steps for cross-compiling for iOS in particular.
-rw-r--r--bootstrap.18
-rwxr-xr-xconf-for-build.in9
-rwxr-xr-xconfigure.in416
-rwxr-xr-xdownload2
-rwxr-xr-xpost_download.in2
-rwxr-xr-xset_soenv.in47
-rw-r--r--solenv/gbuild/gbuild.mk2
-rw-r--r--solenv/gbuild/platform/ios.mk466
-rw-r--r--solenv/inc/settings.mk8
-rw-r--r--solenv/inc/unx.mk4
-rw-r--r--solenv/inc/unxiosr.mk75
-rw-r--r--soltools/cpp/_unix.c35
12 files changed, 824 insertions, 250 deletions
diff --git a/bootstrap.1 b/bootstrap.1
index 3daa1e25321c..cae59ce82f8e 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 000000000000..196b2f12bc32
--- /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 cad162fd8385..f7a485320c19 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 d45489cb6438..07bf86aa4af1 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 ce09523a782c..14e9737e8baf 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 45414afaa5c8..408bf4be1d76 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 b173717364bb..72e41e5b90ba 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 000000000000..6bb7b3740351
--- /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 c8f168c1cf3d..9add3f4f1bf4 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 25b2fa0abd49..58a9e2bf2a7e 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 000000000000..07877b86fb8f
--- /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 05eb375e2e7a..5175e48e4ebf 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: */