[Libreoffice-commits] .: 6 commits - config_host.mk.in configure.in external/mingw-dlls m4/mingw.m4 scp2/source shell/inc shell/source solenv/inc

David Tardon dtardon at kemper.freedesktop.org
Sun Mar 18 13:23:51 PDT 2012


 config_host.mk.in                                      |   45 ++++
 configure.in                                           |  153 +++++++++++----
 external/mingw-dlls/makefile.mk                        |   43 ++++
 m4/mingw.m4                                            |  170 +++++++++--------
 scp2/source/ooo/makefile.mk                            |  164 ++++++++++++++++
 scp2/source/ooo/mingw_dlls.scp                         |  169 ++++++++++++----
 shell/inc/internal/types.hxx                           |    7 
 shell/inc/internal/zipfile.hxx                         |    6 
 shell/source/win32/ooofilereader/makefile.mk           |    4 
 shell/source/win32/shlxthandler/columninfo/makefile.mk |    4 
 shell/source/win32/shlxthandler/infotips/makefile.mk   |    4 
 shell/source/win32/shlxthandler/makefile.mk            |    6 
 shell/source/win32/shlxthandler/ooofilt/makefile.mk    |    6 
 shell/source/win32/shlxthandler/prophdl/makefile.mk    |    2 
 shell/source/win32/shlxthandler/propsheets/makefile.mk |    4 
 shell/source/win32/shlxthandler/util/makefile.mk       |    4 
 shell/source/win32/zipfile/makefile.mk                 |    6 
 solenv/inc/libs.mk                                     |    6 
 18 files changed, 640 insertions(+), 163 deletions(-)

New commits:
commit d1cc4bb69eb21b19c96fc0111611382b51a3d7ae
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 13:54:34 2012 +0100

    mingw: allow forced use of system icu tools

diff --git a/configure.in b/configure.in
index 74037eb..65200c8 100644
--- a/configure.in
+++ b/configure.in
@@ -1965,7 +1965,7 @@ AC_ARG_WITH(system-expat-for-build,
         [Use expat already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-icu-for-build,
-    AS_HELP_STRING([--with-system-icu-for-build],
+    AS_HELP_STRING([--with-system-icu-for-build=yes/no/force],
         [Use icu already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-libxml-for-build,
@@ -3259,7 +3259,7 @@ if test "$cross_compiling" = "yes"; then
     test -n "$with_system_cppunit_for_build" && sub_conf_opts="$sub_conf_opts --with-system-cppunit"
     test -n "$with_system_db_for_build" && sub_conf_opts="$sub_conf_opts --with-system-db"
     test -n "$with_system_expat_for_build" && sub_conf_opts="$sub_conf_opts --with-system-expat"
-    test -n "$with_system_icu_for_build" && sub_conf_opts="$sub_conf_opts --with-system-icu"
+    test "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" && sub_conf_opts="$sub_conf_opts --with-system-icu"
     test -n "$with_system_libxml_for_build" && sub_conf_opts="$sub_conf_opts --with-system-libxml"
     ./configure \
         --disable-mozilla \
@@ -7436,21 +7436,24 @@ if test "$with_system_icu" = "yes"; then
         AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
     fi
 
-    if test "$cross_compiling" = "yes" -a "$with_system_icu_for_build" = "yes"; then
+    if test "$cross_compiling" = "yes" -a \( "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" \); then
         AC_PATH_PROG([ICUCONFIG_FOR_BUILD], [icu-config], [], [$PATH:/usr/sbin:/sbin])
         ICU_VERSION_FOR_BUILD=`$ICUCONFIG_FOR_BUILD --noverify --version 2>/dev/null || $ICUCONFIG_FOR_BUILD --version`
         ICU_MAJOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f1`
         ICU_MINOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f2`
-        AC_CHECKING([if MinGW and system versions of ICU are compatible])
+        AC_MSG_CHECKING([if MinGW and system versions of ICU are compatible])
         if test "$ICU_MAJOR" -eq "$ICU_MAJOR_FOR_BUILD" -a "$ICU_MINOR" -eq "$ICU_MINOR_FOR_BUILD"; then
             AC_MSG_RESULT([yes])
         else
             AC_MSG_RESULT([no])
-            AC_MSG_ERROR([system ICU is not version-compatible with MinGW ICU])
+            if test "$with_system_icu_for_build" != "force"; then
+                AC_MSG_ERROR([System ICU is not version-compatible with MinGW ICU.
+You can use --with-system-icu-for-build=force to use it anyway.])
+            fi
         fi
     fi
 
-    if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes"; then
+    if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force"; then
         # using the system icu tools can lead to version confusion, use the
         # ones from the build environment when cross-compiling
         AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
commit 11bf220b6ab764906d9b2e0f4ed4f6830181c45b
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 10:18:03 2012 +0100

    mingw: test system icu version

diff --git a/configure.in b/configure.in
index d194e86..74037eb 100644
--- a/configure.in
+++ b/configure.in
@@ -7436,6 +7436,20 @@ if test "$with_system_icu" = "yes"; then
         AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
     fi
 
+    if test "$cross_compiling" = "yes" -a "$with_system_icu_for_build" = "yes"; then
+        AC_PATH_PROG([ICUCONFIG_FOR_BUILD], [icu-config], [], [$PATH:/usr/sbin:/sbin])
+        ICU_VERSION_FOR_BUILD=`$ICUCONFIG_FOR_BUILD --noverify --version 2>/dev/null || $ICUCONFIG_FOR_BUILD --version`
+        ICU_MAJOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f1`
+        ICU_MINOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f2`
+        AC_CHECKING([if MinGW and system versions of ICU are compatible])
+        if test "$ICU_MAJOR" -eq "$ICU_MAJOR_FOR_BUILD" -a "$ICU_MINOR" -eq "$ICU_MINOR_FOR_BUILD"; then
+            AC_MSG_RESULT([yes])
+        else
+            AC_MSG_RESULT([no])
+            AC_MSG_ERROR([system ICU is not version-compatible with MinGW ICU])
+        fi
+    fi
+
     if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes"; then
         # using the system icu tools can lead to version confusion, use the
         # ones from the build environment when cross-compiling
commit c8aa3d756341b330051ed4a096a5bd28b67c19f4
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 13:26:27 2012 +0100

    mingw: use system icu tools when requested

diff --git a/configure.in b/configure.in
index 81f2f9f..d194e86 100644
--- a/configure.in
+++ b/configure.in
@@ -7436,7 +7436,7 @@ if test "$with_system_icu" = "yes"; then
         AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
     fi
 
-    if test "$cross_compiling" != "yes"; then
+    if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes"; then
         # using the system icu tools can lead to version confusion, use the
         # ones from the build environment when cross-compiling
         AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
commit aa1435b3c5afdef2c41585b5f2da243f0e8f7e25
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 13:22:57 2012 +0100

    clean up after copy & paste

diff --git a/configure.in b/configure.in
index 189ad87..81f2f9f 100644
--- a/configure.in
+++ b/configure.in
@@ -1950,23 +1950,23 @@ dnl ===================================================================
 
 AC_ARG_WITH(system-boost-for-build,
     AS_HELP_STRING([--with-system-boost-for-build],
-        [Use boost/libxslt already on system for build tools (cross-compilation only).]))
+        [Use boost already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-cppunit-for-build,
     AS_HELP_STRING([--with-system-cppunit-for-build],
-        [Use cppunit/libxslt already on system for build tools (cross-compilation only).]))
+        [Use cppunit already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-db-for-build,
     AS_HELP_STRING([--with-system-db-for-build],
-        [Use db/libxslt already on system for build tools (cross-compilation only).]))
+        [Use db already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-expat-for-build,
     AS_HELP_STRING([--with-system-expat-for-build],
-        [Use expat/libxslt already on system for build tools (cross-compilation only).]))
+        [Use expat already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-icu-for-build,
     AS_HELP_STRING([--with-system-icu-for-build],
-        [Use icu/libxslt already on system for build tools (cross-compilation only).]))
+        [Use icu already on system for build tools (cross-compilation only).]))
 
 AC_ARG_WITH(system-libxml-for-build,
     AS_HELP_STRING([--with-system-libxml-for-build],
commit 1f09f96e95a74308fee7a1549234c2c364e55e4f
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 11:39:45 2012 +0100

    mingw: allow use of system zlib

diff --git a/config_host.mk.in b/config_host.mk.in
index b487e4f..050417e 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -301,6 +301,7 @@ export MINGW_LCMS2_DLL=@MINGW_LCMS2_DLL@
 export MINGW_LIBXML_DLL=@MINGW_LIBXML_DLL@
 export MINGW_LIBXSLT_DLL=@MINGW_LIBXSLT_DLL@
 export MINGW_LPSOLVE_DLL=@MINGW_LPSOLVE_DLL@
+export MINGW_MINIZIP_DLL=@MINGW_MINIZIP_DLL@
 export MINGW_MYTHES_DLL=@MINGW_MYTHES_DLL@
 export MINGW_NEON_DLL=@MINGW_NEON_DLL@
 export MINGW_NSPR4_DLL=@MINGW_NSPR4_DLL@
@@ -322,6 +323,8 @@ export MINGW_SSL3_DLL=@MINGW_SSL3_DLL@
 export MINGW_SSL_DLL=@MINGW_SSL_DLL@
 export MINGW_TASN1_DLL=@MINGW_TASN1_DLL@
 export MINGW_ZLIB_DLL=@MINGW_ZLIB_DLL@
+export MINIZIP_CFLAGS=@MINIZIP_CFLAGS@
+export MINIZIP_LIBS=@MINIZIP_LIBS@
 export MKDEPENDSOLVER=TRUE
 export ML_EXE=@ML_EXE@
 export MOC4=@MOC4@
@@ -478,6 +481,7 @@ export SYSTEM_LIBXSLT=@SYSTEM_LIBXSLT@
 export SYSTEM_LIBXSLT_FOR_BUILD=@SYSTEM_LIBXSLT_FOR_BUILD@
 export SYSTEM_LPSOLVE=@SYSTEM_LPSOLVE@
 export SYSTEM_MDDS=@SYSTEM_MDDS@
+export SYSTEM_MINIZIP=@SYSTEM_MINIZIP@
 export SYSTEM_MESA_HEADERS=@SYSTEM_MESA_HEADERS@
 export SYSTEM_MOZILLA=@SYSTEM_MOZILLA@
 export SYSTEM_MOZILLA_HEADERS=@SYSTEM_MOZILLA_HEADERS@
diff --git a/configure.in b/configure.in
index fa5cac5..189ad87 100644
--- a/configure.in
+++ b/configure.in
@@ -5738,12 +5738,21 @@ if test "$with_system_zlib" = "yes"; then
         [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
     AC_CHECK_LIB(z, deflate, [ ZLIB=-lz ],
         [AC_MSG_ERROR(zlib not found or functional)], [])
+    if test "$WITH_MINGW" = "yes"; then
+        # we need minizip too
+        PKG_CHECK_MODULES([MINIZIP], [minizip])
+        libo_MINGW_CHECK_DLL([MINIZIP], [libminizip])
+        SYSTEM_MINIZIP=YES
+    fi
 else
     AC_MSG_RESULT([internal])
     SYSTEM_ZLIB=NO
+    SYSTEM_MINIZIP=NO
     BUILD_TYPE="$BUILD_TYPE ZLIB"
 fi
 AC_SUBST(SYSTEM_ZLIB)
+AC_SUBST([SYSTEM_MINIZIP])
+AC_SUBST([MINGW_MINIZIP_DLL])
 
 dnl ===================================================================
 dnl Check for system jpeg
diff --git a/external/mingw-dlls/makefile.mk b/external/mingw-dlls/makefile.mk
index 7ca7cac..d312c34 100644
--- a/external/mingw-dlls/makefile.mk
+++ b/external/mingw-dlls/makefile.mk
@@ -64,6 +64,7 @@ MINGW_DLLS:= \
     $(MINGW_LIBXML_DLL) \
     $(MINGW_LIBXSLT_DLL) \
     $(MINGW_LPSOLVE_DLL) \
+    $(MINGW_MINIZIP_DLL) \
     $(MINGW_MYTHES_DLL) \
     $(MINGW_NEON_DLL) \
     $(MINGW_NSPR4_DLL) \
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index f0ceb83..ff840f5 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -345,6 +345,10 @@ SCPDEFS += -DNEEDS_MINGW_LIBXSLT_DLL -DMINGW_LIBXSLT_DLL=\""$(MINGW_LIBXSLT_DLL)
 SCPDEFS += -DNEEDS_MINGW_LPSOLVE_DLL -DMINGW_LPSOLVE_DLL=\""$(MINGW_LPSOLVE_DLL)"\"
 .ENDIF
 
+.IF "$(MINGW_MINIZIP_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_MINIZIP_DLL -DMINGW_MINIZIP_DLL=\""$(MINGW_MINIZIP_DLL)"\"
+.ENDIF
+
 .IF "$(MINGW_MYTHES_DLL)" != ""
 SCPDEFS += -DNEEDS_MINGW_MYTHES_DLL -DMINGW_MYTHES_DLL=\""$(MINGW_MYTHES_DLL)"\"
 .ENDIF
diff --git a/scp2/source/ooo/mingw_dlls.scp b/scp2/source/ooo/mingw_dlls.scp
index 062d4ae..0cd23b3 100644
--- a/scp2/source/ooo/mingw_dlls.scp
+++ b/scp2/source/ooo/mingw_dlls.scp
@@ -124,6 +124,12 @@ MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgrahpite, MINGW_GRAPHITE2_DLL )
 #endif
 #endif
 
+#ifdef SYSTEM_MINIZIP
+#ifdef NEEDS_MINGW_MINIZP_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libminizip, MINGW_MINIZIP_DLL )
+#endif
+#endif
+
 #ifdef SYSTEM_NEON
 #ifdef NEEDS_MINGW_TASN1_DLL
 MINGW_DLL( gid_Brand_File_Lib_Mingw_Libtasn,   MINGW_TASN1_DLL )
diff --git a/shell/inc/internal/types.hxx b/shell/inc/internal/types.hxx
index a806d02..0c6810a 100644
--- a/shell/inc/internal/types.hxx
+++ b/shell/inc/internal/types.hxx
@@ -34,9 +34,14 @@
 #include <utility>
 #include <vector>
 #include <stack>
+
+#if defined SYSTEM_ZLIB
+#include <zlib.h>
+#include <minizip/ioapi.h>
+#else
 #include <external/zlib/zlib.h>
 #include <external/zlib/ioapi.h>
-
+#endif
 
 typedef std::vector<std::wstring> StringList_t;
 
diff --git a/shell/inc/internal/zipfile.hxx b/shell/inc/internal/zipfile.hxx
index 6d8d24b..062ce38 100644
--- a/shell/inc/internal/zipfile.hxx
+++ b/shell/inc/internal/zipfile.hxx
@@ -33,9 +33,11 @@
 #define _WINDOWS
 #endif
 
-
+#if defined SYSTEM_ZLIB
+#include <minizip/unzip.h>
+#else
 #include <external/zlib/unzip.h>
-
+#endif
 
 #include <string>
 #include <vector>
diff --git a/shell/source/win32/ooofilereader/makefile.mk b/shell/source/win32/ooofilereader/makefile.mk
index 6b9d1ef..b26e10a 100644
--- a/shell/source/win32/ooofilereader/makefile.mk
+++ b/shell/source/win32/ooofilereader/makefile.mk
@@ -47,6 +47,10 @@ CFLAGS_X64+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 .ENDIF
 CDEFS_X64+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 
diff --git a/shell/source/win32/shlxthandler/columninfo/makefile.mk b/shell/source/win32/shlxthandler/columninfo/makefile.mk
index 31c019f..7157f8f 100644
--- a/shell/source/win32/shlxthandler/columninfo/makefile.mk
+++ b/shell/source/win32/shlxthandler/columninfo/makefile.mk
@@ -42,6 +42,10 @@ CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 .ENDIF
 CDEFS+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/columninfo.obj
diff --git a/shell/source/win32/shlxthandler/infotips/makefile.mk b/shell/source/win32/shlxthandler/infotips/makefile.mk
index e7caf3a..38126a5 100644
--- a/shell/source/win32/shlxthandler/infotips/makefile.mk
+++ b/shell/source/win32/shlxthandler/infotips/makefile.mk
@@ -42,6 +42,10 @@ CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 .ENDIF
 CDEFS+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/$(TARGET).obj
diff --git a/shell/source/win32/shlxthandler/makefile.mk b/shell/source/win32/shlxthandler/makefile.mk
index b02a278..fa2a480 100644
--- a/shell/source/win32/shlxthandler/makefile.mk
+++ b/shell/source/win32/shlxthandler/makefile.mk
@@ -59,6 +59,10 @@ CDEFS+=-DDONT_HAVE_GDIPLUS
 
 CDEFS+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/classfactory.obj\
@@ -73,7 +77,7 @@ SLOFILES=$(SLO)$/classfactory.obj\
 SHL1TARGET=$(TARGET)
 
 .IF "$(COM)"=="GCC"
-SHL1STDLIBS=$(ZLIB3RDLIB) $(EXPAT3RDLIB) $(COMCTL32LIB)
+SHL1STDLIBS=$(ZLIB3RDLIB) $(MINIZIP3RDLIB) $(EXPAT3RDLIB) $(COMCTL32LIB)
 SHL1LIBS=
 .ELSE
 SHL1STDLIBS=
diff --git a/shell/source/win32/shlxthandler/ooofilt/makefile.mk b/shell/source/win32/shlxthandler/ooofilt/makefile.mk
index 1748f46..afb2988 100644
--- a/shell/source/win32/shlxthandler/ooofilt/makefile.mk
+++ b/shell/source/win32/shlxthandler/ooofilt/makefile.mk
@@ -46,6 +46,10 @@ CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 .ENDIF
 CDEFS+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/ooofilt.obj\
@@ -54,7 +58,7 @@ SLOFILES=$(SLO)$/ooofilt.obj\
 
 SHL1TARGET=$(TARGET)
 .IF "$(COM)"=="GCC"
-SHL1STDLIBS=$(ZLIB3RDLIB) $(EXPAT3RDLIB)
+SHL1STDLIBS=$(ZLIB3RDLIB) $(MINIZIP3RDLIB) $(EXPAT3RDLIB)
 SHL1LIBS=
 .ELSE
 SHL1STDLIBS=
diff --git a/shell/source/win32/shlxthandler/prophdl/makefile.mk b/shell/source/win32/shlxthandler/prophdl/makefile.mk
index 64d83a6..8a6813a 100644
--- a/shell/source/win32/shlxthandler/prophdl/makefile.mk
+++ b/shell/source/win32/shlxthandler/prophdl/makefile.mk
@@ -63,7 +63,7 @@ SLOFILES=$(SLO)$/$(TARGET).obj\
 SHL1TARGET=$(TARGET)
 
 .IF "$(COM)"=="GCC"
-SHL1STDLIBS=$(ZLIB3RDLIB) $(EXPAT3RDLIB) $(COMCTL32LIB)
+SHL1STDLIBS=$(ZLIB3RDLIB) $(MINIZIP3RDLIB) $(EXPAT3RDLIB) $(COMCTL32LIB)
 SHL1LIBS=
 .ELSE
 SHL1STDLIBS=
diff --git a/shell/source/win32/shlxthandler/propsheets/makefile.mk b/shell/source/win32/shlxthandler/propsheets/makefile.mk
index 5b4405f..1d67510 100644
--- a/shell/source/win32/shlxthandler/propsheets/makefile.mk
+++ b/shell/source/win32/shlxthandler/propsheets/makefile.mk
@@ -44,6 +44,10 @@ CFLAGS_X64+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 CDEFS_X64+=-U_WIN32_IE -D_WIN32_WINNT=0x0501 -U_WIN32_WINNT -D_WIN32_IE=0x501
 .ENDIF
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/propsheets.obj\
diff --git a/shell/source/win32/shlxthandler/util/makefile.mk b/shell/source/win32/shlxthandler/util/makefile.mk
index f2edb7f..e2b7a82 100644
--- a/shell/source/win32/shlxthandler/util/makefile.mk
+++ b/shell/source/win32/shlxthandler/util/makefile.mk
@@ -47,6 +47,10 @@ CFLAGS_X64+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
 .ENDIF
 CDEFS_X64+=-U_WIN32_IE -D_WIN32_IE=0x501 -U_WIN32_WINNT -D_WIN32_WINNT=0x0501
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 SLOFILES=$(SLO)$/fileextensions.obj\
diff --git a/shell/source/win32/zipfile/makefile.mk b/shell/source/win32/zipfile/makefile.mk
index 93fdf66..0e165dd 100644
--- a/shell/source/win32/zipfile/makefile.mk
+++ b/shell/source/win32/zipfile/makefile.mk
@@ -31,12 +31,14 @@ TARGET=zipfile
 ENABLE_EXCEPTIONS=TRUE
 EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
 
-
-
 # --- Settings -----------------------------------------------------
 
 .INCLUDE :  settings.mk
 
+.IF "$(SYSTEM_ZLIB)" == "YES"
+CDEFS += -DSYSTEM_ZLIB
+.END
+
 # --- Files --------------------------------------------------------
 
 
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 55bf2bf..3adeb01 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -198,6 +198,12 @@ ZLIB3RDLIB=-lz
 .ELSE
 ZLIB3RDLIB=-lzlib
 .ENDIF
+.IF "$(SYSTEM_MINIZIP)"=="YES"
+MINIZIP3RDLIB=$(MINIZIP_LIBS)
+.ELSE
+# internally, minizip is included in zlib
+MINIZIP3RDLIB=
+.ENDIF
 .IF "$(SYSTEM_JPEG)"=="YES"
 JPEG3RDLIB=-ljpeg
 .ELSE
commit 1118f57582aaa7275a8fe1d1460e1515c111ac2e
Author: David Tardon <dtardon at redhat.com>
Date:   Sun Mar 18 09:18:28 2012 +0100

    mingw: avoid hardcoded dll versions and deps
    
    The idea is to use libo_MINGW_CHECK_DLL for libs that must be available
    (typically that would be the "main" library, e.g., libxml2 or libcurl)
    and libo_MINGW_TRY_DLL for possible dependencies (that may not be the
    same on different systems). All further references to the dlls are
    exclusively through the configured variables or defines set from these
    variables (e.g., instead of hardcoding libxml2-2.dll, use
    $(MINGW_LIBXML2_DLL)).
    
    The macros are documented in m4/mingw.m4 .
    
    Files that must be changed when adding a new dll:
    * configure.in
    * config_host.mk.in
    * external/mingw-dlls/makefile.mk
    * scp2/source/ooo/makefile.mk
    * scp2/source/ooo/mingw_dlls.scp

diff --git a/config_host.mk.in b/config_host.mk.in
index 77d1498..b487e4f 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -276,13 +276,52 @@ export MFC_INCLUDE=@MFC_INCLUDE@
 export MFC_LIB=@MFC_LIB@
 export MINGWCXX=@MINGWCXX@
 export MINGWSTRIP=@MINGWSTRIP@
+export MINGW_CAIRO_DLL=@MINGW_CAIRO_DLL@
 export MINGW_CLIB_DIR=@MINGW_CLIB_DIR@
-export MINGW_EXTERNAL_DLLS=@MINGW_EXTERNAL_DLLS@
+export MINGW_CRYPTO_DLL=@MINGW_CRYPTO_DLL@
+export MINGW_CURL_DLL=@MINGW_CURL_DLL@
+export MINGW_DB_DLL=@MINGW_DB_DLL@
+export MINGW_EXPAT_DLL=@MINGW_EXPAT_DLL@
+export MINGW_FONTCONFIG_DLL=@MINGW_FONTCONFIG_DLL@
+export MINGW_FREETYPE_DLL=@MINGW_FREETYPE_DLL@
 export MINGW_GCCDLL=@MINGW_GCCDLL@
+export MINGW_GCRYPT_DLL=@MINGW_GCRYPT_DLL@
+export MINGW_GNUTLS_DLL=@MINGW_GNUTLS_DLL@
+export MINGW_GPG_ERROR_DLL=@MINGW_GPG_ERROR_DLL@
+export MINGW_GRAPHITE2_DLL=@MINGW_GRAPHITE2_DLL@
 export MINGW_GXXDLL=@MINGW_GXXDLL@
+export MINGW_HUNSPELL_DLL=@MINGW_HUNSPELL_DLL@
+export MINGW_HYPHEN_DLL=@MINGW_HYPHEN_DLL@
+export MINGW_ICUDATA_DLL=@MINGW_ICUDATA_DLL@
+export MINGW_ICUI18N_DLL=@MINGW_ICUI18N_DLL@
+export MINGW_ICUUC_DLL=@MINGW_ICUUC_DLL@
+export MINGW_IDN_DLL=@MINGW_IDN_DLL@
+export MINGW_INTL_DLL=@MINGW_INTL_DLL@
+export MINGW_LCMS2_DLL=@MINGW_LCMS2_DLL@
+export MINGW_LIBXML_DLL=@MINGW_LIBXML_DLL@
+export MINGW_LIBXSLT_DLL=@MINGW_LIBXSLT_DLL@
+export MINGW_LPSOLVE_DLL=@MINGW_LPSOLVE_DLL@
+export MINGW_MYTHES_DLL=@MINGW_MYTHES_DLL@
+export MINGW_NEON_DLL=@MINGW_NEON_DLL@
+export MINGW_NSPR4_DLL=@MINGW_NSPR4_DLL@
+export MINGW_NSS3_DLL=@MINGW_NSS3_DLL@
+export MINGW_NSSUTIL3_DLL=@MINGW_NSSUTIL3_DLL@
+export MINGW_PIXMAN_DLL=@MINGW_PIXMAN_DLL@
+export MINGW_PLC4_DLL=@MINGW_PLC4_DLL@
+export MINGW_PLDS4_DLL=@MINGW_PLDS4_DLL@
+export MINGW_PNG15_DLL=@MINGW_PNG15_DLL@
+export MINGW_RAPTOR_DLL=@MINGW_RAPTOR_DLL@
+export MINGW_RASQAL_DLL=@MINGW_RASQAL_DLL@
+export MINGW_REDLAND_DLL=@MINGW_REDLAND_DLL@
 export MINGW_SHARED_GCCLIB=@MINGW_SHARED_GCCLIB@
 export MINGW_SHARED_GXXLIB=@MINGW_SHARED_GXXLIB@
 export MINGW_SHARED_LIBSTDCPP=@MINGW_SHARED_LIBSTDCPP@
+export MINGW_SQLITE3_DLL=@MINGW_SQLITE3_DLL@
+export MINGW_SSH2_DLL=@MINGW_SSH2_DLL@
+export MINGW_SSL3_DLL=@MINGW_SSL3_DLL@
+export MINGW_SSL_DLL=@MINGW_SSL_DLL@
+export MINGW_TASN1_DLL=@MINGW_TASN1_DLL@
+export MINGW_ZLIB_DLL=@MINGW_ZLIB_DLL@
 export MKDEPENDSOLVER=TRUE
 export ML_EXE=@ML_EXE@
 export MOC4=@MOC4@
diff --git a/configure.in b/configure.in
index b7c2276..fa5cac5 100644
--- a/configure.in
+++ b/configure.in
@@ -11,7 +11,6 @@ save_CXX=$CXX
 BUILD_TYPE="LibO"
 SCPDEFS=""
 GIT_REPO_NAMES=""
-MINGW_EXTERNAL_DLLS=""
 LO_PATH= # used by path_munge to construct a PATH variable
 
 PathFormat()
@@ -5807,13 +5806,14 @@ if test "$with_system_expat" = "yes"; then
         [AC_MSG_ERROR(expat.h not found. install expat)], [])
     AC_CHECK_LIB([expat], [XML_ParserCreate], [:],
     [AC_MSG_RESULT(expat library not found or functional.)], [])
-    libo_ADD_MINGW_EXTERNAL_DLLS([libexpat],[MINGW_EXTERNAL_DLLS],[libexpat-1.dll])
+    libo_MINGW_CHECK_DLL([EXPAT], [libexpat])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_EXPAT=NO
     BUILD_TYPE="$BUILD_TYPE EXPAT"
 fi
 AC_SUBST(SYSTEM_EXPAT)
+AC_SUBST([MINGW_EXPAT_DLL])
 
 dnl ===================================================================
 dnl Check for system libcdr
@@ -5900,6 +5900,7 @@ if test "$with_system_lcms2" = "yes"; then
     AC_MSG_RESULT([external])
     SYSTEM_LCMS2=YES
     PKG_CHECK_MODULES( LCMS2, lcms2 )
+    libo_MINGW_CHECK_DLL([LCMS2], [liblcms2])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_LCMS2=NO
@@ -5908,6 +5909,7 @@ fi
 AC_SUBST(SYSTEM_LCMS2)
 AC_SUBST(LCMS2_CFLAGS)
 AC_SUBST(LCMS2_LIBS)
+AC_SUBST([MINGW_LCMS2_DLL])
 
 dnl ===================================================================
 dnl Check for system cppunit
@@ -6022,7 +6024,7 @@ if test "$with_system_libxml" = "yes"; then
         AC_MSG_ERROR([xsltproc is required])
     fi
 
-    libo_ADD_MINGW_EXTERNAL_DLLS([libxslt],[MINGW_EXTERNAL_DLLS],[libxslt-1.dll])
+    libo_MINGW_CHECK_DLL([LIBXSLT], [libxslt])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_LIBXSLT=NO
@@ -6044,6 +6046,7 @@ AC_SUBST(SYSTEM_LIBXSLT_FOR_BUILD)
 AC_SUBST(LIBXSLT_CFLAGS)
 AC_SUBST(LIBXSLT_LIBS)
 AC_SUBST(XSLTPROC)
+AC_SUBST([MINGW_LIBXSLT_DLL])
 
 # ===================================================================
 # Check for system libxml
@@ -6072,7 +6075,8 @@ if test "$with_system_libxml" = "yes"; then
         AC_MSG_ERROR([xmllint is required])
     fi
 
-    libo_ADD_MINGW_EXTERNAL_DLLS([libxml2],[MINGW_EXTERNAL_DLLS],[zlib1.dll libxml2-2.dll])
+    libo_MINGW_CHECK_DLL([LIBXML],[libxml2])
+    libo_MINGW_TRY_DLL([ZLIB],[zlib1])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_LIBXML=NO
@@ -6082,7 +6086,8 @@ AC_SUBST(SYSTEM_LIBXML)
 AC_SUBST(LIBXML_CFLAGS)
 AC_SUBST(LIBXML_LIBS)
 AC_SUBST(XMLLINT)
-
+AC_SUBST([MINGW_LIBXML_DLL])
+AC_SUBST([MINGW_ZLIB_DLL])
 dnl ===================================================================
 dnl Checks for Python
 dnl ===================================================================
@@ -6309,7 +6314,7 @@ or install the Berkeley db development package.])
     fi
 
     SCPDEFS="$SCPDEFS -DSYSTEM_DB"
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libdb-4.8.dll"
+    libo_MINGW_CHECK_DLL([DB], [libdb])
 elif test $_os != iOS -a $_os != Android; then
     AC_MSG_RESULT([internal])
     SYSTEM_DB=NO
@@ -6321,6 +6326,7 @@ AC_SUBST(SYSTEM_DB)
 AC_SUBST(SYSTEM_DB_CFLAGS)
 AC_SUBST(DB_LIB)
 AC_SUBST(DB_CPPLIB)
+AC_SUBST([MINGW_DB_DLL])
 
 AC_MSG_CHECKING([whether to build the MySQL Connector extension])
 if test "x$enable_ext_mysql_connector" = "xyes" -a "x$enable_extension_integration" != "xno"; then
@@ -6802,7 +6808,18 @@ if test "$with_system_curl" = "yes"; then
         ;;
     esac
 
-    libo_ADD_MINGW_EXTERNAL_DLLS([libcurl],[MINGW_EXTERNAL_DLLS],[libintl-8.dll libidn-11.dll libnspr4.dll nssutil3.dll libplc4.dll libplds4.dll nss3.dll ssl3.dll libgpg-error-0.dll libgcrypt-11.dll libssh2-1.dll libcurl-4.dll])
+    libo_MINGW_CHECK_DLL([CURL], [libcurl])
+    libo_MINGW_TRY_DLL([INTL], [libintl])
+    libo_MINGW_TRY_DLL([IDN], [libidn])
+    libo_MINGW_TRY_DLL([NSPR4], [libnspr4])
+    libo_MINGW_TRY_DLL([NSSUTIL3], [nssutil3])
+    libo_MINGW_TRY_DLL([PLC4], [libplc4])
+    libo_MINGW_TRY_DLL([PLDS4], [libplds4])
+    libo_MINGW_TRY_DLL([NSS3], [nss3])
+    libo_MINGW_TRY_DLL([SSL3], [ssl3])
+    libo_MINGW_TRY_DLL([GPG_ERROR], [libgpg-error])
+    libo_MINGW_TRY_DLL([GCRYPT], [libgcrypt])
+    libo_MINGW_TRY_DLL([SSH2], [libssh2])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_CURL=NO
@@ -6811,6 +6828,18 @@ fi
 AC_SUBST(SYSTEM_CURL)
 AC_SUBST(CURL_CFLAGS)
 AC_SUBST(CURL_LIBS)
+AC_SUBST([MINGW_CURL_DLL])
+AC_SUBST([MINGW_GCRYPT_DLL])
+AC_SUBST([MINGW_GPG_ERROR_DLL])
+AC_SUBST([MINGW_IDN_DLL])
+AC_SUBST([MINGW_INTL_DLL])
+AC_SUBST([MINGW_NSPR4_DLL])
+AC_SUBST([MINGW_NSS3_DLL])
+AC_SUBST([MINGW_NSSUTIL3_DLL])
+AC_SUBST([MINGW_PLC4_DLL])
+AC_SUBST([MINGW_PLDS4_DLL])
+AC_SUBST([MINGW_SSH2_DLL])
+AC_SUBST([MINGW_SSL3_DLL])
 
 dnl ===================================================================
 dnl Check for system boost
@@ -7418,7 +7447,9 @@ if test "$with_system_icu" = "yes"; then
         fi
     fi
 
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS icui18n$ICU_MAJOR$ICU_MINOR.dll icuuc$ICU_MAJOR$ICU_MINOR.dll icudata$ICU_MAJOR$ICU_MINOR.dll"
+    libo_MINGW_CHECK_DLL([ICUDATA], [icudata][$ICU_MAJOR][$ICU_MINOR])
+    libo_MINGW_CHECK_DLL([ICU18N], [icui18n][$ICU_MAJOR][$ICU_MINOR])
+    libo_MINGW_CHECK_DLL([ICUUC], [icuuc][$ICU_MAJOR][$ICU_MINOR])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_ICU="NO"
@@ -7434,6 +7465,9 @@ AC_SUBST(ICU_MAJOR)
 AC_SUBST(ICU_MINOR)
 AC_SUBST(ICU_MICRO)
 AC_SUBST(ICU_RECLASSIFIED_CLOSE_PARENTHESIS)
+AC_SUBST([MINGW_ICUDATA_DLL])
+AC_SUBST([MINGW_ICUI18N_DLL])
+AC_SUBST([MINGW_ICUUC_DLL])
 
 dnl ===================================================================
 dnl Graphite
@@ -7448,7 +7482,7 @@ if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "$enable_graphite" = "" -o
         AC_MSG_RESULT([external])
         SYSTEM_GRAPHITE=YES
         PKG_CHECK_MODULES( GRAPHITE, graphite2 >= 0.9.3 )
-        MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libgraphite2.dll"
+        libo_MINGW_CHECK_DLL([GRAPHITE2], [libgraphite2])
     else
         AC_MSG_RESULT([internal])
         SYSTEM_GRAPHITE=NO
@@ -7461,6 +7495,7 @@ AC_SUBST(ENABLE_GRAPHITE)
 AC_SUBST(SYSTEM_GRAPHITE)
 AC_SUBST(GRAPHITE_LIBS)
 AC_SUBST(GRAPHITE_CFLAGS)
+AC_SUBST([MINGW_GRAPHITE2_DLL])
 
 dnl ===================================================================
 dnl SampleICC
@@ -7647,7 +7682,9 @@ if test "$with_system_neon" = "yes"; then
     NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
     NEON_CFLAGS="$NEON_CFLAGS -DSYSTEM_NEON -DUSE_DAV_LOCKS=1"
     SYSTEM_NEON=YES
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libtasn1-3.dll libgnutls-26.dll libneon-27.dll"
+    libo_MINGW_CHECK_DLL([NEON], [libneon])
+    libo_MINGW_TRY_DLL([TASN1], [libtasn1])
+    libo_MINGW_TRY_DLL([GNUTLS], [libgnutls])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_NEON=NO
@@ -7659,6 +7696,9 @@ AC_SUBST(SYSTEM_NEON)
 AC_SUBST(NEON_VERSION)
 AC_SUBST(NEON_LIBS)
 AC_SUBST(NEON_CFLAGS)
+AC_SUBST([MINGW_GNUTLS_DLL])
+AC_SUBST([MINGW_NEON_DLL])
+AC_SUBST([MINGW_TASN1_DLL])
 fi
 
 dnl ===================================================================
@@ -7681,7 +7721,8 @@ if test "$with_system_openssl" = "yes"; then
         PKG_CHECK_MODULES( OPENSSL, openssl )
     fi
     SYSTEM_OPENSSL=YES
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libssl-8.dll libcrypto-8.dll"
+    libo_MINGW_CHECK_DLL([SSL], [libssl])
+    libo_MINGW_CHECK_DLL([CRYPTO], [libcrypto])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_OPENSSL=NO
@@ -7690,6 +7731,8 @@ fi
 AC_SUBST(SYSTEM_OPENSSL)
 AC_SUBST(OPENSSL_CFLAGS)
 AC_SUBST(OPENSSL_LIBS)
+AC_SUBST([MINGW_SSL_DLL])
+AC_SUBST([MINGW_CRYPTO_DLL])
 
 dnl ===================================================================
 dnl Check for system redland
@@ -7700,7 +7743,10 @@ if test "$with_system_redland" = "yes"; then
     SYSTEM_REDLAND=YES
     dnl versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
     PKG_CHECK_MODULES(REDLAND, redland >= 1.0.8)
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libraptor-1.dll librasqal-2.dll libsqlite3-0.dll librdf-0.dll"
+    libo_MINGW_CHECK_DLL([REDLAND], [librdf])
+    libo_MINGW_TRY_DLL([RAPTOR], [libraptor])
+    libo_MINGW_TRY_DLL([RASQAL], [librasqal])
+    libo_MINGW_TRY_DLL([SQLITE3], [libsqlite3])
 else
     AC_MSG_RESULT([internal])
     BUILD_TYPE="$BUILD_TYPE REDLAND"
@@ -7709,6 +7755,10 @@ fi
 AC_SUBST(SYSTEM_REDLAND)
 AC_SUBST(REDLAND_CFLAGS)
 AC_SUBST(REDLAND_LIBS)
+AC_SUBST([MINGW_RAPTOR_DLL])
+AC_SUBST([MINGW_RASQAL_DLL])
+AC_SUBST([MINGW_REDLAND_DLL])
+AC_SUBST([MINGW_SQLITE3_DLL])
 
 dnl ===================================================================
 dnl Check for system hunspell
@@ -7730,7 +7780,7 @@ if test "$with_system_hunspell" = "yes"; then
         HUNSPELL_LIBS=-lhunspell
     fi
     AC_LANG_POP([C++])
-    libo_ADD_MINGW_EXTERNAL_DLLS([libhunspell],[MINGW_EXTERNAL_DLLS],[libhunspell-1.3-0.dll])
+    libo_MINGW_CHECK_DLL([HUNSPELL], [libhunspell-1.3])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_HUNSPELL=NO
@@ -7739,6 +7789,7 @@ fi
 AC_SUBST(SYSTEM_HUNSPELL)
 AC_SUBST(HUNSPELL_CFLAGS)
 AC_SUBST(HUNSPELL_LIBS)
+AC_SUBST([MINGW_HUNSPELL_DLL])
 
 dnl ===================================================================
 dnl Checking for altlinuxhyph
@@ -7762,7 +7813,7 @@ if test "$with_system_altlinuxhyph" = "yes"; then
         AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj],
            [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
     fi
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libhyphen-0.dll"
+    libo_MINGW_CHECK_DLL([HYPHEN], [libhyphen])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_HYPH=NO
@@ -7770,6 +7821,7 @@ else
 fi
 AC_SUBST(SYSTEM_HYPH)
 AC_SUBST(HYPHEN_LIB)
+AC_SUBST([MINGW_HYPHEN_DLL])
 
 dnl ===================================================================
 dnl Checking for mythes
@@ -7794,7 +7846,7 @@ if test "$with_system_mythes" = "yes"; then
     fi
     fi
     AC_LANG_POP([C++])
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libmythes-1.2-0.dll"
+    libo_MINGW_CHECK_DLL([MYTHES], [libmythes-1.2])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_MYTHES=NO
@@ -7803,6 +7855,7 @@ fi
 AC_SUBST(SYSTEM_MYTHES)
 AC_SUBST(MYTHES_CFLAGS)
 AC_SUBST(MYTHES_LIBS)
+AC_SUBST([MINGW_MYTHES_DLL])
 
 dnl ===================================================================
 dnl Checking for lpsolve
@@ -7820,13 +7873,14 @@ if test "$with_system_lpsolve" = "yes"; then
     AC_CHECK_LIB([lpsolve55], [make_lp], [:],
         [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
     LIBS=$save_LIBS
-    MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS lpsolve55.dll"
+    libo_MINGW_CHECK_DLL([LPSOLVE], [lpsolve55])
 else
     AC_MSG_RESULT([internal])
     SYSTEM_LPSOLVE=NO
     BUILD_TYPE="$BUILD_TYPE LPSOLVE"
 fi
 AC_SUBST(SYSTEM_LPSOLVE)
+AC_SUBST([MINGW_LPSOLVE_DLL])
 
 dnl ===================================================================
 dnl Checking for libexttextcat
@@ -9929,7 +9983,11 @@ if test "$enable_cairo_canvas" = "yes" -a "$with_system_cairo" = "yes"; then
             AC_LANG_POP([C])
         fi
     fi
-    libo_ADD_MINGW_EXTERNAL_DLLS([libcairo],[MINGW_EXTERNAL_DLLS],[libfontconfig-1.dll libfreetype-6.dll libpixman-1-0.dll libpng15-15.dll libcairo-2.dll])
+    libo_MINGW_CHECK_DLL([CAIRO], [libcairo])
+    libo_MINGW_TRY_DLL([FONTCONFIG], [libfontconfig])
+    libo_MINGW_TRY_DLL([FREETYPE], [libfreetype])
+    libo_MINGW_TRY_DLL([PIXMAN], [libpixman])
+    libo_MINGW_TRY_DLL([PNG15], [libpng15])
 else
     AC_MSG_RESULT([no])
 
@@ -9955,6 +10013,11 @@ fi
 AC_SUBST(SYSTEM_CAIRO)
 AC_SUBST(CAIRO_CFLAGS)
 AC_SUBST(CAIRO_LIBS)
+AC_SUBST([MINGW_CAIRO_DLL])
+AC_SUBST([MINGW_FONTCONFIG_DLL])
+AC_SUBST([MINGW_FREETYPE_DLL])
+AC_SUBST([MINGW_PIXMAN_DLL])
+AC_SUBST([MINGW_PNG15_DLL])
 
 
 dnl ===================================================================
@@ -11012,20 +11075,6 @@ AC_SUBST(WIN_TOUCH)
 
 AC_SUBST(BUILD_TYPE)
 
-if test "$WITH_MINGW" != "yes"; then
-    MINGW_EXTERNAL_DLLS=
-else
-    mingw_dlldir=`$CC -print-sysroot`/mingw/bin
-    for DLL in $MINGW_EXTERNAL_DLLS; do
-        AC_MSG_CHECKING([for $DLL])
-        if ! test -f "$mingw_dlldir/$DLL"; then
-            AC_MSG_ERROR([Could not find $DLL, install the appropriate mingw32-<package>, not only mingw32-<package>-devel.])
-        fi
-        AC_MSG_RESULT([$mingw_dlldir/$DLL])
-    done
-fi
-AC_SUBST(MINGW_EXTERNAL_DLLS)
-
 AC_SUBST(SOLARINC)
 AC_SUBST(SOLARLIB)
 
diff --git a/external/mingw-dlls/makefile.mk b/external/mingw-dlls/makefile.mk
index e2e51a0..7ca7cac 100644
--- a/external/mingw-dlls/makefile.mk
+++ b/external/mingw-dlls/makefile.mk
@@ -41,7 +41,47 @@ dummy:
 
 .ELSE
 
-MINGW_DLLS:=$(MINGW_EXTERNAL_DLLS)
+MINGW_DLLS:= \
+    $(MINGW_CAIRO_DLL) \
+    $(MINGW_CRYPTO_DLL) \
+    $(MINGW_CURL_DLL) \
+    $(MINGW_DB_DLL) \
+    $(MINGW_EXPAT_DLL) \
+    $(MINGW_FONTCONFIG_DLL) \
+    $(MINGW_FREETYPE_DLL) \
+    $(MINGW_GCRYPT_DLL) \
+    $(MINGW_GNUTLS_DLL) \
+    $(MINGW_GPG_ERROR_DLL) \
+    $(MINGW_GRAPHITE2_DLL) \
+    $(MINGW_HUNSPELL_DLL) \
+    $(MINGW_HYPHEN_DLL) \
+    $(MINGW_ICUDATA_DLL) \
+    $(MINGW_ICUI18N_DLL) \
+    $(MINGW_ICUUC_DLL) \
+    $(MINGW_IDN_DLL) \
+    $(MINGW_INTL_DLL) \
+    $(MINGW_LCMS2_DLL) \
+    $(MINGW_LIBXML_DLL) \
+    $(MINGW_LIBXSLT_DLL) \
+    $(MINGW_LPSOLVE_DLL) \
+    $(MINGW_MYTHES_DLL) \
+    $(MINGW_NEON_DLL) \
+    $(MINGW_NSPR4_DLL) \
+    $(MINGW_NSS3_DLL) \
+    $(MINGW_NSSUTIL3_DLL) \
+    $(MINGW_PIXMAN_DLL) \
+    $(MINGW_PLC4_DLL) \
+    $(MINGW_PLDS4_DLL) \
+    $(MINGW_PNG15_DLL) \
+    $(MINGW_RAPTOR_DLL) \
+    $(MINGW_RASQAL_DLL) \
+    $(MINGW_REDLAND_DLL) \
+    $(MINGW_SQLITE3_DLL) \
+    $(MINGW_SSH2_DLL) \
+    $(MINGW_SSL3_DLL) \
+    $(MINGW_SSL_DLL) \
+    $(MINGW_TASN1_DLL) \
+    $(MINGW_ZLIB_DLL)
 
 .IF "$(MINGW_SHARED_GCCLIB)" == "YES"
 MINGW_DLLS+=$(MINGW_GCCDLL)
diff --git a/m4/mingw.m4 b/m4/mingw.m4
index 35d638c..1cf5649 100644
--- a/m4/mingw.m4
+++ b/m4/mingw.m4
@@ -1,82 +1,104 @@
-# libo_FIND_MINGW_EXTERNAL_DLLS([library-names],[variable],[?exclude],[?default-value])
-# uses: CC, SED, WITH_MINGW
-# --------------------------------------------------------------------
-AC_DEFUN([libo_FIND_MINGW_EXTERNAL_DLLS],
-[if test "$WITH_MINGW" = yes -a -n "$CC"; then
-    _libo_mingw_libdir=`$CC -print-sysroot`/mingw/lib
-    _libo_mingw_found_la=
-    _libo_mingw_test_la([$1],[_libo_mingw_found_la],[$_libo_mingw_libdir])
-    if test "$_libo_mingw_found_la" = yes; then
-        _libo_mingw_find_dlls([$1],[$2],[$3],[$_libo_mingw_libdir])
-    else
-        # no .la files found, use defaults
-        $2="$4"
-    fi
-fi[]dnl
-]) # libo_FIND_MINGW_EXTERNAL_DLLS
+dnl Version: MPL 1.1 / GPLv3+ / LGPLv3+
+dnl
+dnl The contents of this file are subject to the Mozilla Public License Version
+dnl 1.1 (the "License"); you may not use this file except in compliance with
+dnl the License or as specified alternatively below. You may obtain a copy of
+dnl the License at http://www.mozilla.org/MPL/
+dnl
+dnl Software distributed under the License is distributed on an "AS IS" basis,
+dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+dnl for the specific language governing rights and limitations under the
+dnl License.
+dnl
+dnl Major Contributor(s):
+dnl Copyright (C) 2012 Red Hat, Inc., David Tardon <dtardon at redhat.com>
+dnl  (initial developer)
+dnl
+dnl All Rights Reserved.
+dnl
+dnl For minor contributions see the git repository.
+dnl
+dnl Alternatively, the contents of this file may be used under the terms of
+dnl either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+dnl the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+dnl in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+dnl instead of those above.
 
-# libo_ADD_MINGW_EXTERNAL_DLLS([library-names],[variable],[?default-value])
-# uses: CC, SED, WITH_MINGW
-# --------------------------------------------------------
-AC_DEFUN([libo_ADD_MINGW_EXTERNAL_DLLS],
-[libo_FIND_MINGW_EXTERNAL_DLLS([$1],[_libo_mingw_found_dlls],[$$2],[$3])
-if test -n "$_libo_mingw_found_dlls"; then
-    $2="$$2 $_libo_mingw_found_dlls"
-fi[]dnl
-]) # libo_ADD_MINGW_EXTERNAL_DLLS
+# libo_MINGW_CHECK_DLL(variable-infix,dll-name-stem,[action-if-found],[action-if-not-found])
+#
+# Checks for presence of dll dll-name-stem . Sets variable
+# MINGW_variable-infix_DLL if found, issues an error otherwise.
+#
+# It recognizes these dll patterns (x, y match any character, but they
+# are supposed to be numerals):
+# * name-x.dll
+# * name-xy.dll
+# * name-x.y.dll
+# * name.dll
+#
+#
+# Example:
+# libo_MINGW_CHECK_DLL([EXPAT], [libexpat])
+# might result in MINGW_EXPAT_DLL=libexpat-1.dll being set.
+#
+# uses CC, WITH_MINGW
+# ------------------------------------------------------------------------------------------
+AC_DEFUN([libo_MINGW_CHECK_DLL],
+[AC_ARG_VAR([MINGW_][$1][_DLL],[output variable containing the found dll name])dnl
 
-# _libo_mingw_get_libtool_var([key],[lib],[out-var])
-m4_define([_libo_mingw_get_libtool_var],
-[$3=`$SED -n -e '/^$1=/{' -e "s/.*='//" -e "s/'//" -e p -e '}' $2`[]dnl
-]) # _libo_mingw_get_libtool_var
+if test -n "$WITH_MINGW"; then
+    dnl TODO move this to configure: there is no need to call $CC more than once
+    _libo_mingw_dlldir=`$CC -print-sysroot`/mingw/bin
+    _libo_mingw_dllname=
+    AC_MSG_CHECKING([for $2 dll])
 
-# _libo_mingw_find_dll([library],[dlls],[out-var])
-m4_define([_libo_mingw_find_dll],
-[_libo_mingw_get_libtool_var([dlname],[$1],[_libo_mingw_dlname])
-_libo_mingw_dlname=`basename $_libo_mingw_dlname`
-_libo_mingw_dll_present=
-for _libo_mingw_dll in $2; do
-    if test "$_libo_mingw_dlname" = "$_libo_mingw_dll"; then
-        _libo_mingw_dll_present=yes
-        break
+    dnl try one- or two-numbered version
+    _libo_mingw_try_dll([$2][-?.dll])
+    if test "$_libo_mingw_dllname" = ""; then
+        _libo_mingw_try_dll([$2][-??.dll])
+    fi
+    dnl maybe the version contains a dot (e.g., libdb)
+    if test "$_libo_mingw_dllname" = ""; then
+        _libo_mingw_try_dll([$2][-?.?.dll])
+    fi
+    dnl maybe it is not versioned
+    if test "$_libo_mingw_dllname" = ""; then
+        _libo_mingw_try_dll([$2][.dll])
     fi
-done
-if test -z "$_libo_mingw_dll_present"; then
-    $3="$_libo_mingw_dlname"
-fi[]dnl
-]) # _libo_mingw_find_dll
 
-# _libo_mingw_find_dlls([libraries],[dlls],[out-var],[libdir])
-m4_define([_libo_mingw_find_dlls],
-[_libo_mingw_new_dlls=
-for _libo_mingw_lib in $1; do
-    _libo_mingw_lib="$4/$_libo_mingw_lib.la"
-    _libo_mingw_new_dll=
-    _libo_mingw_find_dll([$_libo_mingw_lib],[$3 $_libo_mingw_new_dlls],[_libo_mingw_new_dll])
-    if test -n "$_libo_mingw_new_dll"; then
-        _libo_mingw_new_dlls="$_libo_mingw_new_dlls $_libo_mingw_new_dll"
+    if test "$_libo_mingw_dllname" = ""; then
+        AC_MSG_RESULT([no])
+        m4_default([$4],[AC_MSG_ERROR([no dll found for $2])])
+    else
+        AC_MSG_RESULT([$_libo_mingw_dllname])
+        [MINGW_][$1][_DLL]="$_libo_mingw_dllname"
+        m4_default([$3],[])
     fi
+fi[]dnl
+]) # libo_MINGW_CHECK_DLL
+
+# libo_MINGW_TRY_DLL(variable-infix,dll-name-stem)
+#
+# Checks for presence of dll dll-name-stem . Sets variable
+# MINGW_variable-infix_DLL if found, does nothing otherwise.
+#
+# See libo_MINGW_CHECK_DLL for further info.
+#
+# uses CC, WITH_MINGW
+# ------------------------------------------------
+AC_DEFUN([libo_MINGW_TRY_DLL],
+[dnl shortcut: do not test for already found dlls
+if test -z "$[MINGW_][$1][_DLL]"; then
+    libo_MINGW_CHECK_DLL([$1],[$2],[[]],[[]])
+fi[]dnl
+]) # libo_MINGW_TRY_DLL
 
-    _libo_mingw_get_libtool_var([dependency_libs],[$_libo_mingw_lib],[_libo_mingw_dep_libs])
-    for _libo_mingw_dep_lib in $_libo_mingw_dep_libs; do
-        if test "${_libo_mingw_dep_lib%.la}" != "$_libo_mingw_dep_lib"; then
-            _libo_mingw_new_dll=''
-            _libo_mingw_find_dll([$_libo_mingw_dep_lib],[$3 $_libo_mingw_new_dlls],[_libo_mingw_new_dll])
-            if test -n "$_libo_mingw_new_dll"; then
-                _libo_mingw_new_dlls="$_libo_mingw_new_dlls $_libo_mingw_new_dll"
-            fi
-        fi
-    done
-done
-$2="$_libo_mingw_new_dlls"[]dnl
-]) # _libo_mingw_find_dlls
+# _libo_mingw_try_dll(dll-name,dll-dir)
+m4_define([_libo_mingw_try_dll],
+[_libo_mingw_trying_dll=`ls "[$_libo_mingw_dlldir]"/[$1] 2>/dev/null`
+if test -f "$_libo_mingw_trying_dll"; then
+    _libo_mingw_dllname=`basename "$_libo_mingw_trying_dll"`
+fi[]dnl
+]) # _libo_mingw_try_dll
 
-# _libo_mingw_test_la([libraries],[out-var],[libdir])
-m4_define([_libo_mingw_test_la],
-[for _libo_mingw_lib in $1; do
-    if test -f "$3/$_libo_mingw_lib.la"; then
-        $2=yes
-        break
-    fi
-done[]dnl
-]) # _libo_mingw_test_la
+dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index 0987f6f..f0ceb83 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -257,6 +257,166 @@ SCPDEFS+=-DMINGW_GCCDLL=\""$(MINGW_GCCDLL)"\"
 SCPDEFS+=-DMINGW_GXXDLL=\""$(MINGW_GXXDLL)"\"
 .ENDIF
 
+.IF "$(MINGW_CAIRO_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_CAIRO_DLL -DMINGW_CAIRO_DLL=\""$(MINGW_CAIRO_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_CURL_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_CURL_DLL -DMINGW_CURL_DLL=\""$(MINGW_CURL_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_CRYPTO_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_CRYPTO_DLL -DMINGW_CRYPTO_DLL=\""$(MINGW_CRYPTO_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_DB_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_DB_DLL -DMINGW_DB_DLL=\""$(MINGW_DB_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_EXPAT_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_EXPAT_DLL -DMINGW_EXPAT_DLL=\""$(MINGW_EXPAT_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_FONTCONFIG_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_FONTCONFIG_DLL -DMINGW_FONTCONFIG_DLL=\""$(MINGW_FONTCONFIG_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_FREETYPE_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_FREETYPE_DLL -DMINGW_FREETYPE_DLL=\""$(MINGW_FREETYPE_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_GCRYPT_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_GCRYPT_DLL -DMINGW_GCRYPT_DLL=\""$(MINGW_GCRYPT_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_GNUTLS_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_GNUTLS_DLL -DMINGW_GNUTLS_DLL=\""$(MINGW_GNUTLS_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_GPG_ERROR_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_GPG_ERROR_DLL -DMINGW_GPG_ERROR_DLL=\""$(MINGW_GPG_ERROR_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_GRAPHITE2_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_GRAPHITE2_DLL -DMINGW_GRAPHITE2_DLL=\""$(MINGW_GRAPHITE2_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_HUNSPELL_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_HUNSPELL_DLL -DMINGW_HUNSPELL_DLL=\""$(MINGW_HUNSPELL_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_HYPHEN_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_HYPHEN_DLL -DMINGW_HYPHEN_DLL=\""$(MINGW_HYPHEN_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_ICUDATA_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_ICUDATA_DLL -DMINGW_ICUDATA_DLL=\""$(MINGW_ICUDATA_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_ICUI18N_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_ICUI18N_DLL -DMINGW_ICUI18N_DLL=\""$(MINGW_ICUI18N_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_ICUUC_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_ICUUC_DLL -DMINGW_ICUUC_DLL=\""$(MINGW_ICUUC_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_IDN_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_IDN_DLL -DMINGW_IDN_DLL=\""$(MINGW_IDN_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_INTL_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_INTL_DLL -DMINGW_INTL_DLL=\""$(MINGW_INTL_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_LCMS2_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_LCMS2_DLL -DMINGW_LCMS2_DLL=\""$(MINGW_LCMS2_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_LIBXML_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_LIBXML_DLL -DMINGW_LIBXML_DLL=\""$(MINGW_LIBXML_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_LIBXSLT_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_LIBXSLT_DLL -DMINGW_LIBXSLT_DLL=\""$(MINGW_LIBXSLT_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_LPSOLVE_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_LPSOLVE_DLL -DMINGW_LPSOLVE_DLL=\""$(MINGW_LPSOLVE_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_MYTHES_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_MYTHES_DLL -DMINGW_MYTHES_DLL=\""$(MINGW_MYTHES_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_NEON_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_NEON_DLL -DMINGW_NEON_DLL=\""$(MINGW_NEON_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_NSPR4_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_NSPR4_DLL -DMINGW_NSPR4_DLL=\""$(MINGW_NSPR4_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_NSS3_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_NSS3_DLL -DMINGW_NSS3_DLL=\""$(MINGW_NSS3_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_NSSUTIL3_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_NSSUTIL3_DLL -DMINGW_NSSUTIL3_DLL=\""$(MINGW_NSSUTIL3_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_PIXMAN_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_PIXMAN_DLL -DMINGW_PIXMAN_DLL=\""$(MINGW_PIXMAN_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_PLC4_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_PLC4_DLL -DMINGW_PLC4_DLL=\""$(MINGW_PLC4_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_PLDS4_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_PLDS4_DLL -DMINGW_PLDS4_DLL=\""$(MINGW_PLDS4_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_PNG15_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_PNG15_DLL -DMINGW_PNG15_DLL=\""$(MINGW_PNG15_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_RAPTOR_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_RAPTOR_DLL -DMINGW_RAPTOR_DLL=\""$(MINGW_RAPTOR_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_RASQAL_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_RASQAL_DLL -DMINGW_RASQAL_DLL=\""$(MINGW_RASQAL_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_REDLAND_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_REDLAND_DLL -DMINGW_REDLAND_DLL=\""$(MINGW_REDLAND_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_SQLITE3_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_SQLITE3_DLL -DMINGW_SQLITE3_DLL=\""$(MINGW_SQLITE3_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_SSH2_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_SSH2_DLL -DMINGW_SSH2_DLL=\""$(MINGW_SSH2_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_SSL_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_SSL_DLL -DMINGW_SSL_DLL=\""$(MINGW_SSL_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_SSL3_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_SSL3_DLL -DMINGW_SSL3_DLL=\""$(MINGW_SSL3_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_TASN1_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_TASN1_DLL -DMINGW_TASN1_DLL=\""$(MINGW_TASN1_DLL)"\"
+.ENDIF
+
+.IF "$(MINGW_ZLIB_DLL)" != ""
+SCPDEFS += -DNEEDS_MINGW_ZLIB_DLL -DMINGW_ZLIB_DLL=\""$(MINGW_ZLIB_DLL)"\"
+.ENDIF
+
 .IF "$(SYSTEM_GDKPIXBUF)" == "YES"
 SCPDEFS+=-DSYSTEM_GDKPIXBUF
 .ENDIF
diff --git a/scp2/source/ooo/mingw_dlls.scp b/scp2/source/ooo/mingw_dlls.scp
index 8e4d7ee..062d4ae 100644
--- a/scp2/source/ooo/mingw_dlls.scp
+++ b/scp2/source/ooo/mingw_dlls.scp
@@ -37,92 +37,175 @@
         Styles = (PACKED); \
     End
 
+#define MINGW_DLL_COND(cond,id,name) \
+
+
 #ifdef SYSTEM_EXPAT
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libexpat, libexpat-1.dll )
+#ifdef NEEDS_MINGW_EXPAT_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libexpat, MINGW_EXPAT_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_LIBXSLT
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libxslt, libxslt-1.dll )
+#ifdef NEEDS_MINGW_LIBXSLT_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libxslt, MINGW_LIBXSLT_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_LIBXML
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Zlib,    zlib1.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libxml2, libxml2-2.dll )
+#ifdef NEEDS_MINGW_ZLIB_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Zlib,    MINGW_ZLIB_DLL )
+#endif
+#ifdef NEEDS_MINGW_LIBXML_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libxml2, MINGW_LIBXML_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_DB
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libdb, libdb-4.8.dll )
+#ifdef NEEDS_MINGW_DB_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libdb, MINGW_DB_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_CURL
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libintl,     libintl-8.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libdn,       libidn-11.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libnspr,     libnspr4.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Nssutil,     nssutil3.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libplc,      libplc4.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libplds,     libplds4.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_nss,         nss3.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_ssl,         ssl3.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgpgerror, libgpg-error-0.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgcrypt,   libgcrypt-11.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libssh,      libssh2-1.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcurl,     libcurl-4.dll )
+#ifdef NEEDS_MINGW_INTL_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libintl,     MINGW_INTL_DLL )
+#endif
+#ifdef NEEDS_MINGW_IDN_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libdn,       MINGW_IDN_DLL )
+#endif
+#ifdef NEEDS_MINGW_NSPR4_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libnspr,     MINGW_NSPR4_DLL )
+#endif
+#ifdef NEEDS_MINGW_NSSUTIL3_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Nssutil,     MINGW_NSSUTIL3_DLL )
+#endif
+#ifdef NEEDS_MINGW_PLC4_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libplc,      MINGW_PLC4_DLL )
+#endif
+#ifdef NEEDS_MINGW_PLDS4_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libplds,     MINGW_PLDS4_DLL )
+#endif
+#ifdef NEEDS_MINGW_NSS3_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_nss,         MINGW_NSS3_DLL )
+#endif
+#ifdef NEEDS_MINGW_SSL3_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_ssl,         MINGW_SSL3_DLL )
+#endif
+#ifdef NEEDS_MINGW_GPG_ERROR_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgpgerror, MINGW_GPG_ERROR_DLL )
+#endif
+#ifdef NEEDS_MINGW_GCRYPT_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgcrypt,   MINGW_GCRYPT_DLL )
+#endif
+#ifdef NEEDS_MINGW_SSH2_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libssh,      MINGW_SSH2_DLL )
+#endif
+#ifdef NEEDS_MINGW_CURL_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcurl,     MINGW_CURL_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_ICU
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Icui18n, STRING(CONCAT4(icui18n,ICU_MAJOR,ICU_MINOR,.dll)) )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Icuuc,   STRING(CONCAT4(icuuc,ICU_MAJOR,ICU_MINOR,.dll)) )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Icudata, STRING(CONCAT4(icudata,ICU_MAJOR,ICU_MINOR,.dll)) )
+#ifdef NEEDS_MINGW_ICUI18N_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Icui18n, MINGW_ICUI18N_DLL )
+#endif
+#ifdef NEEDS_MINGW_ICUUC_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Icuuc,   MINGW_ICUUC_DLL )
+#endif
+#ifdef NEEDS_MINGW_ICUDATA_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Icudata, MINGW_ICUDATA_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_GRAPHITE
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgrahpite, libgraphite2.dll )
+#ifdef NEEDS_MINGW_GRAPHITE2_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgrahpite, MINGW_GRAPHITE2_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_NEON
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libtasn,   libtasn1-3.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgnutls, libgnutls-26.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libneon,   libneon-27.dll )
+#ifdef NEEDS_MINGW_TASN1_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libtasn,   MINGW_TASN1_DLL )
+#endif
+#ifdef NEEDS_MINGW_GNUTLS_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libgnutls, MINGW_GNUTLS_DLL )
+#endif
+#ifdef NEEDS_MINGW_NEON_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libneon,   MINGW_NEON_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_OPENSSL
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libssl, libssl-8.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcrypto, libcrypto-8.dll )
+#ifdef NEEDS_MINGW_SSL_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libssl, MINGW_SSL_DLL )
+#endif
+#ifdef NEEDS_MINGW_CRYPTO_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcrypto, MINGW_CRYPTO_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_REDLAND
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libraptor, libraptor-1.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Librasqal, librasqal-2.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libqslite, libsqlite3-0.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Librdf,    librdf-0.dll )
+#ifdef NEEDS_MINGW_RAPTOR_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libraptor, MINGW_RAPTOR_DLL )
+#endif
+#ifdef NEEDS_MINGW_RASQAL_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Librasqal, MINGW_RASQAL_DLL )
+#endif
+#ifdef NEEDS_MINGW_SQLITE3_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libqslite, MINGW_SQLITE3_DLL )
+#endif
+#ifdef NEEDS_MINGW_REDLAND_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Librdf,    MINGW_REDLAND_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_HUNSPELL
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libhunspell, libhunspell-1.3-0.dll )
+#ifdef NEEDS_MINGW_HUNSPELL_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libhunspell, MINGW_HUNSPELL_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_HYPH
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libhyphen, libhyphen-0.dll )
+#ifdef NEEDS_MINGW_HYPHEN_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libhyphen, MINGW_HYPHEN_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_MYTHES
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libmythes, libmythes-1.2-0.dll )
+#ifdef NEEDS_MINGW_MYTHES_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libmythes, MINGW_MYTHES_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_LPSOLVE
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Lpsolve, lpsolve55.dll )
+#ifdef NEEDS_MINGW_LPSOLVE_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Lpsolve, MINGW_LPSOLVE_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_CAIRO
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libfontconfig, libfontconfig-1.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libfreetype,   libfreetype-6.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libpixman,     libpixman-1-0.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libpng,        libpng15-15.dll )
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcairo,      libcairo-2.dll )
+#ifdef NEEDS_MINGW_FONTCONFIG_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libfontconfig, MINGW_FONTCONFIG_DLL )
+#endif
+#ifdef NEEDS_MINGW_FREETYPE_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libfreetype,   MINGW_FREETYPE_DLL )
+#endif
+#ifdef NEEDS_MINGW_PIXMAN_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libpixman,     MINGW_PIXMAN_DLL )
+#endif
+#ifdef NEEDS_MINGW_PNG15_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libpng,        MINGW_PNG15_DLL )
+#endif
+#ifdef NEEDS_MINGW_CAIRO_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Libcairo,      MINGW_CAIRO_DLL )
+#endif
 #endif
 
 #ifdef SYSTEM_LCMS2
-MINGW_DLL( gid_Brand_File_Lib_Mingw_Liblcms2, liblcms2-2.dll )
+#ifdef NEEDS_MINGW_LCMS2_DLL
+MINGW_DLL( gid_Brand_File_Lib_Mingw_Liblcms2, MINGW_LCMS2_DLL )
+#endif
 #endif
 
 #if defined(MINGW_GCCDLL)


More information about the Libreoffice-commits mailing list