summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in7
-rw-r--r--README.cross216
-rwxr-xr-xconfigure.in41
-rw-r--r--distro-configs/LibreOfficeiOS.conf1
-rw-r--r--dmake/function.c2
-rwxr-xr-xset_soenv.in3
-rwxr-xr-xsolenv/bin/build.pl19
-rw-r--r--solenv/inc/_tg_shl.mk70
-rw-r--r--solenv/inc/libs.mk4
-rw-r--r--solenv/inc/tg_shl.mk7
-rw-r--r--solenv/inc/unx.mk2
-rw-r--r--solenv/inc/unxiosr.mk3
-rw-r--r--solenv/inc/win32/jni_md.h3
13 files changed, 334 insertions, 44 deletions
diff --git a/Makefile.in b/Makefile.in
index c1d911d32cc9..bc55b978beaa 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -28,10 +28,14 @@ install:
dev-install:
@. ./*Env.Set.sh && \
cd smoketestoo_native && \
+ export SAL_USE_VCLPLUGIN="svp" && \
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ && \
+ cd @abs_builddir@ && ln -s $$SOLARVER/$$INPATH/installation/opt/ install && \
echo "" && \
echo "Developer installation finished, you can now execute:" && \
- echo "@abs_builddir@/installation/opt/program/soffice"
+ echo "cd @abs_builddir@/install/program" && \
+ echo ". ooenv" && \
+ echo "./soffice.bin"
distclean: dmake/dmake@EXEEXT_FOR_BUILD@
@. ./*Env.Set.sh && \
@@ -60,6 +64,7 @@ check: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ fetch
cd smoketestoo_native && \
export SAL_USE_VCLPLUGIN="svp" && \
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@
+ @. ./*Env.Set.sh && $$SOLARENV/bin/subsequenttests
id:
@. ./*Env.Set.sh && \
diff --git a/README.cross b/README.cross
new file mode 100644
index 000000000000..d595ab8e3d9b
--- /dev/null
+++ b/README.cross
@@ -0,0 +1,216 @@
+Cross-compiling LibreOffice
+===========================
+
+Notes on cross-compiling LibreOffice, written by Tor Lillqvist
+<tlillqvist@novell.com> <tml@iki.fi> in May, 2011.
+
+Cross-compilation of LibreOffice is not possible yet. Some initial
+work is done, "baby steps", but a lot remains. This work is highly
+experimental and done mostly in my own spare time just for the hacking
+pleasure. No promise, explicit or implied, is given that it will ever
+be finished.
+
+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.
+
+The cross-compilation experimentation is going on for three platforms:
+Windows, iOS and Android. This work is being done on the master branch
+of LibreOffice. Some other people have talked about setting up a
+separate branch for Android work, or even separate clones at github. I
+am not interested in that.
+
+
+General
+-------
+
+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
+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
+will produce code. As LibreOffice is not a compiler, the "target" term
+should not be used in the context of cross-compilation.
+
+(For a case where all three of "build", "host" and "target" are
+different: consider a gcc cross-compiler running on Windows, producing
+code for Android, where the cross-compiler itself was built on
+Linux. (This is a real case.) An interesting tidbit is that such
+configurations are called "Canadian Cross".)
+
+Even though the LibreOffice build mechanism is highly unorthodox, the
+configure script takes the normal --build and --host options like any
+GNU Autoconf -based configure script. To cross-compile, you basically
+need just to specify a suitable --host option and things should work
+out nicely. In practise, some more details might be needed. See
+examples below.
+
+
+What is so hard, then?
+----------------------
+
+Despite the fact that the configure script takes normal --build and
+--host options, that is just the beginning. In practise a lot of work
+was necessary to separate tests for "host" and "build" platforms in
+the configure script. See the git log for details. And the reasonably
+"standard" configure.in is just the top level; when we get down to the
+actual makefilery used to build the bits of LibreOffice, it gets much
+worse.
+
+
+Windows
+-------
+
+There is some support in LibreOffice already (from OpenOffice.org) for
+building it locally on Windows but with the GNU tool-chain, i.e. what
+is commonly known as MinGW. But as far as I know, that work has never
+attempted cross-compilation.
+
+This OOo-originated MinGW support attempts to support both running
+Cygwin gcc in its -mno-cygwin mode, and a native MinGW compiler. The
+-mno-cygwin mechanism in the Cygwin gcc is rapidly being obsoleted, if
+it isn't already, and I have not attempted to check that it keeps
+working. Ditto for native MinGW; if one compiles natively on Windows,
+why not use Microsoft's compiler, as OOo/LO has been build for Windows
+all the time using that and it works fine. In my opinion, it makes
+sense to use MinGW only for cross-compilation. (Because of obvious
+benefits like speed improvement, easier automation in systems like the
+openSUSE Build Servce, etc.)
+
+MinGW is available as cross-build toolchains pre-packaged in more or
+less official packages for many Linux distros including Debian, Fedora
+and openSUSE. Personally I use the mingw32 packages in the openSUSE
+Build Service, running on openSUSE.
+
+It is somewhat unclear how well thought-out the conditionals and code
+for MinGW inside the LibreOffice code actually is. The little I have
+seen of it seems a bit randomish, with copy-pasting haveing been
+preferred to factoring out differences.
+
+The autogen.lastrun I use for my MinGW cross-compilation experimentation is:
+
+CC=ccache i686-w64-mingw32-gcc
+CXX=ccache i686-w64-mingw32-g++
+CC_FOR_BUILD=ccache gcc
+CXX_FOR_BUILD=ccache g++
+--build=x86_64-unknown-linux-gnu
+--host=i686-w64-mingw32
+--with-distro=LibreOfficeWin32
+--disable-build-mozilla
+--disable-ext-nlpsolver
+--disable-ext-pdfimport
+--disable-ext-presenter-console
+--disable-ext-presenter-minimizer
+--disable-ext-report-builder
+--disable-ext-scripting-beanshell
+--disable-ext-scripting-javascript
+--disable-ext-wiki-publisher
+--disable-ext-wiki-publisher
+--disable-mozilla
+--disable-zenity
+--with-external-tar=/mnt/hemulen/ooo/git/master/src
+--with-num-cpus=1
+--with-max-jobs=1
+--with-system-altlinuxhyph
+--with-system-boost
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-hunspell
+--with-system-icu
+--with-system-jpeg
+--with-system-lpsolve
+--with-system-neon
+--with-system-openssl
+--with-system-redland
+--with-system-libwpd
+--with-system-libwps
+--with-system-libwpg
+--with-system-libxml
+--with-system-libxslt
+--with-system-mythes
+--with-system-python
+--with-system-zlib
+--with-vendor=no
+
+
+iOS
+---
+
+iOS is the operating system of Apple's mobile devices. Clearly for a
+device like the iPad it would be totally unacceptable to run a normal
+LibreOffice application with a overlapping windows and mouse-oriented
+GUI widgets. No work has been done (at least publicly) to design a
+touch GUI for LibreOffice, so the work on cross-compiling LibreOffice
+for iOS is extremely experimental, and of course partly pointless;)
+But it is interesting and fun nonetheless.
+
+Obviously it will make sense to build only a part of LibreOffice's
+code for iOS. Most likely all GUI-oriented code should be left out,
+and some iOS app that eventually wants to use the remaining bits will
+handle all its GUI in a platform-dependent manner. How well it will be
+possible to do such a split remains to be seen. As I said, this is
+highly experimental and just in its baby steps phase.
+
+Technically, one important special aspect of iOS is that apps are not
+allowed to load own dynamic libraries. (System libraries are used in
+the form of dynamic libraries, just like on MacOSX, of which iOS is a
+variant.) So all the libraries in LibreOffice that normally are shared
+libraries (DLLs on Windows, shared objects (.so) on Linux, dynamic
+libraries on MacOSX (.dylib)) need to be built as static archives
+instead. Obviously this will have some interesting consequences for
+how UNO is implemented and used. None of that has been spared much
+thought yet.
+
+The Apple tool-chain for iOS cross-building is available only for
+MacOSX, so that is where I have been doing it.
+
+Here is my autogen.lastrun for iOS:
+CXX=ccache /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk
+CC=ccache /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk
+CC_FOR_BUILD=ccache /Xcode3/usr/bin/gcc-4.0
+CXX_FOR_BUILD=ccache /Xcode3/usr/bin/g++-4.0
+--with-distro=LibreOfficeiOS
+--with-external-tar=/Volumes/ooo/git/master/src
+--with-icu-native-build-root=/Users/tml/lo-macosx/icu/unxmacxi.pro/misc/build/icu/source
+--with-num-cpus=1
+--with-max-jobs=1
+
+
+Android
+-------
+
+I don't know much about Android, but from a technical point of view it
+is a kind of Linux, of course. As far as I know it is allowed for an
+Android app to use shared objects, but if it isn't, then just the same
+approach as used on iOS will need to be used.
+
+As for the GUI, the same holds as said above for iOS.
+
+I have done my Android cross-compilation work on Linux (openSUSE in
+particular), but it could as well be done on MacOSX. The Android
+cross-buld tool-chain (the "Native Development Kit", or NDK) is
+available for Linux, MacOSX and Windows. (Trying to cross-compile from
+Windows will probably drive you insane.)
+
+Here is my autogen.lastrun for Android:
+CC=ccache /home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot /home/tml/android-ndk-r5b/platforms/android-9/arch-arm
+CXX=ccache /home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ --sysroot /home/tml/android-ndk-r5b/platforms/android-9/arch-arm
+AR=/home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar
+NM=/home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-nm
+OBJDUMP=/home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-objdump
+RANLIB=/home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ranlib
+STRIP=/home/tml/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip
+CC_FOR_BUILD=ccache gcc
+CXX_FOR_BUILD=ccache g++
+--build=x86_64-unknown-linux-gnu
+--disable-zenity
+--with-distro=LibreOfficeAndroid
+--with-external-tar=/mnt/hemulen/ooo/git/master/src
+
+
+That's all, thank you, and have a nice day. People with commit access,
+feel free to edit this document and add yourself below. Sorry for
+writing now initially from such a personal point of view.
+
+--Tor Lillqvist <tlillqvist@novell.com>, <tml@iki.fi>
diff --git a/configure.in b/configure.in
index 31f8a4d6a208..74055d191698 100755
--- a/configure.in
+++ b/configure.in
@@ -1286,6 +1286,19 @@ AC_ARG_WITH(mingw-cross-compiler,
],
,)
+AC_ARG_WITH(icu-native-build-root,
+ AS_HELP_STRING([--with-icu-native-build-root],
+ [Specify the the 'source' directory of a native build of ICU.])
+ [
+ Usage: --with-icu-native-build-root=<path>>
+
+ When cross-compiling and not using a "system" ICU,
+ specify the path to the "source" directory of the
+ ICU build in a native LibreOffice build tree. For example
+ --with-icu-native-build-root=/Users/tml/lo-macosx/icu/unxmacxi.pro/misc/build/icu/source
+ ],
+,)
+
AC_ARG_WITH(build-version,
AS_HELP_STRING([--with-build-version],
[Allows the builder to add a custom version tag that will appear in the
@@ -5540,6 +5553,12 @@ else
AC_MSG_RESULT([internal])
SYSTEM_ICU=NO
BUILD_TYPE="$BUILD_TYPE ICU"
+ if test "$cross_compiling" = "yes"; then
+ if test "$with_icu_native_build_root" = "" ; then
+ AC_MSG_ERROR([when cross-compiling ICU you must use --with-icu-native-build-root])
+ fi
+ ICU_NATIVE_BUILD_ROOT="$with_icu_native_build_root"
+ fi
fi
AC_SUBST(SYSTEM_ICU)
AC_SUBST(SYSTEM_GENBRK)
@@ -5548,6 +5567,7 @@ AC_SUBST(SYSTEM_GENCMN)
AC_SUBST(ICU_MAJOR)
AC_SUBST(ICU_MINOR)
AC_SUBST(ICU_MICRO)
+AC_SUBST(ICU_NATIVE_BUILD_ROOT)
dnl ===================================================================
dnl Graphite
@@ -5775,12 +5795,23 @@ AC_MSG_CHECKING([which libssl to use])
if test -n "$with_system_openssl" -o -n "$with_system_libs" && \
test "$with_system_openssl" != "no"; then
AC_MSG_RESULT([external])
- # Mac OS builds should get out without extra stuff is the Mac porters'
- # wish. And pkg-config is although Xcode ships a .pc for openssl
- if test "$_os" = "Darwin" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o \
+
+ dnl Mac OS (and BSD, apparently) builds should get out without
+ dnl extra stuff is the Mac porters' wish. And pkg-config is
+ dnl although Xcode ships a .pc for OpenSSL
+
+ dnl For iOS we don't want to even try compiling bundled (outdated
+ dnl version of) OpenSSL with its ultra-weird configury. But on the
+ dnl other hand there is no system OpenSSL either. But let's just
+ dnl build a current OpenSSL separately using some of the ways
+ dnl found on the net and pretend it is a "system" OpenSSL.
+
+ dnl In either case pass OPENSSL_CFLAGS and OPENSSL_LIBS if
+ dnl necessary in the environment.
+
+ if test "$_os" = "Darwin" -o "$_os" = "iOS" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o \
"$_os" = "DragonFly"; then
- OPENSSL_CFLAGS=
- OPENSSL_LIBS="-lssl -lcrypto"
+ OPENSSL_LIBS=${OPENSSL_LIBS:--lssl -lcrypto}
else
PKG_CHECK_MODULES( OPENSSL, openssl )
fi
diff --git a/distro-configs/LibreOfficeiOS.conf b/distro-configs/LibreOfficeiOS.conf
index 02008d5511fc..20231741682e 100644
--- a/distro-configs/LibreOfficeiOS.conf
+++ b/distro-configs/LibreOfficeiOS.conf
@@ -15,6 +15,7 @@
--disable-randr
--disable-randr-link
--disable-systray
+--with-system-openssl
--without-fonts
--without-java
--without-junit
diff --git a/dmake/function.c b/dmake/function.c
index cd86810849e5..d0379f612971 100644
--- a/dmake/function.c
+++ b/dmake/function.c
@@ -587,7 +587,7 @@ int expand;
Do_profile_output( "s", M_TARGET, &cell );
/* Print the shell escape command. */
- if( !(rcp.st_attr & A_SILENT) ) {
+ if( Verbose & V_FORCEECHO ) {
printf( "%s: Executing shell macro: %s\n", Pname, data );
fflush(stdout);
}
diff --git a/set_soenv.in b/set_soenv.in
index 569a867f4677..724af0e11ec0 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1065,7 +1065,7 @@ if ($platform =~ m/cygwin/)
}
$ILIB .= $wps.PathFormat("@MINGW_CLIB_DIR@").
$wps.$WINDOWS_SDK_HOME.$LIB;
- if ( '@ENABLE_DIRETX@' )
+ if ( '@ENABLE_DIRECTX@' )
{ $ILIB .= $wps.PathFormat("@DIRECTXSDK_LIB@");
}
}
@@ -1771,6 +1771,7 @@ if ( '@CROSS_COMPILING@' ne '' )
ToFile( "CXX_FOR_BUILD", "@CXX_FOR_BUILD@", "e" );
ToFile( "GXX_INCLUDE_PATH_FOR_BUILD", "@GXX_INCLUDE_PATH_FOR_BUILD@", "e" );
ToFile( "MACOSX_DEPLOYMENT_TARGET_FOR_BUILD", "@MACOSX_DEPLOYMENT_TARGET_FOR_BUILD@", "e" );
+ ToFile( "ICU_NATIVE_BUILD_ROOT", "@ICU_NATIVE_BUILD_ROOT@", "e");
}
else
{
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 344d00a8bdf7..2ee9af468e92 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -2021,15 +2021,16 @@ sub run_job {
if (!-d $log_dir) {
system("$perl $mkout");
};
- $error_code = system ("$job_to_do > $log_file 2>&1");
- if ( -f $log_file) {
- open(LOGFILE, "< $log_file");
- print while(<LOGFILE>);
- close(LOGFILE);
- if ( $error_code != 0)
- {
- system("cat $log_file >> $build_error_log");
- }
+ open (MAKE, "$job_to_do 2>&1 |") or return 8;
+ open (LOGFILE, "> $log_file") or return 8;
+ while (<MAKE>) { print LOGFILE $_; print $_ }
+ close MAKE;
+ $error_code = $?;
+ close LOGFILE;
+ if ( $error_code != 0)
+ {
+ system("echo \"log for $path\" >> $build_error_log");
+ system("cat $log_file >> $build_error_log");
}
return $error_code;
diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk
index 7c023c4d9c4e..ea63fa426060 100644
--- a/solenv/inc/_tg_shl.mk
+++ b/solenv/inc/_tg_shl.mk
@@ -188,7 +188,7 @@ $(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL1SONAME=\"$(SONAME_SWITCH)$(SHL1TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -467,6 +467,9 @@ $(SHL1TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN)
.ENDIF # "$(SHL1NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB1FLAGS) $(LIBFLAGS) $@ $(SHL1OBJS) $(shell cat /dev/null $(LIB1TARGET) $(SHL1LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd
@echo $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1SONAME) $(LINKFLAGSSHL) $(SHL1VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \
@@ -489,7 +492,7 @@ $(SHL1TARGETN) : \
.ENDIF # "$(SHL1NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL1TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL1TARGETN:f) $(SHL1TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -690,7 +693,7 @@ $(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL2SONAME=\"$(SONAME_SWITCH)$(SHL2TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -969,6 +972,9 @@ $(SHL2TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN)
.ENDIF # "$(SHL2NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB2FLAGS) $(LIBFLAGS) $@ $(SHL2OBJS) $(shell cat /dev/null $(LIB2TARGET) $(SHL2LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd
@echo $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2SONAME) $(LINKFLAGSSHL) $(SHL2VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \
@@ -991,7 +997,7 @@ $(SHL2TARGETN) : \
.ENDIF # "$(SHL2NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL2TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL2TARGETN:f) $(SHL2TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -1192,7 +1198,7 @@ $(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL3SONAME=\"$(SONAME_SWITCH)$(SHL3TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -1471,6 +1477,9 @@ $(SHL3TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN)
.ENDIF # "$(SHL3NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB3FLAGS) $(LIBFLAGS) $@ $(SHL3OBJS) $(shell cat /dev/null $(LIB3TARGET) $(SHL3LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd
@echo $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3SONAME) $(LINKFLAGSSHL) $(SHL3VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \
@@ -1493,7 +1502,7 @@ $(SHL3TARGETN) : \
.ENDIF # "$(SHL3NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL3TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL3TARGETN:f) $(SHL3TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -1694,7 +1703,7 @@ $(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL4SONAME=\"$(SONAME_SWITCH)$(SHL4TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -1973,6 +1982,9 @@ $(SHL4TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN)
.ENDIF # "$(SHL4NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB4FLAGS) $(LIBFLAGS) $@ $(SHL4OBJS) $(shell cat /dev/null $(LIB4TARGET) $(SHL4LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd
@echo $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4SONAME) $(LINKFLAGSSHL) $(SHL4VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \
@@ -1995,7 +2007,7 @@ $(SHL4TARGETN) : \
.ENDIF # "$(SHL4NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL4TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL4TARGETN:f) $(SHL4TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -2196,7 +2208,7 @@ $(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL5SONAME=\"$(SONAME_SWITCH)$(SHL5TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -2475,6 +2487,9 @@ $(SHL5TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN)
.ENDIF # "$(SHL5NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB5FLAGS) $(LIBFLAGS) $@ $(SHL5OBJS) $(shell cat /dev/null $(LIB5TARGET) $(SHL5LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd
@echo $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5SONAME) $(LINKFLAGSSHL) $(SHL5VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \
@@ -2497,7 +2512,7 @@ $(SHL5TARGETN) : \
.ENDIF # "$(SHL5NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL5TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL5TARGETN:f) $(SHL5TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -2698,7 +2713,7 @@ $(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL6SONAME=\"$(SONAME_SWITCH)$(SHL6TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -2977,6 +2992,9 @@ $(SHL6TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN)
.ENDIF # "$(SHL6NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB6FLAGS) $(LIBFLAGS) $@ $(SHL6OBJS) $(shell cat /dev/null $(LIB6TARGET) $(SHL6LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd
@echo $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6SONAME) $(LINKFLAGSSHL) $(SHL6VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \
@@ -2999,7 +3017,7 @@ $(SHL6TARGETN) : \
.ENDIF # "$(SHL6NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL6TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL6TARGETN:f) $(SHL6TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -3200,7 +3218,7 @@ $(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL7SONAME=\"$(SONAME_SWITCH)$(SHL7TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -3479,6 +3497,9 @@ $(SHL7TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN)
.ENDIF # "$(SHL7NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB7FLAGS) $(LIBFLAGS) $@ $(SHL7OBJS) $(shell cat /dev/null $(LIB7TARGET) $(SHL7LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd
@echo $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7SONAME) $(LINKFLAGSSHL) $(SHL7VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \
@@ -3501,7 +3522,7 @@ $(SHL7TARGETN) : \
.ENDIF # "$(SHL7NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL7TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL7TARGETN:f) $(SHL7TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -3702,7 +3723,7 @@ $(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL8SONAME=\"$(SONAME_SWITCH)$(SHL8TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -3981,6 +4002,9 @@ $(SHL8TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN)
.ENDIF # "$(SHL8NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB8FLAGS) $(LIBFLAGS) $@ $(SHL8OBJS) $(shell cat /dev/null $(LIB8TARGET) $(SHL8LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd
@echo $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8SONAME) $(LINKFLAGSSHL) $(SHL8VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \
@@ -4003,7 +4027,7 @@ $(SHL8TARGETN) : \
.ENDIF # "$(SHL8NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL8TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL8TARGETN:f) $(SHL8TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -4204,7 +4228,7 @@ $(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL9SONAME=\"$(SONAME_SWITCH)$(SHL9TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -4483,6 +4507,9 @@ $(SHL9TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN)
.ENDIF # "$(SHL9NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB9FLAGS) $(LIBFLAGS) $@ $(SHL9OBJS) $(shell cat /dev/null $(LIB9TARGET) $(SHL9LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd
@echo $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9SONAME) $(LINKFLAGSSHL) $(SHL9VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \
@@ -4505,7 +4532,7 @@ $(SHL9TARGETN) : \
.ENDIF # "$(SHL9NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL9TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL9TARGETN:f) $(SHL9TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
@@ -4706,7 +4733,7 @@ $(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL10SONAME=\"$(SONAME_SWITCH)$(SHL10TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -4985,6 +5012,9 @@ $(SHL10TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN)
.ENDIF # "$(SHL10NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB10FLAGS) $(LIBFLAGS) $@ $(SHL10OBJS) $(shell cat /dev/null $(LIB10TARGET) $(SHL10LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd
@echo $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10SONAME) $(LINKFLAGSSHL) $(SHL10VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \
@@ -5007,7 +5037,7 @@ $(SHL10TARGETN) : \
.ENDIF # "$(SHL10NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL10TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL10TARGETN:f) $(SHL10TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 83fdd8dfb25a..97d6419e7cbd 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -60,11 +60,7 @@ ICUDATALIB=-licudata
I18NUTILLIB=-li18nutil$(COMID)
I18NISOLANGLIB=-li18nisolang$(ISOLANG_MAJOR)$(COMID)
I18NPAPERLIB=-li18npaper$(DLLPOSTFIX)
-.IF "$(GUI)$(COM)"=="WNTGCC"
-SALHELPERLIB=-lisalhelper
-.ELSE # "$(GUI)$(COM)"=="WNTGCC"
SALHELPERLIB=-luno_salhelper$(COMID)
-.ENDIF # "$(GUI)$(COM)"=="WNTGCC"
XMLSCRIPTLIB =-lxcr$(DLLPOSTFIX)
COMPHELPERLIB=-lcomphelp$(COMID)
CONNECTIVITYLIB=-lconnectivity
diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk
index 71a7ab67195c..a82dd520d716 100644
--- a/solenv/inc/tg_shl.mk
+++ b/solenv/inc/tg_shl.mk
@@ -217,7 +217,7 @@ $(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP)
.ENDIF # "$(GUI)" != "UNX"
.IF "$(UNIXVERSIONNAMES)"!=""
-.IF "$(OS)"!="MACOSX" && "$(OS)"!="AIX"
+.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX"
.IF "$(GUI)"=="UNX"
SHL$(TNR)SONAME=\"$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:f)\"
.ENDIF # "$(GUI)"!="UNX"
@@ -496,6 +496,9 @@ $(SHL$(TNR)TARGETN) : \
$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN)
.ENDIF # "$(SHL$(TNR)NOCHECK)"!=""
.ENDIF
+.ELIF "$(OS)"=="IOS"
+ $(COMMAND_ECHO)$(AR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $@ $(SHL$(TNR)OBJS) $(shell cat /dev/null $(LIB$(TNR)TARGET) $(SHL$(TNR)LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g)
+ $(COMMAND_ECHO)$(RANLIB) $@
.ELSE # "$(OS)"=="MACOSX"
@-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd
@echo $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)SONAME) $(LINKFLAGSSHL) $(SHL$(TNR)VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \
@@ -518,7 +521,7 @@ $(SHL$(TNR)TARGETN) : \
.ENDIF # "$(SHL$(TNR)NOCHECK)"!=""
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(OS)"=="MACOSX"
-.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS"
$(COMMAND_ECHO)$(RM) $(LB)/$(SHL$(TNR)TARGETN:b)
$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f) $(SHL$(TNR)TARGETN:b)
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk
index 88361b970be5..b4cd69ff06e5 100644
--- a/solenv/inc/unx.mk
+++ b/solenv/inc/unx.mk
@@ -182,7 +182,9 @@ SOLARSHAREDBIN=$(SOLARLIBDIR)
SONAME_SWITCH*=-h
.IF "$(UNIXVERSIONNAMES)"!=""
+.IF "$(OS)"!="IOS"
DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR)
+.ENDIF
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
# enable building/linking KDE-dependent code in both OOo and SO build environment
diff --git a/solenv/inc/unxiosr.mk b/solenv/inc/unxiosr.mk
index 64fd81f84cc3..13b2ee1ae765 100644
--- a/solenv/inc/unxiosr.mk
+++ b/solenv/inc/unxiosr.mk
@@ -37,7 +37,8 @@ LIBFLAGS=-r
PROCESSOR_DEFINES=-DARM32
-DLLPOST=
+DLLPRE=lib
+DLLPOST=.a
DLLPOSTFIX=
# flags to enable build with symbols
diff --git a/solenv/inc/win32/jni_md.h b/solenv/inc/win32/jni_md.h
index 745a0d4f15db..b7aab253b350 100644
--- a/solenv/inc/win32/jni_md.h
+++ b/solenv/inc/win32/jni_md.h
@@ -1,3 +1,4 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -37,3 +38,5 @@ typedef __int64 jlong;
typedef char jbyte;
#endif /* JNI_MD_H_INCLUDED */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */