Makefile.fetch | 3 Repository.mk | 2 RepositoryExternal.mk | 52 +++++++++++++++ config_host.mk.in | 8 ++ configure.ac | 83 ++++++++++++++++--------- download.lst | 6 + external/Module_external.mk | 2 external/apr/ExternalProject_apr.mk | 37 +++++++++++ external/apr/ExternalProject_apr_util.mk | 40 ++++++++++++ external/apr/Makefile | 7 ++ external/apr/Module_apr.mk | 19 +++++ external/apr/README | 5 + external/apr/UnpackedTarball_apr.mk | 14 ++++ external/apr/UnpackedTarball_apr_util.mk | 22 ++++++ external/apr/windows.build.patch.1 | 53 +++++++++++++++ external/serf/ExternalProject_serf.mk | 48 ++++++++++++++ external/serf/Makefile | 7 ++ external/serf/Module_serf.mk | 17 +++++ external/serf/README | 4 + external/serf/UnpackedTarball_serf.mk | 22 ++++++ external/serf/windows.build.patch.1 | 29 ++++++++ postprocess/CustomTarget_registry.mk | 2 postprocess/Rdb_services.mk | 2 solenv/gbuild/ExternalProject.mk | 1 solenv/gbuild/platform/com_GCC_class.mk | 1 solenv/gbuild/platform/com_MSC_class.mk | 10 +++ ucb/Library_ucpdav1.mk | 55 ++++++++++++++++ ucb/Module_ucb.mk | 7 -- ucb/source/ucp/webdav/ContentProperties.hxx | 4 - ucb/source/ucp/webdav/PropertyMap.hxx | 4 - ucb/source/ucp/webdav/webdavcontent.cxx | 4 - ucb/source/ucp/webdav/webdavresponseparser.cxx | 4 - ucb/source/ucp/webdav/webdavservices.cxx | 10 --- 33 files changed, 529 insertions(+), 55 deletions(-)
New commits: commit dcae0509135c2067635ae3cf84b05dc9fb3d2d02 Author: Matúš Kukan <matus.ku...@collabora.com> Date: Tue Feb 25 21:47:33 2014 +0100 Build webdav based on serf if neon is disabled. Change-Id: I0cbb89c8d5ac65eda8bb21aaf0d07996a015d281 diff --git a/Repository.mk b/Repository.mk index 79d7089..5072b70 100644 --- a/Repository.mk +++ b/Repository.mk @@ -533,7 +533,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ textconv_dict \ ucb1 \ ucbhelper \ - $(if $(DISABLE_NEON),,ucpdav1) \ + $(if $(WITH_WEBDAV),ucpdav1) \ ucpfile1 \ ucpftp1 \ ucpchelp1 \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index eec50bd..a4daea7 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1000,7 +1000,9 @@ gb_LinkTarget__use_liblangtag := endif # ENABLE_LIBLANGTAG -ifneq ($(DISABLE_NEON),) +gb_ExternalProject__use_apr := + +ifeq ($(WITH_WEBDAV),serf) define gb_LinkTarget__use_apr $(call gb_LinkTarget_set_include,$(1),\ @@ -1048,9 +1050,7 @@ endif endef -else - -gb_ExternalProject__use_apr := +else ifeq ($(WITH_WEBDAV),neon) ifneq ($(SYSTEM_NEON),) @@ -1088,7 +1088,7 @@ endef endif # SYSTEM_NEON -endif # DISABLE_NEON +endif # WITH_WEBDAV ifneq ($(SYSTEM_REDLAND),) diff --git a/config_host.mk.in b/config_host.mk.in index cbe2978..1c2d25b 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -95,7 +95,6 @@ export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@ export DISABLE_DBCONNECTIVITY=@DISABLE_DBCONNECTIVITY@ export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@ export DISABLE_EXPORT=@DISABLE_EXPORT@ -export DISABLE_NEON=@DISABLE_NEON@ export DISABLE_OPENSSL=@DISABLE_OPENSSL@ export DISABLE_PYTHON=@DISABLE_PYTHON@ export DISABLE_SCRIPTING=@DISABLE_SCRIPTING@ @@ -607,6 +606,7 @@ export WITH_MOZAB4WIN=@WITH_MOZAB4WIN@ export WITH_MYSPELL_DICTS=@WITH_MYSPELL_DICTS@ export WITH_POOR_HELP_LOCALIZATIONS=@WITH_POOR_HELP_LOCALIZATIONS@ export WITH_THEMES=@WITH_THEMES@ +export WITH_WEBDAV=@WITH_WEBDAV@ export WORKDIR=@WORKDIR@ export WORKDIR_FOR_BUILD=@WORKDIR_FOR_BUILD@ export WORK_STAMP=@SOURCEVERSION@ diff --git a/configure.ac b/configure.ac index 6c78067..cdae8b5 100644 --- a/configure.ac +++ b/configure.ac @@ -652,7 +652,6 @@ linux-android*) build_gstreamer=no build_gstreamer_0_10=no enable_lotuswordpro=no - enable_neon=no enable_mpl_subset=yes enable_opengl=no enable_report_builder=no @@ -1777,6 +1776,14 @@ AC_ARG_WITH(lpsolver, WITH_LPSOLVER=$withval, WITH_LPSOLVER="lpsolve") +AC_ARG_WITH(webdav, + AS_HELP_STRING([--with-webdav], + [Specify which library to use for webdav implementation. + Possible values: "neon", "serf", "no". The default value is "neon". + Example: --with-webdav="serf"]), + WITH_WEBDAV=$withval, + WITH_WEBDAV="neon") + AC_ARG_WITH(linker-hash-style, AS_HELP_STRING([--with-linker-hash-style], [Use linker with --hash-style=<style> when linking shared objects. @@ -7333,7 +7340,6 @@ if test $_os = iOS; then enable_lotuswordpro=no enable_postgresql_sdbc=no enable_lotuswordpro=no - enable_neon=no enable_extension_integration=no enable_report_builder=no with_theme="tango" @@ -9156,15 +9162,16 @@ AC_SUBST(XRANDR_CFLAGS) AC_SUBST(XRANDR_LIBS) AC_SUBST(ENABLE_RANDR) -dnl =================================================================== -dnl Check for building neon -dnl =================================================================== -AC_MSG_CHECKING([whether to use neon]) -if test "$enable_neon" = "no"; then - AC_MSG_RESULT([no]) - DISABLE_NEON=TRUE - AC_SUBST(DISABLE_NEON) - +if test "$enable_neon" = "no" -o "$enable_mpl_subset" = "yes"; then + WITH_WEBDAV="serf" +fi +if test $_os = iOS -o $_os = Android; then + WITH_WEBDAV="no" +fi +AC_MSG_CHECKING([for webdav library]) +case "$WITH_WEBDAV" in +serf) + AC_MSG_RESULT([serf]) # Check for system apr-util libo_CHECK_SYSTEM_MODULE([apr],[APR],[apr-util-1], ["-I${WORKDIR}/UnpackedTarball/apr/include -I${WORKDIR}/UnpackedTarball/apr_util/include"], @@ -9179,11 +9186,10 @@ if test "$enable_neon" = "no"; then if test "$COM" = "MSC"; then SERF_LIBS="${WORKDIR}/UnpackedTarball/serf/Release/serf-1.lib" fi -else - AC_MSG_RESULT([yes]) - dnl =================================================================== - dnl Check for system neon - dnl =================================================================== + ;; +neon) + AC_MSG_RESULT([neon]) + # Check for system neon libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.26.0]) if test "$with_system_neon" = "yes"; then NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`" @@ -9194,7 +9200,13 @@ else NEON_VERSION=0295 fi AC_SUBST(NEON_VERSION) -fi + ;; +*) + AC_MSG_RESULT([none, disabled]) + WITH_WEBDAV="" + ;; +esac +AC_SUBST(WITH_WEBDAV) dnl =================================================================== dnl Check for disabling cve_tests @@ -9257,7 +9269,7 @@ dnl =================================================================== dnl Check for building gnutls dnl =================================================================== AC_MSG_CHECKING([whether to use gnutls]) -if test "$enable_neon" != "no" && test "$enable_openssl" = "no"; then +if test "$WITH_WEBDAV" = "neon" && test "$enable_openssl" = "no"; then AC_MSG_RESULT([yes]) AM_PATH_LIBGCRYPT() PKG_CHECK_MODULES(GNUTLS, [gnutls],, @@ -12481,8 +12493,8 @@ if test "$enable_mpl_subset" = "yes"; then if test "$enable_lotuswordpro" = "yes"; then AC_MSG_ERROR([need to --disable-lotuswordpro - a Lotus Word Pro file format import filter.]) fi - if test "$enable_neon" != "no" -o "x$DISABLE_NEON" != "xTRUE"; then - AC_MSG_ERROR([need to --disable-neon - webdav support.]) + if test "$WITH_WEBDAV" = "neon"; then + AC_MSG_ERROR([need --with-webdav=serf or --without-webdav - webdav support.]) fi if test "x$enable_ext_mariadb_connector" = "xyes"; then AC_MSG_ERROR([need to --disable-ext-mariadb-connector - mariadb/mysql support.]) diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk index ebd2afe..76f722c 100644 --- a/postprocess/CustomTarget_registry.mk +++ b/postprocess/CustomTarget_registry.mk @@ -335,7 +335,7 @@ ifneq (unx,$(GUIBASE)) postprocess_FILES_main += \ $(postprocess_MOD)/org/openoffice/Office/Paths-notunixdesktop.xcu endif -ifeq ($(DISABLE_NEON),$(false)) +ifneq ($(WITH_WEBDAV),) postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/ucb/Configuration-neon.xcu endif ifeq ($(ENABLE_EVOAB2),TRUE) diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk index 41f3077..f6a9b17 100755 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk @@ -152,7 +152,7 @@ $(eval $(call gb_Rdb_add_components,services,\ winaccessibility/source/service/winaccessibility \ ) \ ) \ - $(if $(DISABLE_NEON),, \ + $(if $(WITH_WEBDAV), \ ucb/source/ucp/webdav-neon/ucpdav1 \ ) \ $(if $(DISABLE_SCRIPTING),, \ diff --git a/ucb/Library_ucpdav1.mk b/ucb/Library_ucpdav1.mk index 55b3a323..42d273f 100644 --- a/ucb/Library_ucpdav1.mk +++ b/ucb/Library_ucpdav1.mk @@ -24,6 +24,8 @@ $(eval $(call gb_Library_use_libraries,ucpdav1,\ $(gb_UWINAPI) \ )) +ifeq ($(WITH_WEBDAV),neon) + $(eval $(call gb_Library_use_externals,ucpdav1,\ boost_headers \ libxml2 \ @@ -55,6 +57,59 @@ $(eval $(call gb_Library_add_exception_objects,ucpdav1,\ ucb/source/ucp/webdav-neon/webdavservices \ )) +else # WITH_WEBDAV == serf + +$(eval $(call gb_Library_set_warnings_not_errors,ucpdav1)) + +$(eval $(call gb_Library_use_externals,ucpdav1,\ + boost_headers \ + apr \ + openssl \ + serf \ + zlib \ +)) + +$(eval $(call gb_Library_add_libs,ucpdav1,\ + $(if $(filter $(OS),LINUX),-lpthread) \ +)) + +$(eval $(call gb_Library_add_exception_objects,ucpdav1,\ + ucb/source/ucp/webdav/AprEnv \ + ucb/source/ucp/webdav/ContentProperties \ + ucb/source/ucp/webdav/DAVProperties \ + ucb/source/ucp/webdav/DAVResourceAccess \ + ucb/source/ucp/webdav/DAVSessionFactory \ + ucb/source/ucp/webdav/DateTimeHelper \ + ucb/source/ucp/webdav/SerfCallbacks \ + ucb/source/ucp/webdav/SerfCopyReqProcImpl \ + ucb/source/ucp/webdav/SerfDeleteReqProcImpl \ + ucb/source/ucp/webdav/SerfGetReqProcImpl \ + ucb/source/ucp/webdav/SerfHeadReqProcImpl \ + ucb/source/ucp/webdav/SerfInputStream \ + ucb/source/ucp/webdav/SerfMkColReqProcImpl \ + ucb/source/ucp/webdav/SerfMoveReqProcImpl \ + ucb/source/ucp/webdav/SerfPostReqProcImpl \ + ucb/source/ucp/webdav/SerfPropFindReqProcImpl \ + ucb/source/ucp/webdav/SerfPropPatchReqProcImpl \ + ucb/source/ucp/webdav/SerfPutReqProcImpl \ + ucb/source/ucp/webdav/SerfRequestProcessor \ + ucb/source/ucp/webdav/SerfRequestProcessorImpl \ + ucb/source/ucp/webdav/SerfRequestProcessorImplFac \ + ucb/source/ucp/webdav/SerfSession \ + ucb/source/ucp/webdav/SerfUri \ + ucb/source/ucp/webdav/UCBDeadPropertyValue \ + ucb/source/ucp/webdav/webdavcontent \ + ucb/source/ucp/webdav/webdavcontentcaps \ + ucb/source/ucp/webdav/webdavdatasupplier \ + ucb/source/ucp/webdav/webdavprovider \ + ucb/source/ucp/webdav/webdavresponseparser \ + ucb/source/ucp/webdav/webdavresultset \ + ucb/source/ucp/webdav/webdavservices \ + )) + #ucb/source/ucp/webdav/SerfLockStore + +endif # WITH_WEBDAV + ifeq ($(OS),WNT) $(eval $(call gb_Library_use_system_win32_libs,ucpdav1,\ ws2_32 \ diff --git a/ucb/Module_ucb.mk b/ucb/Module_ucb.mk index 1e64c24..c07d7510 100644 --- a/ucb/Module_ucb.mk +++ b/ucb/Module_ucb.mk @@ -14,6 +14,7 @@ $(eval $(call gb_Module_add_targets,ucb,\ Library_srtrs1 \ Library_ucb1 \ $(if $(ENABLE_CMIS),Library_ucpcmis1) \ + $(if $(WITH_WEBDAV),Library_ucpdav1) \ Library_ucpexpand1 \ Library_ucpext \ Library_ucpfile1 \ @@ -23,12 +24,6 @@ $(eval $(call gb_Module_add_targets,ucb,\ Library_ucptdoc1 \ )) -ifneq ($(DISABLE_NEON),TRUE) -$(eval $(call gb_Module_add_targets,ucb,\ - Library_ucpdav1 \ -)) -endif - ifeq ($(ENABLE_GIO),TRUE) $(eval $(call gb_Module_add_targets,ucb,\ Library_ucpgio1 \ diff --git a/ucb/source/ucp/webdav/ContentProperties.hxx b/ucb/source/ucp/webdav/ContentProperties.hxx index 286a699..374ad46 100644 --- a/ucb/source/ucp/webdav/ContentProperties.hxx +++ b/ucb/source/ucp/webdav/ContentProperties.hxx @@ -24,7 +24,7 @@ #include <memory> #include <vector> -#include <unordered_map> +#include <boost/unordered_map.hpp> #include <rtl/ustring.hxx> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Sequence.hxx> @@ -82,7 +82,7 @@ public: }; -typedef std::unordered_map +typedef boost::unordered_map < OUString, PropertyValue, diff --git a/ucb/source/ucp/webdav/PropertyMap.hxx b/ucb/source/ucp/webdav/PropertyMap.hxx index c1ec982..bc61ebf 100644 --- a/ucb/source/ucp/webdav/PropertyMap.hxx +++ b/ucb/source/ucp/webdav/PropertyMap.hxx @@ -22,7 +22,7 @@ #ifndef _WEBDAV_UCP_PROPERTYMAP_HXX #define _WEBDAV_UCP_PROPERTYMAP_HXX -#include <unordered_set> +#include <boost/unordered_set.hpp> #include <com/sun/star/beans/Property.hpp> namespace http_dav_ucp { @@ -46,7 +46,7 @@ struct hashPropertyName } }; -typedef std::unordered_set +typedef boost::unordered_set < ::com::sun::star::beans::Property, hashPropertyName, diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx index 8c1b526..ad60a93 100644 --- a/ucb/source/ucp/webdav/webdavcontent.cxx +++ b/ucb/source/ucp/webdav/webdavcontent.cxx @@ -285,7 +285,7 @@ void SAL_CALL Content::release() // virtual uno::Any SAL_CALL Content::queryInterface( const uno::Type & rType ) - throw ( uno::RuntimeException ) + throw ( uno::RuntimeException, std::exception ) { // Note: isFolder may require network activities! So call it only // if it is really necessary!!! @@ -341,7 +341,7 @@ XTYPEPROVIDER_COMMON_IMPL( Content ); // virtual uno::Sequence< uno::Type > SAL_CALL Content::getTypes() - throw( uno::RuntimeException ) + throw( uno::RuntimeException, std::exception ) { sal_Bool bFolder = sal_False; try diff --git a/ucb/source/ucp/webdav/webdavresponseparser.cxx b/ucb/source/ucp/webdav/webdavresponseparser.cxx index 8be333a..cb9535b 100644 --- a/ucb/source/ucp/webdav/webdavresponseparser.cxx +++ b/ucb/source/ucp/webdav/webdavresponseparser.cxx @@ -28,7 +28,7 @@ #include <com/sun/star/ucb/LockScope.hpp> #include <com/sun/star/ucb/LockType.hpp> #include <map> -#include <unordered_map> +#include <boost/unordered_map.hpp> @@ -94,7 +94,7 @@ namespace WebDAVName StrToWebDAVName(const OUString& rStr) { - typedef std::unordered_map< OUString, WebDAVName, OUStringHash > WebDAVNameMapper; + typedef boost::unordered_map< OUString, WebDAVName, OUStringHash > WebDAVNameMapper; typedef std::pair< OUString, WebDAVName > WebDAVNameValueType; static WebDAVNameMapper aWebDAVNameMapperList; diff --git a/ucb/source/ucp/webdav/webdavservices.cxx b/ucb/source/ucp/webdav/webdavservices.cxx index 4b85a97..47509dd 100644 --- a/ucb/source/ucp/webdav/webdavservices.cxx +++ b/ucb/source/ucp/webdav/webdavservices.cxx @@ -25,15 +25,7 @@ using namespace com::sun::star; - -extern "C" void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - - -extern "C" void * SAL_CALL component_getFactory( +extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL ucpdav1_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) { void * pRet = 0; commit 0b27253aff771e104a9fd5d17595b205b2fc39fd Author: Matúš Kukan <matus.ku...@collabora.com> Date: Thu Feb 6 12:28:36 2014 +0100 Add apr and serf externals for alternative webdav implementation. Change-Id: I5e93bb6fb53537b889c6ba9888f0f32a0d6f8050 diff --git a/Makefile.fetch b/Makefile.fetch index 3c1799a..683f238 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -76,6 +76,8 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(foreach item, \ $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \ $(call fetch_Optional,ABW,ABW_TARBALL) \ + $(call fetch_Optional,APR,APR_TARBALL) \ + $(call fetch_Optional,APR,APR_UTIL_TARBALL) \ $(call fetch_Optional,CDR,CDR_TARBALL) \ $(call fetch_Optional,COINMP,COINMP_TARBALL) \ $(call fetch_Optional,EBOOK,EBOOK_TARBALL) \ @@ -88,6 +90,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \ $(call fetch_Optional,MWAW,MWAW_TARBALL) \ $(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \ + $(call fetch_Optional,SERF,SERF_TARBALL) \ $(call fetch_Optional,VISIO,VISIO_TARBALL) \ ,$(call fetch_Download_item_special,http://dev-www.libreoffice.org/src,$(item))) $(foreach item, \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 4ff6748..eec50bd 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1000,6 +1000,57 @@ gb_LinkTarget__use_liblangtag := endif # ENABLE_LIBLANGTAG +ifneq ($(DISABLE_NEON),) + +define gb_LinkTarget__use_apr +$(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ + $(APR_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1),\ + $(APR_LIBS) \ +) + +ifeq ($(SYSTEM_APR),) +$(call gb_LinkTarget_use_system_win32_libs,$(1),\ + mswsock \ + rpcrt4 \ + shell32 \ +) +$(call gb_LinkTarget_add_defs,$(1),\ + -DAPR_DECLARE_STATIC \ + -DAPU_DECLARE_STATIC \ +) +$(call gb_LinkTarget_use_external_project,$(1),apr_util) +endif + +endef + +define gb_ExternalProject__use_apr +ifeq ($(SYSTEM_APR),) +$(call gb_ExternalProject_use_external_project,$(1),apr_util) +endif + +endef + +define gb_LinkTarget__use_serf +$(call gb_LinkTarget_set_include,$(1),\ + $(SERF_CFLAGS) \ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_add_libs,$(1),\ + $(SERF_LIBS) \ +) + +ifeq ($(SYSTEM_SERF),) +$(call gb_LinkTarget_use_external_project,$(1),serf) +endif + +endef + +else + +gb_ExternalProject__use_apr := ifneq ($(SYSTEM_NEON),) @@ -1037,6 +1088,7 @@ endef endif # SYSTEM_NEON +endif # DISABLE_NEON ifneq ($(SYSTEM_REDLAND),) diff --git a/config_host.mk.in b/config_host.mk.in index 2108ffe..cbe2978 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -23,6 +23,8 @@ export ANDROID_SDK_HOME=@ANDROID_SDK_HOME@ export ANT=@ANT@ export ANT_HOME=@ANT_HOME@ export ANT_LIB=@ANT_LIB@ +export APR_CFLAGS=$(gb_SPACE)@APR_CFLAGS@ +export APR_LIBS=$(gb_SPACE)@APR_LIBS@ export AR=@AR@ export ASSERT_ALWAYS_ABORT=@ASSERT_ALWAYS_ABORT@ export ATL_INCLUDE=@ATL_INCLUDE@ @@ -467,6 +469,8 @@ export SAL_ENABLE_FILE_LOCKING=1 export SCPDEFS=@SCPDEFS@ export SDKDIRNAME=@SDKDIRNAME@ export SDKDIRNAME_FOR_BUILD=@SDKDIRNAME_FOR_BUILD@ +export SERF_CFLAGS=$(gb_SPACE)@SERF_CFLAGS@ +export SERF_LIBS=$(gb_SPACE)@SERF_LIBS@ export SHOWINCLUDES_PREFIX=@SHOWINCLUDES_PREFIX@ export SOLARINC=@SOLARINC@ export SPLIT_APP_MODULES=@SPLIT_APP_MODULES@ @@ -483,6 +487,7 @@ export SUNTEMPLATES_IT_PACK=@SUNTEMPLATES_IT_PACK@ export SYSBASE=@SYSBASE@ export SYSTEM_ABW=@SYSTEM_ABW@ export SYSTEM_APACHE_COMMONS=@SYSTEM_APACHE_COMMONS@ +export SYSTEM_APR=@SYSTEM_APR@ export SYSTEM_BOOST=@SYSTEM_BOOST@ export SYSTEM_BSH=@SYSTEM_BSH@ export SYSTEM_CAIRO=@SYSTEM_CAIRO@ @@ -543,6 +548,7 @@ export SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@ export SYSTEM_PYTHON=@SYSTEM_PYTHON@ export SYSTEM_REDLAND=@SYSTEM_REDLAND@ export SYSTEM_RHINO=@SYSTEM_RHINO@ +export SYSTEM_SERF=@SYSTEM_SERF@ export SYSTEM_UCPP=@SYSTEM_UCPP@ export SYSTEM_VIGRA=@SYSTEM_VIGRA@ export SYSTEM_VISIO=@SYSTEM_VISIO@ diff --git a/configure.ac b/configure.ac index 6742046..6c78067 100644 --- a/configure.ac +++ b/configure.ac @@ -9164,21 +9164,36 @@ if test "$enable_neon" = "no"; then AC_MSG_RESULT([no]) DISABLE_NEON=TRUE AC_SUBST(DISABLE_NEON) + + # Check for system apr-util + libo_CHECK_SYSTEM_MODULE([apr],[APR],[apr-util-1], + ["-I${WORKDIR}/UnpackedTarball/apr/include -I${WORKDIR}/UnpackedTarball/apr_util/include"], + ["-L${WORKDIR}/UnpackedTarball/apr/.libs -lapr-1 -L${WORKDIR}/UnpackedTarball/apr_util/.libs -laprutil-1"]) + if test "$COM" = "MSC"; then + APR_LIBS="${WORKDIR}/UnpackedTarball/apr/LibR/apr-1.lib ${WORKDIR}/UnpackedTarball/apr_util/LibR/aprutil-1.lib" + fi + + # Check for system serf + libo_CHECK_SYSTEM_MODULE([serf],[SERF],[serf-1 >= 1.1.0],["-I${WORKDIR}/UnpackedTarball/serf"], + ["-L${WORKDIR}/UnpackedTarball/serf/.libs -lserf-1"]) + if test "$COM" = "MSC"; then + SERF_LIBS="${WORKDIR}/UnpackedTarball/serf/Release/serf-1.lib" + fi else AC_MSG_RESULT([yes]) -dnl =================================================================== -dnl Check for system neon -dnl =================================================================== -libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.26.0]) -if test "$with_system_neon" = "yes"; then - NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`" - libo_MINGW_CHECK_DLL([libneon]) - libo_MINGW_TRY_DLL([libtasn1]) - libo_MINGW_TRY_DLL([libgnutls]) -else - NEON_VERSION=0295 -fi -AC_SUBST(NEON_VERSION) + dnl =================================================================== + dnl Check for system neon + dnl =================================================================== + libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.26.0]) + if test "$with_system_neon" = "yes"; then + NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`" + libo_MINGW_CHECK_DLL([libneon]) + libo_MINGW_TRY_DLL([libtasn1]) + libo_MINGW_TRY_DLL([libgnutls]) + else + NEON_VERSION=0295 + fi + AC_SUBST(NEON_VERSION) fi dnl =================================================================== diff --git a/download.lst b/download.lst index fbcad54..5de30f1 100644 --- a/download.lst +++ b/download.lst @@ -1,5 +1,9 @@ ABW_MD5SUM := 40fa48e03b1e28ae0325cc34b35bc46d export ABW_TARBALL := libabw-0.0.2.tar.bz2 +APR_MD5SUM := eff9d741b0999a9bbab96862dd2a2a3d +export APR_TARBALL := apr-1.4.8.tar.gz +APR_UTIL_MD5SUM := 71a11d037240b292f824ba1eb537b4e3 +export APR_UTIL_TARBALL := apr-util-1.5.3.tar.gz CDR_MD5SUM := d88f9b94df880d2c05be943b000ca112 export CDR_TARBALL := libcdr-0.0.14.tar.bz2 COINMP_MD5SUM := 1cce53bf4b40ae29790d2c5c9f8b1129 @@ -30,6 +34,8 @@ LIBATOMIC_OPS_MD5SUM := c0b86562d5aa40761a87134f83e6adcf export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip LIBEOT_MD5SUM := aa24f5dd2a2992f4a116aa72af817548 export LIBEOT_TARBALL := libeot-0.01.tar.bz2 +SERF_MD5SUM := 4f8e76c9c6567aee1d66aba49f76a58b +export SERF_TARBALL := serf-1.2.1.tar.bz2 export APACHE_COMMONS_CODEC_TARBALL := 2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz export APACHE_COMMONS_HTTPCLIENT_TARBALL := 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz diff --git a/external/Module_external.mk b/external/Module_external.mk index a3ad7d4..3fa5501 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -23,6 +23,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ np_sdk \ $(call gb_Helper_optional,ABW,libabw) \ $(call gb_Helper_optional,APACHE_COMMONS,apache-commons) \ + $(call gb_Helper_optional,APR,apr) \ $(call gb_Helper_optional,BOOST,boost) \ $(call gb_Helper_optional,BSH,beanshell) \ $(call gb_Helper_optional,CAIRO,cairo) \ @@ -81,6 +82,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,PYTHON,python3) \ $(call gb_Helper_optional,REDLAND,redland) \ $(call gb_Helper_optional,RHINO,rhino) \ + $(call gb_Helper_optional,SERF,serf) \ $(call gb_Helper_optional,UCPP,ucpp) \ $(call gb_Helper_optional,VIGRA,vigra) \ $(call gb_Helper_optional,VISIO,libvisio) \ diff --git a/external/apr/ExternalProject_apr.mk b/external/apr/ExternalProject_apr.mk new file mode 100644 index 0000000..4848ae8 --- /dev/null +++ b/external/apr/ExternalProject_apr.mk @@ -0,0 +1,37 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,apr)) + +$(eval $(call gb_ExternalProject_register_targets,apr,\ + build \ +)) + +$(eval $(call gb_ExternalProject_use_nmake,apr,build)) + +ifeq ($(COM),MSC) +$(call gb_ExternalProject_get_state_target,apr,build): + $(call gb_ExternalProject_run,build,\ + nmake -nologo -f apr.mak \ + CFG="apr - Win32 $(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)" \ + RECURSE=0 \ + ) + +else +$(call gb_ExternalProject_get_state_target,apr,build): + +$(call gb_ExternalProject_run,build,\ + ./configure \ + --enable-static --disable-shared \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM))\ + && $(MAKE) libapr-1.la \ + ) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/ExternalProject_apr_util.mk b/external/apr/ExternalProject_apr_util.mk new file mode 100644 index 0000000..ba0f7cb --- /dev/null +++ b/external/apr/ExternalProject_apr_util.mk @@ -0,0 +1,40 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,apr_util)) + +$(eval $(call gb_ExternalProject_use_external_project,apr_util,apr)) + +$(eval $(call gb_ExternalProject_register_targets,apr_util,\ + build \ +)) + +$(eval $(call gb_ExternalProject_use_nmake,apr_util,build)) + +ifeq ($(COM),MSC) +$(call gb_ExternalProject_get_state_target,apr_util,build): + $(call gb_ExternalProject_run,build,\ + nmake -nologo -f aprutil.mak \ + CFG="aprutil - Win32 $(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)" \ + RECURSE=0 \ + ) + +else +$(call gb_ExternalProject_get_state_target,apr_util,build): + +$(call gb_ExternalProject_run,build,\ + ./configure \ + --enable-static --disable-shared \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM))\ + --with-apr=$(call gb_UnpackedTarball_get_dir,apr)/apr-1-config \ + && $(MAKE) libaprutil-1.la \ + ) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/Makefile b/external/apr/Makefile new file mode 100644 index 0000000..e4968cf --- /dev/null +++ b/external/apr/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/Module_apr.mk b/external/apr/Module_apr.mk new file mode 100644 index 0000000..6bb85fb --- /dev/null +++ b/external/apr/Module_apr.mk @@ -0,0 +1,19 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,apr)) + +$(eval $(call gb_Module_add_targets,apr,\ + UnpackedTarball_apr \ + UnpackedTarball_apr_util \ + ExternalProject_apr \ + ExternalProject_apr_util \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/README b/external/apr/README new file mode 100644 index 0000000..778bdfd --- /dev/null +++ b/external/apr/README @@ -0,0 +1,5 @@ +The mission of the Apache Portable Runtime (APR) project is to create +and maintain software libraries that provide a predictable and consistent +interface to underlying platform-specific implementations. + +From [http://apr.apache.org/]. diff --git a/external/apr/UnpackedTarball_apr.mk b/external/apr/UnpackedTarball_apr.mk new file mode 100644 index 0000000..5fa9d05 --- /dev/null +++ b/external/apr/UnpackedTarball_apr.mk @@ -0,0 +1,14 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,apr)) + +$(eval $(call gb_UnpackedTarball_set_tarball,apr,$(APR_TARBALL))) + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/UnpackedTarball_apr_util.mk b/external/apr/UnpackedTarball_apr_util.mk new file mode 100644 index 0000000..06860f1 --- /dev/null +++ b/external/apr/UnpackedTarball_apr_util.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,apr_util)) + +$(eval $(call gb_UnpackedTarball_set_tarball,apr_util,$(APR_UTIL_TARBALL))) + +$(eval $(call gb_UnpackedTarball_fix_end_of_line,apr_util,\ + aprutil.mak \ +)) + +$(eval $(call gb_UnpackedTarball_add_patches,apr_util,\ + external/apr/windows.build.patch.1 \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/apr/windows.build.patch.1 b/external/apr/windows.build.patch.1 new file mode 100644 index 0000000..929910b --- /dev/null +++ b/external/apr/windows.build.patch.1 @@ -0,0 +1,53 @@ +diff -ur apr_util.org/aprutil.mak apr_util/aprutil.mak +--- apr_util.org/aprutil.mak 2014-03-05 16:40:02.385701779 +0100 ++++ apr_util/aprutil.mak 2014-03-05 16:40:49.409702332 +0100 +@@ -210,8 +210,6 @@ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ +- "..\apr-iconv\LibR\apriconv-1.lib" \ +- ".\xml\expat\lib\LibR\xml.lib" + + "$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< +@@ -406,8 +404,6 @@ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ +- "..\apr-iconv\LibD\apriconv-1.lib" \ +- ".\xml\expat\lib\LibD\xml.lib" + + "$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< +@@ -602,8 +598,6 @@ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ +- "..\apr-iconv\x64\LibR\apriconv-1.lib" \ +- ".\xml\expat\lib\x64\LibR\xml.lib" + + "$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< +@@ -798,8 +792,6 @@ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ +- "..\apr-iconv\x64\LibD\apriconv-1.lib" \ +- ".\xml\expat\lib\x64\LibD\xml.lib" + + "$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< +diff -ur apr_util.org/include/apu.hw apr_util/include/apu.hw +--- apr_util.org/include/apu.hw 2014-03-05 16:40:02.377701779 +0100 ++++ apr_util/include/apu.hw 2014-03-05 16:40:38.769702207 +0100 +@@ -138,8 +138,8 @@ + #define APU_HAVE_NSS 0 + #endif + +-#define APU_HAVE_APR_ICONV 1 +-#define APU_HAVE_ICONV 0 ++#undef APU_HAVE_APR_ICONV ++#undef APU_HAVE_ICONV + #define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV) + + #endif /* APU_H */ diff --git a/external/serf/ExternalProject_serf.mk b/external/serf/ExternalProject_serf.mk new file mode 100644 index 0000000..afa2018 --- /dev/null +++ b/external/serf/ExternalProject_serf.mk @@ -0,0 +1,48 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,serf)) + +$(eval $(call gb_ExternalProject_use_externals,serf,\ + apr \ +)) + +$(eval $(call gb_ExternalProject_register_targets,serf,\ + build \ +)) + +$(eval $(call gb_ExternalProject_use_nmake,serf,build)) + +ifeq ($(COM),MSC) +$(call gb_ExternalProject_get_state_target,serf,build): + $(call gb_ExternalProject_run,build,\ + APR_SRC="..\apr" \ + APRUTIL_SRC="..\apr_util" \ + OPENSSL_SRC="..\openssl" \ + ZLIB_SRC="..\zlib" \ + nmake -nologo -f serf.mak \ + $(if $(MSVC_USE_DEBUG_RUNTIME),DEBUG_BUILD=T Debug,Release)/serf-1.lib \ + ) + +else +# serf is using SERF_LIBS variable, so pass it empty +$(call gb_ExternalProject_get_state_target,serf,build): + +$(call gb_ExternalProject_run,build,\ + ./configure SERF_LIBS= \ + --enable-option-checking=fatal \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM))\ + $(if $(SYSTEM_APR),,--with-apr=$(call gb_UnpackedTarball_get_dir,apr)/apr-1-config) \ + $(if $(SYSTEM_APR),,--with-apr-util=$(call gb_UnpackedTarball_get_dir,apr_util)/apu-1-config) \ + $(if $(SYSTEM_OPENSSL),,--with-openssl=$(call gb_UnpackedTarball_get_dir,openssl)) \ + && $(MAKE) libserf-1.la \ + ) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/serf/Makefile b/external/serf/Makefile new file mode 100644 index 0000000..e4968cf --- /dev/null +++ b/external/serf/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/serf/Module_serf.mk b/external/serf/Module_serf.mk new file mode 100644 index 0000000..10ec039 --- /dev/null +++ b/external/serf/Module_serf.mk @@ -0,0 +1,17 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,serf)) + +$(eval $(call gb_Module_add_targets,serf,\ + UnpackedTarball_serf \ + ExternalProject_serf \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/serf/README b/external/serf/README new file mode 100644 index 0000000..0cfe55f --- /dev/null +++ b/external/serf/README @@ -0,0 +1,4 @@ +The serf library is a high performance C-based HTTP client library +built upon the Apache Portable Runtime (APR) library. + +From [http://code.google.com/p/serf/]. diff --git a/external/serf/UnpackedTarball_serf.mk b/external/serf/UnpackedTarball_serf.mk new file mode 100644 index 0000000..e6e9509 --- /dev/null +++ b/external/serf/UnpackedTarball_serf.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,serf)) + +$(eval $(call gb_UnpackedTarball_set_tarball,serf,$(SERF_TARBALL))) + +$(eval $(call gb_UnpackedTarball_fix_end_of_line,serf,\ + serf.mak \ +)) + +$(eval $(call gb_UnpackedTarball_add_patches,serf,\ + external/serf/windows.build.patch.1 \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/serf/windows.build.patch.1 b/external/serf/windows.build.patch.1 new file mode 100644 index 0000000..c659d41 --- /dev/null +++ b/external/serf/windows.build.patch.1 @@ -0,0 +1,29 @@ +diff -ur serf.org/serf.mak serf/serf.mak +--- serf.org/serf.mak 2014-03-05 16:31:26.681695709 +0100 ++++ serf/serf.mak 2014-03-05 16:32:20.969696348 +0100 +@@ -93,7 +93,7 @@ + WIN32_DEFS = /D WIN32 /D WIN32_LEAN_AND_MEAN /D NOUSER /D NOGDI /D NONLS /D NOCRYPT /D SERF_HAVE_SSPI + + CPP=cl.exe +-CPP_PROJ = /c /nologo $(CFLAGS) $(WIN32_DEFS) $(APR_FLAGS) $(APRUTIL_FLAGS) $(OPENSSL_FLAGS) $(ZLIB_FLAGS) /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" ++CPP_PROJ = /c /nologo /D APR_DECLARE_STATIC /D APU_DECLARE_STATIC $(CFLAGS) $(WIN32_DEFS) $(APR_FLAGS) $(APRUTIL_FLAGS) $(OPENSSL_FLAGS) $(ZLIB_FLAGS) /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" + LIB32=link.exe + LIB32_FLAGS=/nologo + +@@ -127,16 +127,6 @@ + "$(INTDIR)\socket_buckets.obj" \ + "$(INTDIR)\ssl_buckets.obj" \ + +-!IFDEF OPENSSL_STATIC +-LIB32_OBJS = $(LIB32_OBJS) "$(OPENSSL_SRC)\out32\libeay32.lib" \ +- "$(OPENSSL_SRC)\out32\ssleay32.lib" +-!ELSE +-LIB32_OBJS = $(LIB32_OBJS) "$(OPENSSL_SRC)\out32dll\libeay32.lib" \ +- "$(OPENSSL_SRC)\out32dll\ssleay32.lib" +-!ENDIF +- +-LIB32_OBJS = $(LIB32_OBJS) $(APR_LIBS) $(APRUTIL_LIBS) $(ZLIB_LIBS) +- + SYS_LIBS = secur32.lib + + TEST_OBJS = \ diff --git a/solenv/gbuild/ExternalProject.mk b/solenv/gbuild/ExternalProject.mk index 0495340..f57649f 100644 --- a/solenv/gbuild/ExternalProject.mk +++ b/solenv/gbuild/ExternalProject.mk @@ -212,6 +212,7 @@ $(if $(findstring YES,$(UNPACKED_IS_BIN_TARBALL)),\ touch $@, $(call gb_Helper_print_on_error,cd $(EXTERNAL_WORKDIR)/$(3) && \ $(if $(WRAPPERS),export $(WRAPPERS) &&) \ + $(if $(NMAKE),INCLUDE="$(gb_ExternalProject_INCLUDE)" LIB="$(ILIB)" MAKEFLAGS=) \ $(2) && touch $@,$(EXTERNAL_WORKDIR)/$(if $(3),$(3)/,)$(if $(4),$(4),$(1).log)) ) endef diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk index df582ca..3c109fe 100644 --- a/solenv/gbuild/platform/com_GCC_class.mk +++ b/solenv/gbuild/platform/com_GCC_class.mk @@ -187,6 +187,7 @@ endef # ExternalProject class gb_ExternalProject_use_autoconf := +gb_ExternalProject_use_nmake := # StaticLibrary class diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index eeb0fa0..fb617ac 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -492,6 +492,13 @@ $(call gb_ExternalProject_get_preparation_target,$(1)) : $(call gb_Executable_ge $(call gb_ExternalProject_get_state_target,$(1),$(2)): WRAPPERS := $(gb_AUTOCONF_WRAPPERS) endef +# Set INCLUDE and LIB variables and unset MAKEFLAGS when using nmake +# +# gb_ExternalProject_use_nmake project state_target +define gb_ExternalProject_use_nmake +$(call gb_ExternalProject_get_state_target,$(1),$(2)): NMAKE := $(true) +endef + # if ccache is enabled, then split it and use lastword as REAL_FOO # /opt/lo/bin/ccache /cygdrive/c/PROGRA~2/MICROS~2.0/VC/bin/cl.exe @@ -502,6 +509,9 @@ gb_AUTOCONF_WRAPPERS = \ CXX="$(call gb_Executable_get_target,g++-wrapper)" \ LD="$(shell cygpath -w $(COMPATH)/bin/link.exe) -nologo" +gb_ExternalProject_INCLUDE := \ + $(subst -I,,$(subst $(WHITESPACE),;,$(subst -I. , ,$(SOLARINC)))) + # InstallScript class gb_InstallScript_EXT := .inf
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits