summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-11-01 11:26:21 +0100
committerThorsten Behrens <thorsten.behrens@allotropia.de>2023-06-15 01:32:19 +0200
commitb9380a4595d9e29c7bf61ff98ab1aeef31f11d2f (patch)
tree93820f7a6e91a76ae7155279e0a963bf24f6b9ce
parentc2f6625b6e3cb678aa8338d7b510b5d2526b40f0 (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 fde4c75c5505..f184e899d0bb 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -530,11 +530,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
@@ -552,6 +552,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