summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-11-01 11:26:21 +0100
committerAndras Timar <andras.timar@collabora.com>2021-09-14 08:40:50 +0200
commitb47c9b4a2b6c7cfb58d27d502bbf42fe31731dcd (patch)
treed833b95791d2638557a65f0c62f0e4c365083218
parent83f4ac88a85fc725aa31f71ed0b0056d9d4fe26d (diff)
gbuild: ExternalProject: improve NMAKE handling
- move actual variables into com_MSC_class.mk - use export ... && to set the variables, so they affect all subsequent commands, not just the first one - clear MAKE as well, as that is apparently used by nmake, but can only point to GNU make - set CC, because nmake apparently can interpret C:/Progra~1/.../cl.exe etc. etc. as a "C:" command with some additional arguments which only changes the current directory, without even invoking the shell, which tends to cause profanities to be uttered for extended periods of time Change-Id: Ia7b1e6a70d6ac116d4ef0312d2aa1a4747fb8cbf Reviewed-on: https://gerrit.libreoffice.org/44159 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--solenv/gbuild/ExternalProject.mk2
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk11
2 files changed, 10 insertions, 3 deletions
diff --git a/solenv/gbuild/ExternalProject.mk b/solenv/gbuild/ExternalProject.mk
index e476b196301a..402437d6f567 100644
--- a/solenv/gbuild/ExternalProject.mk
+++ b/solenv/gbuild/ExternalProject.mk
@@ -220,7 +220,7 @@ $(if $(findstring YES,$(UNPACKED_IS_BIN_TARBALL)),\
$(call gb_Helper_print_on_error,cd $(EXTERNAL_WORKDIR)/$(3) && \
unset Platform && \
$(if $(WRAPPERS),export $(WRAPPERS) &&) \
- $(if $(NMAKE),INCLUDE="$(gb_ExternalProject_INCLUDE)" LIB="$(ILIB)" MAKEFLAGS=) \
+ $(if $(NMAKE),export $(NMAKE) &&) \
$(2) && touch $@,$(EXTERNAL_WORKDIR)/$(if $(3),$(3)/,)$(if $(4),$(4),$(1).log))
)
endef
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 860f35200661..c5c2f1d84b6a 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -534,11 +534,11 @@ $(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
+# Set INCLUDE and LIB variables and unset MAKE/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)
+$(call gb_ExternalProject_get_state_target,$(1),$(2)): NMAKE := $(gb_NMAKE_VARS)
endef
# if ccache is enabled, then split it and use lastword as REAL_FOO
@@ -556,6 +556,13 @@ gb_AUTOCONF_WRAPPERS = \
gb_ExternalProject_INCLUDE := \
$(subst -I,,$(subst $(WHITESPACE),;,$(subst -I. , ,$(SOLARINC))))
+gb_NMAKE_VARS = \
+ CC="$(shell cygpath -w $(filter-out -%,$(CC))) $(filter -%,$(CC))" \
+ INCLUDE="$(gb_ExternalProject_INCLUDE)" \
+ LIB="$(ILIB)" \
+ MAKEFLAGS= \
+ MAKE=
+
# InstallScript class
gb_InstallScript_EXT := .inf