summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config_host.mk.in41
-rw-r--r--configure.in111
-rw-r--r--external/mingw-dlls/makefile.mk42
-rw-r--r--m4/mingw.m4170
-rw-r--r--scp2/source/ooo/makefile.mk160
-rw-r--r--scp2/source/ooo/mingw_dlls.scp163
6 files changed, 540 insertions, 147 deletions
diff --git a/config_host.mk.in b/config_host.mk.in
index 77d149871c11..b487e4f48fa3 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 b7c22760fed4..fa5cac5473b0 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 e2e51a0b5697..7ca7cacc7dca 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 35d638c9565d..1cf5649e5014 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@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 0987f6f3b37f..f0ceb8333ab3 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 8e4d7eeae14f..062d4ae3401c 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)