summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2012-12-02 10:51:37 +0100
committerDavid Tardon <dtardon@redhat.com>2012-12-02 10:56:48 +0100
commitc2eca359af3eb88ebde341df5b87c24e178f5d5c (patch)
tree349c09453bbb3514bd67332f6be3c16702a6ee56
parentf02ac6e7c8da9e6e3b2263f028637723a8cf4829 (diff)
move setting up of ext. executables out of gbuild.mk
Change-Id: Icacd44abfa5bf5f75f0ee719b39fba6821976a8a
-rwxr-xr-xRepository.mk8
-rw-r--r--RepositoryExternal.mk81
-rw-r--r--extras/CustomTarget_autocorr.mk5
-rw-r--r--filter/Configuration_filter.mk9
-rw-r--r--filter/CustomTarget_svg.mk4
-rw-r--r--i18npool/CustomTarget_localedata.mk5
-rw-r--r--officecfg/CustomTarget_registry.mk5
-rw-r--r--readlicense_oo/CustomTarget_readme.mk5
-rw-r--r--solenv/gbuild/ComponentTarget.mk5
-rw-r--r--solenv/gbuild/ComponentsTarget.mk5
-rw-r--r--solenv/gbuild/Configuration.mk29
-rw-r--r--solenv/gbuild/ExternalExecutable.mk127
-rw-r--r--solenv/gbuild/Rdb.mk4
-rw-r--r--solenv/gbuild/UnoApiTarget.mk2
-rw-r--r--solenv/gbuild/gbuild.mk48
-rw-r--r--writerfilter/CustomTarget_source.mk42
16 files changed, 286 insertions, 98 deletions
diff --git a/Repository.mk b/Repository.mk
index 61d3ce90b8ec..d4e430811334 100755
--- a/Repository.mk
+++ b/Repository.mk
@@ -759,4 +759,12 @@ $(eval $(call gb_Helper_register_jars,OXT, \
sun-report-builder \
))
+# External executables
+$(eval $(call gb_ExternalExecutable_register_executables,\
+ python \
+ ucpp \
+ xmllint \
+ xsltproc \
+))
+
# vim: set noet sw=4 ts=4:
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 5f02c49df08b..bec2abd7593e 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -2398,4 +2398,85 @@ endef
endif # SYSTEM_JFREEREPORT
+
+# Executables
+
+ifneq ($(SYSTEM_LIBXML_FOR_BUILD),YES)
+
+gb_ExternalExecutable__register_xmllint :=
+
+else # ! SYSTEM_LIBXML_FOR_BUILD
+
+define gb_ExternalExecutable__register_xmllint
+gb_ExternalExecutable__xmllint_TARGET := $(call gb_Executable_get_target_for_build,xmllint)
+gb_ExternalExecutable__xmllint_COMMAND := $(gb_Helper_set_ld_path) $(ICECREAM_RUN) $(gb_ExternalExecutable__xmllint_TARGET)
+
+endef
+
+endif # SYSTEM_LIBXML_FOR_BUILD
+
+ifeq ($(SYSTEM_LIBXSLT_FOR_BUILD),YES)
+
+gb_ExternalExecutable__register_xsltproc :=
+
+else # ! SYSTEM_LIBXSLT_FOR_BUILD
+
+define gb_ExternalExecutable__register_xsltproc
+gb_ExternalExecutable__xsltproc_TARGET := $(call gb_Executable_get_target_for_build,xsltproc)
+gb_ExternalExecutable__xsltproc_COMMAND := $(gb_Helper_set_ld_path) $(ICECREAM_RUN) $(gb_ExternalExecutable__xsltproc_TARGET)
+
+endef
+
+endif # SYSTEM_LIBXSLT_FOR_BUILD
+
+ifneq (,$(SYSTEM_UCPP))
+
+gb_ExternalExecutable__register_ucpp :=
+
+else # ! SYSTEM_UCPP
+
+define gb_ExternalExecutable__register_ucpp
+gb_ExternalExecutable__ucpp_TARGET := $(call gb_Executable_get_target_for_build,ucpp)
+
+endef
+
+endif # SYSTEM_UCPP
+
+# TODO what do do with gb_PYTHON_PRECOMMAND? Move here?
+ifeq ($(SYSTEM_PYTHON),YES)
+
+define gb_ExternalExecutable__register_python
+gb_ExternalExecutable__python_COMMAND := $(ICECREAM_RUN) $(PYTHON)
+
+endef
+
+else ifeq ($(OS),MACOSX)
+
+#fixme: remove this MACOSX ifeq branch by filling in gb_PYTHON_PRECOMMAND in
+#gbuild/platform/macosx.mk correctly for mac, e.g. PYTHONPATH and PYTHONHOME
+#dirs for in-tree internal python
+define gb_ExternalExecutable__register_python
+gb_ExternalExecutable__python_COMMAND := $(ICECREAM_RUN) $(PYTHON)
+
+endef
+
+else ifeq ($(DISABLE_PYTHON),TRUE)
+
+# Build-time python
+gb_ExternalExecutable__register_python :=
+
+else # ! SYSTEM_PYTHON
+
+# internal python
+define gb_ExternalExecutable__register_python
+gb_ExternalExecutable__python_TARGET := $(call gb_Executable_get_target_for_build,python)
+gb_ExternalExecutable__python_PRECOMMAND := $(gb_PYTHON_PRECOMMAND)
+gb_ExternalExecutable__python_DEPS := \
+ $(call gb_Executable_get_target_for_build,python) \
+ $(call gb_Package_get_target,python3)
+
+endef
+
+endif # SYSTEM_PYTHON
+
# vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_autocorr.mk b/extras/CustomTarget_autocorr.mk
index e621b348542f..0c6809bc7a66 100644
--- a/extras/CustomTarget_autocorr.mk
+++ b/extras/CustomTarget_autocorr.mk
@@ -281,9 +281,10 @@ $(call gb_CustomTarget_get_workdir,extras/source/autotext)/%/mimetype : $(SRCDIR
$(call gb_Output_announce,$*/mimetype,$(true),CPY,1)
cp $< $@
-$(call gb_CustomTarget_get_workdir,extras/source/autotext)/%.xml : $(SRCDIR)/extras/source/autotext/lang/%.xml
+$(call gb_CustomTarget_get_workdir,extras/source/autotext)/%.xml : $(SRCDIR)/extras/source/autotext/lang/%.xml \
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$*.xml,$(true),XSL,1)
- $(gb_XSLTPROC) -o $@ $(SRCDIR)/extras/util/compact.xsl $<
+ $(call gb_ExternalExecutable_get_command,xsltproc) -o $@ $(SRCDIR)/extras/util/compact.xsl $<
$(call gb_CustomTarget_get_workdir,extras/source/autotext)/%.dat :
$(call gb_Output_announce,$*.dat,$(true),ZIP,2)
diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk
index dd4a09d8a9a5..d7fbe1e80537 100644
--- a/filter/Configuration_filter.mk
+++ b/filter/Configuration_filter.mk
@@ -22,9 +22,9 @@
# semi-integrated with the stuff from Configuration.mk; not exactly pretty...
ifeq ($(SOLAR_JAVA),)
-filter_MERGE_TARGET := $(gb_PYTHONTARGET) \
+filter_MERGE_TARGET := $(call gb_ExternalExecutable_get_deps,python) \
$(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge
-filter_MERGE := $(gb_PYTHON) \
+filter_MERGE := $(call gb_ExternalExecutable_get_command,python) \
$(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge
else # SOLAR_JAVA
filter_MERGE_TARGET := $(OUTDIR_FOR_BUILD)/bin/FCFGMerge.jar
@@ -229,11 +229,12 @@ $(call gb_Configuration_get_clean_target,fcfg_langpack) : \
# so generate non-pattern rules which have higher priority even in GNUmake 3.81
define filter_XcuResTarget__rule
$$(call filter_XcuResTarget_get_target,$(1)) : \
- $(filter_XSLT_langfilter) $(filter_XcuFilterUiTarget)
+ $(filter_XSLT_langfilter) $(filter_XcuFilterUiTarget) \
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$$(call gb_Output_announce,$(1),$(true),XCU,1)
$$(call gb_Helper_abbreviate_dirs,\
mkdir -p $$(dir $$@) && \
- $(gb_XSLTPROC) --nonet --stringparam lang $(1) \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam lang $(1) \
$(filter_XSLT_langfilter) \
$(filter_XcuFilterUiTarget) > $$@)
endef
diff --git a/filter/CustomTarget_svg.mk b/filter/CustomTarget_svg.mk
index 1b374ff6969a..461907e93907 100644
--- a/filter/CustomTarget_svg.mk
+++ b/filter/CustomTarget_svg.mk
@@ -59,12 +59,12 @@ $(filter_GEN_svg_Tokens_cxx) : $(filter_GEN_svg_Tokens_gperf)
> $(filter_GEN_svg_Tokens_cxx))
$(filter_GEN_svg_Script_hxx) : \
- $(gb_PYTHONTARGET) \
+ $(call gb_ExternalExecutable_get_deps,python) \
$(filter_SRC_svg_PresentationEngine) $(filter_SRC_svg_Js2Hxx) \
| $(filter_SVGWORK)/.dir
$(call gb_Output_announce,$@,build,PY ,1)
$(call gb_Helper_abbreviate_dirs, \
- $(gb_PYTHON) $(filter_SRC_svg_Js2Hxx) \
+ $(call gb_ExternalExecutable_get_command,python) $(filter_SRC_svg_Js2Hxx) \
$(filter_SRC_svg_PresentationEngine) \
$(filter_GEN_svg_Script_hxx))
diff --git a/i18npool/CustomTarget_localedata.mk b/i18npool/CustomTarget_localedata.mk
index 92101429caec..f7dbcd2d7d4e 100644
--- a/i18npool/CustomTarget_localedata.mk
+++ b/i18npool/CustomTarget_localedata.mk
@@ -53,10 +53,11 @@ $(i18npool_LDDIR)/localedata_%.cxx : \
rm $@.tmp)
$(i18npool_LDDIR)/saxparser.rdb : $(i18npool_LDDIR)/saxparser.input \
- $(gb_XSLTPROCTARGET) $(SOLARENV)/bin/packcomponents.xslt
+ $(SOLARENV)/bin/packcomponents.xslt \
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),RDB,1)
$(call gb_Helper_abbreviate_dirs, \
- $(gb_XSLTPROC) --nonet --stringparam prefix $(OUTDIR_FOR_BUILD)/xml/ \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam prefix $(OUTDIR_FOR_BUILD)/xml/ \
-o $@ $(SOLARENV)/bin/packcomponents.xslt $<)
$(i18npool_LDDIR)/saxparser.input : $(call gb_ComponentTarget_get_outdir_target,sax/source/expatwrap/expwrap) | $(i18npool_LDDIR)/.dir
diff --git a/officecfg/CustomTarget_registry.mk b/officecfg/CustomTarget_registry.mk
index c655ff3c8203..c947aa67129c 100644
--- a/officecfg/CustomTarget_registry.mk
+++ b/officecfg/CustomTarget_registry.mk
@@ -46,9 +46,10 @@ officecfg_xsltparams=$(if $(filter-out $(lastword $1),$1),$(call officecfg_xsltp
$(call gb_CustomTarget_get_workdir,officecfg/registry)/%.hxx: \
$(SRCDIR)/officecfg/registry/schema/org/openoffice/%.xcs \
- $(SRCDIR)/officecfg/registry/cppheader.xsl | $(gb_XSLTPROCTARGET)
+ $(SRCDIR)/officecfg/registry/cppheader.xsl\
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \
mkdir -p $(dir $@) && \
- $(gb_XSLTPROC) --nonet $(call officecfg_xsltparams,$(subst /, ,$*)) \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet $(call officecfg_xsltparams,$(subst /, ,$*)) \
-o $@ $(SRCDIR)/officecfg/registry/cppheader.xsl $<)
diff --git a/readlicense_oo/CustomTarget_readme.mk b/readlicense_oo/CustomTarget_readme.mk
index 50c2b09409b3..2f2ddda88789 100644
--- a/readlicense_oo/CustomTarget_readme.mk
+++ b/readlicense_oo/CustomTarget_readme.mk
@@ -55,10 +55,11 @@ endif
$(readlicense_oo_README_PATTERN) : \
$(SRCDIR)/readlicense_oo/docs/readme.xsl \
$(readlicense_oo_README_XRM) \
- | $(readlicense_oo_DIR)/.dir
+ | $(readlicense_oo_DIR)/.dir \
+ $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \
- $(gb_XSLTPROC) --nonet --novalid -o $@.out \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --novalid -o $@.out \
--stringparam com1 $(COM) \
--stringparam cp1 $(CPUNAME) \
--stringparam gui1 $(GUI) \
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index e99ffababcf5..1b77e0eb76ff 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -39,7 +39,7 @@ $(call gb_Output_announce,$(3),$(true),CMP,1)
$(if $(LIBFILENAME),,$(call gb_Output_error,No LIBFILENAME set at component target: $(1)))
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_XSLTPROC) --nonet --stringparam uri \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam uri \
'$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,$(subst \d,$$,$(COMPONENTPREFIX)))$(LIBFILENAME)' -o $(1) \
$(gb_ComponentTarget_XSLTCOMMANDFILE) $(2))
endef
@@ -52,7 +52,8 @@ $(call gb_ComponentTarget_get_clean_target,%) :
$(call gb_ComponentTarget_get_target,%) : \
- $(call gb_ComponentTarget_get_source,%) $(gb_XSLTPROCTARGET)
+ $(call gb_ComponentTarget_get_source,%) \
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_ComponentTarget__command,$@,$<,$*)
# the .dir is for make 3.81, which ignores trailing /
diff --git a/solenv/gbuild/ComponentsTarget.mk b/solenv/gbuild/ComponentsTarget.mk
index b211488a42ba..94ecfffff25a 100644
--- a/solenv/gbuild/ComponentsTarget.mk
+++ b/solenv/gbuild/ComponentsTarget.mk
@@ -47,12 +47,13 @@ $(call gb_ComponentsTarget_get_target,$(1)).input: COMPONENTFILES += $(2)
endef
$(call gb_ComponentsTarget_get_target,%): \
- $(call gb_ComponentsTarget_get_target,%).input
+ $(call gb_ComponentsTarget_get_target,%).input \
+ | $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$*,$(true),CPS,1)
$(call gb_Helper_abbreviate_dirs, \
mkdir -p $(dir $@))
$(call gb_Helper_abbreviate_dirs, \
- $(gb_XSLTPROC) --nonet --stringparam prefix $(WORKDIR) -o $@ \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam prefix $(WORKDIR) -o $@ \
$(SOLARENV)/bin/packcomponents.xslt $@.input)
$(call gb_ComponentsTarget_get_clean_target,%): \
diff --git a/solenv/gbuild/Configuration.mk b/solenv/gbuild/Configuration.mk
index 1de28add495f..05a096fc94ec 100644
--- a/solenv/gbuild/Configuration.mk
+++ b/solenv/gbuild/Configuration.mk
@@ -57,6 +57,9 @@ gb_Configuration__get_source = $(SRCDIR)/$(2)
# The main LibreOffice registry
gb_Configuration_PRIMARY_REGISTRY_NAME := registry
+gb_Configuration_XSLTCOMMAND = $(call gb_ExternalExecutable_get_command,xsltproc)
+gb_Configuration_XSLTCOMMAND_DEPS = $(call gb_ExternalExecutable_get_deps,xsltproc)
+
# XcsTarget class
# need to locate a schema file corresponding to some XCU file in the outdir
@@ -75,18 +78,18 @@ define gb_XcsTarget__command
$(call gb_Output_announce,$(2),$(true),XCS,1)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \
--stringparam componentName $(subst /,.,$(basename $(XCSFILE))) \
--stringparam root $(subst $(XCSFILE),,$(3)) \
$(if $(PRIMARY_REGISTRY),,--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,)) \
$(gb_XcsTarget_XSLT_SchemaVal) \
$(3) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \
$(gb_XcsTarget_XSLT_Sanity) \
$(3) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \
$(gb_XcsTarget_XSLT_SchemaTrim) \
$(3))
@@ -94,7 +97,8 @@ endef
$(call gb_XcsTarget_get_target,%) : \
$(gb_XcsTarget_XSLT_SchemaVal) $(gb_XcsTarget_XSLT_Sanity) \
- $(gb_XcsTarget_XSLT_SchemaTrim) $(gb_XcsTarget_DTD_Schema)
+ $(gb_XcsTarget_XSLT_SchemaTrim) $(gb_XcsTarget_DTD_Schema) \
+ | $(gb_Configuration_XSLTCOMMAND_DEPS)
$(call gb_XcsTarget__command,$@,$*,$(filter %.xcs,$^))
$(call gb_XcsTarget_get_clean_target,%) :
@@ -124,14 +128,14 @@ define gb_XcuDataTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,2)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
--path $(gb_Configuration_registry) \
$(gb_XcuDataTarget_XSLT_DataVal) \
$(3) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
@@ -141,7 +145,8 @@ $(call gb_Helper_abbreviate_dirs,\
endef
$(call gb_XcuDataTarget_get_target,%) : $(gb_XcuDataTarget_XSLT_DataVal) \
- $(gb_XcuTarget_XSLT_AllLang) $(gb_XcuDataTarget_DTD_ComponentUpdate)
+ $(gb_XcuTarget_XSLT_AllLang) $(gb_XcuDataTarget_DTD_ComponentUpdate) \
+ | $(gb_Configuration_XSLTCOMMAND_DEPS)
$(call gb_XcuDataTarget__command,$@,$*,$(filter %.xcu,$^))
$(call gb_XcuDataTarget_get_clean_target,%) :
@@ -175,7 +180,7 @@ define gb_XcuModuleTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,3)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \
--stringparam xcs $(4) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
@@ -184,7 +189,8 @@ $(call gb_Helper_abbreviate_dirs,\
$(3))
endef
-$(call gb_XcuModuleTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
+$(call gb_XcuModuleTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang) \
+ | $(gb_Configuration_XSLTCOMMAND_DEPS)
$(call gb_XcuModuleTarget__command,$@,$*,$(filter %.xcu,$^),$(filter %.xcs,$^))
$(call gb_XcuModuleTarget_get_clean_target,%) :
@@ -294,7 +300,7 @@ define gb_XcuResTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,6)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_XSLTPROC) --nonet \
+ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
@@ -304,7 +310,8 @@ $(call gb_Helper_abbreviate_dirs,\
$(3))
endef
-$(call gb_XcuResTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
+$(call gb_XcuResTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang) \
+ | $(gb_Configuration_XSLTCOMMAND_DEPS)
$(call gb_XcuResTarget__command,$@,$*,$(filter %.xcu,$^))
$(call gb_XcuResTarget_get_clean_target,%) :
diff --git a/solenv/gbuild/ExternalExecutable.mk b/solenv/gbuild/ExternalExecutable.mk
new file mode 100644
index 000000000000..bbdc190bfa8e
--- /dev/null
+++ b/solenv/gbuild/ExternalExecutable.mk
@@ -0,0 +1,127 @@
+# -*- 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/.
+#
+
+# class ExternalExecutable
+
+# ExternalExecutable is a little helper for using executables that might
+# either come from system or be built internally.
+#
+# The configuration for an external executable is done in
+# RepositoryExternal.mk by defining function
+# gb_ExternalExecutable__register_EXECUTABLE, which should set up to 4
+# variables. The variables are (presuming the executable is named foo):
+
+# * gb_ExternalExecutable__foo_COMMAND
+# Defines the complete command for the executable. This must include
+# shell variables, if required. Defaults to
+# $(gb_ExternalExecutable__foo_PRECOMMAND) $(ICECREAM_RUN) $(gb_ExternalExecutable__foo_TARGET)
+# (if gb_ExternalExecutable__foo_TARGET is not defined, plain "foo" is substituted).
+#
+# * gb_ExternalExecutable__foo_DEPS
+# The complete dependencies needed for running the executable. Only
+# useful for internally built executables to make sure all data,
+# config. files etc. are present. Defaults to
+# $(gb_ExternalExecutable__foo_TARGET).
+#
+# * gb_ExternalExecutable__foo_PRECOMMAND
+# Any variables that need to be set for running the executable.
+# Typical example is use of $(gb_Helper_set_ld_path) for internally
+# built executables.
+#
+# * gb_ExternalExecutable__foo_TARGET
+# A full path to the executable. Typical definition for internally built
+# executable is $(call gb_Executable_get_target_for_build,foo).
+#
+# Because of the particular choice of the defaults, there is typically
+# nothing that needs to be set for a system executable.
+#
+# All external executables must be registered (by listing the executable
+# name in gb_ExternalExecutable_register_executables call). This is done in
+# Repository.mk .
+
+# The list of registered executables.
+gb_ExternalExecutable_REGISTERED_EXECUTABLES :=
+
+define gb_ExternalExecutable__add_executable
+$(if $(filter $(executable),$(gb_ExternalExecutable_REGISTERED_EXECUTABLES)),\
+ $(call gb_Output_error,external executable $(executable) has already been registered) \
+)
+gb_ExternalExecutable_REGISTERED_EXECUTABLES += $(1)
+
+endef
+
+# Register one or more external executables.
+#
+# gb_ExternalExecutable_register_executables executable(s)
+define gb_ExternalExecutable_register_executables
+$(foreach executable,$(1),$(call gb_ExternalExecutable__add_executable,$(executable)))
+
+endef
+
+define gb_ExternalExecutable__process_registration
+$(if $(filter undefined,$(origin gb_ExternalExecutable__register_$(executable))),\
+ $(call gb_Output_error,there is no definition for external executable $(executable)) \
+)
+$(call gb_ExternalExecutable__register_$(executable))
+
+endef
+
+# Collect definitions for registered executables.
+#
+# The registration functions will be run.
+#
+# gb_ExternalExecutable_collect_registrations
+define gb_ExternalExecutable_collect_registrations
+$(foreach executable,$(gb_ExternalExecutable_REGISTERED_EXECUTABLES),$(call gb_ExternalExecutable__process_registration,$(executable)))
+
+endef
+
+define gb_ExternalExecutale__check_registration
+$(if $(filter $(1),$(gb_ExternalExecutable_REGISTERED_EXECUTABLES)),,\
+ $(call gb_Output_error,external executable $(1) has not been registered) \
+)
+
+endef
+
+define gb_ExternalExecutable__get_command
+$(call gb_ExternalExecutale__check_registration,$(1))
+$(if $(filter undefined,$(origin gb_ExternalExecutable__$(1)_COMMAND)) \
+ ,$(gb_ExternalExecutable__$(1)_PRECOMMAND) $(ICECREAM_RUN) \
+ $(if $(gb_ExternalExecutable__$(1)_TARGET),$(gb_ExternalExecutable__$(1)_TARGET),$(1)) \
+ ,$(gb_ExternalExecutable__$(1)_COMMAND) \
+)
+endef
+
+# Return the command for running an external executable.
+#
+# The command includes the required shell variables, if any (e.g.,
+# LD_LIBRARY_PATH for internally built executables), and icerun wrapper
+# for limiting the maximum number of processes, if available.
+#
+# gb_ExternalExecutable_get_command executable
+define gb_ExternalExecutable_get_command
+$(strip $(call gb_ExternalExecutable__get_command,$(1)))
+endef
+
+define gb_ExternalExecutable__get_deps
+$(call gb_ExternalExecutale__check_registration,$(1))
+$(if $(filter undefined,$(origin gb_ExternalExecutable__$(1)_DEPS)) \
+ ,$(gb_ExternalExecutable__$(1)_TARGET) \
+ ,$(gb_ExternalExecutable__$(1)_DEPS) \
+)
+endef
+
+# Return the deps needed for running an external executable.
+#
+# gb_ExternalExecutable_get_deps executable
+define gb_ExternalExecutable_get_deps
+$(strip $(call gb_ExternalExecutable__get_deps,$(1)))
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Rdb.mk b/solenv/gbuild/Rdb.mk
index 03281567c805..ad4562d10462 100644
--- a/solenv/gbuild/Rdb.mk
+++ b/solenv/gbuild/Rdb.mk
@@ -33,11 +33,11 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach component,$(COMPONENTS),echo "<filename>$(call gb_ComponentTarget_get_outdir_target,$(component))</filename>" &&) \
echo '</list>' \
) > $(1).input && \
- $(gb_XSLTPROC) --nonet -o $(1) $(SOLARENV)/bin/packcomponents.xslt $(1).input && \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $(1) $(SOLARENV)/bin/packcomponents.xslt $(1).input && \
rm $(1).input)
endef
-$(call gb_Rdb_get_target,%) :
+$(call gb_Rdb_get_target,%) :| $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Output_announce,$*,$(true),RDB,1)
$(call gb_Rdb__command,$@,$*,$?,$^)
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 9246938c247a..12e592dce42e 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -72,7 +72,7 @@ endef
# idlc as well so their dummy rule fires if that changes.
$(call gb_UnoApiPartTarget_get_target,%.done) : \
$(gb_UnoApiPartTarget_IDLCTARGET) \
- | $(gb_UCPPTARGET)
+ | $(call gb_ExternalExecutable_get_deps,ucpp)
$(call gb_UnoApiPartTarget__command,$@,$*,$(filter-out $(gb_UnoApiPartTarget_IDLCTARGET),$(if $(filter $(gb_UnoApiPartTarget_IDLCTARGET),$?),$^,$?)))
ifeq ($(gb_FULLDEPS),$(true))
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 1d1e304c578e..40372e18ea94 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -159,6 +159,7 @@ ifneq ($(strip $(ENVCFLAGSCXX)),)
gb__ENV_CXXFLAGS := $(ENVCFLAGSCXX)
endif
+include $(GBUILDDIR)/ExternalExecutable.mk
include $(GBUILDDIR)/Helper.mk
include $(GBUILDDIR)/TargetLocations.mk
include $(GBUILDDIR)/Tempfile.mk
@@ -167,6 +168,7 @@ $(eval $(call gb_Helper_init_registries))
include $(SRCDIR)/Repository.mk
include $(SRCDIR)/RepositoryExternal.mk
$(eval $(call gb_Helper_collect_knownlibs))
+$(eval $(call gb_ExternalExecutable_collect_registrations))
gb_Library_DLLPOSTFIX := lo
@@ -175,52 +177,6 @@ include $(GBUILDDIR)/platform/$(OS)_$(CPUNAME)_$(COM).mk
include $(SRCDIR)/RepositoryFixes.mk
-# Set up build tools that can be either internal or system. It is
-# necessary to do it before we start including gbuild class makefiles,
-# so the classes can add dependencies on them.
-#
-# TODO: As more external modules are converted, we would need more of
-# these (e.g., ICU tools). Maybe the definitions should be moved to
-# RepositoryExternal.mk ?
-ifeq ($(SYSTEM_LIBXSLT_FOR_BUILD),YES)
-gb_XSLTPROCTARGET :=
-gb_XSLTPROC := $(ICECREAM_RUN) xsltproc
-else
-gb_XSLTPROCTARGET := $(call gb_Executable_get_target_for_build,xsltproc)
-gb_XSLTPROC := $(gb_Helper_set_ld_path) $(ICECREAM_RUN) $(gb_XSLTPROCTARGET)
-endif
-
-ifeq ($(SYSTEM_LIBXML_FOR_BUILD),YES)
-gb_XMLLINTTARGET :=
-gb_XMLLINT := $(ICECREAM_RUN) xsltproc
-else
-gb_XMLLINTTARGET := $(call gb_Executable_get_target_for_build,xsltproc)
-gb_XMLLINT := $(gb_Helper_set_ld_path) $(ICECREAM_RUN) $(gb_XMLLINTTARGET)
-endif
-
-ifeq ($(SYSTEM_PYTHON),YES)
-gb_PYTHONTARGET :=
-gb_PYTHON := $(PYTHON)
-else ifeq ($(OS),MACOSX)
-#fixme: remove this MACOSX ifeq branch by filling in gb_PYTHON_PRECOMMAND in
-#gbuild/platform/macosx.mk correctly for mac, e.g. PYTHONPATH and PYTHONHOME
-#dirs for in-tree internal python
-gb_PYTHONTARGET :=
-gb_PYTHON := $(PYTHON)
-else ifeq ($(DISABLE_PYTHON),TRUE)
-# Build-time python
-gb_PYTHON := python
-else
-gb_PYTHONTARGET := $(call gb_Executable_get_target_for_build,python)
-gb_PYTHON := $(gb_PYTHON_PRECOMMAND) $(gb_PYTHONTARGET)
-endif
-
-ifneq (,$(SYSTEM_UCPP))
-gb_UCPPTARGET :=
-else
-gb_UCPPTARGET := $(call gb_Executable_get_target_for_build,ucpp)
-endif
-
# add user-supplied flags
ifneq ($(strip gb__ENV_CFLAGS),)
gb_LinkTarget_CFLAGS += $(gb__ENV_CFLAGS)
diff --git a/writerfilter/CustomTarget_source.mk b/writerfilter/CustomTarget_source.mk
index 5ee30418d987..bc0c3bf98bf5 100644
--- a/writerfilter/CustomTarget_source.mk
+++ b/writerfilter/CustomTarget_source.mk
@@ -12,6 +12,8 @@ $(eval $(call gb_CustomTarget_CustomTarget,writerfilter/source))
writerfilter_WORK := $(call gb_CustomTarget_get_workdir,writerfilter/source)
writerfilter_SRC := $(SRCDIR)/writerfilter/source
+writerfilter_XSLTCOMMAND := $(call gb_ExternalExecutable_get_command,xsltproc)
+
writerfilter_OOXMLNAMESPACES= \
dml-baseStylesheet \
dml-baseTypes \
@@ -103,23 +105,23 @@ writerfilter_SRC_ooxml_ResourceIds_xsl=$(writerfilter_SRC)/ooxml/resourceids.xsl
$(writerfilter_GEN_doctok_QNameToStr_cxx): $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_ResourceTools_xsl) | $(writerfilter_WORK)/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_doctok_ResourceIds_hxx) : $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_ResourceIds_xsl) | $(writerfilter_WORK)/doctok/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_ResourceIds_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_ResourceIds_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_doctok_Resources_cxx) : $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_ResourcesImpl_xsl) $(writerfilter_SRC_doctok_ResourceTools_xsl) | $(writerfilter_WORK)/doctok/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_ResourcesImpl_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_ResourcesImpl_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_doctok_Resources_hxx) : $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_Resources_xsl) | $(writerfilter_WORK)/doctok/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_Resources_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_Resources_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_doctok_SprmIds_hxx) : $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_SprmIds_xsl) | $(writerfilter_WORK)/doctok/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_SprmIds_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_SprmIds_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_model_SprmCodeToStr_cxx): $(writerfilter_SRC)/resourcemodel/sprmcodetostrheader $(writerfilter_GEN_model_SprmCodeToStr_tmp) $(writerfilter_SRC)/resourcemodel/sprmcodetostrfooter
$(call gb_Output_announce,$@,build,CAT,1)
@@ -127,44 +129,44 @@ $(writerfilter_GEN_model_SprmCodeToStr_cxx): $(writerfilter_SRC)/resourcemodel/s
$(writerfilter_GEN_model_SprmCodeToStr_tmp) : $(writerfilter_SRC_doctok_SprmCodeToStr_xsl) $(writerfilter_SRC_doctok_Model) | $(writerfilter_WORK)/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_SprmCodeToStr_xsl) $(writerfilter_SRC_doctok_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_doctok_SprmCodeToStr_xsl) $(writerfilter_SRC_doctok_Model)) > $@
$(writerfilter_GEN_ooxml_Factory_cxx) : $(writerfilter_SRC)/ooxml/factoryimpl.xsl $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_Factory_hxx) : $(writerfilter_SRC)/ooxml/factoryinc.xsl $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_FactoryValues_cxx) : $(writerfilter_SRC_ooxml_FactoryValuesImpl_xsl) $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_FactoryValuesImpl_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_FactoryValuesImpl_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_FactoryValues_hxx) : $(writerfilter_SRC_ooxml_FactoryValues_xsl) $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_FactoryValues_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_FactoryValues_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_FastTokens_hxx) : $(writerfilter_SRC_ooxml_FastTokens_xsl) $(writerfilter_GEN_ooxml_Token_xml) | $(writerfilter_WORK)/ooxml/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_FastTokens_xsl) $(writerfilter_GEN_ooxml_Token_xml)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_FastTokens_xsl) $(writerfilter_GEN_ooxml_Token_xml)) > $@
$(writerfilter_GEN_ooxml_GperfFastToken_hxx) : $(writerfilter_SRC_ooxml_GperfFastTokenHandler_xsl) $(writerfilter_GEN_ooxml_Token_xml)
$(call gb_Output_announce,$@,build,GPF,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_GperfFastTokenHandler_xsl) $(writerfilter_GEN_ooxml_Token_xml)) \
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_GperfFastTokenHandler_xsl) $(writerfilter_GEN_ooxml_Token_xml)) \
| tr -d '\r' | $(GPERF) -c -E -G -I -LC++ -S1 -t > $@
$(writerfilter_GEN_ooxml_Model_analyzed) : $(writerfilter_SRC_ooxml_Analyze_model_xsl) $(writerfilter_SRC_ooxml_Model) | $(writerfilter_WORK)/ooxml/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $^) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $^) > $@
$(writerfilter_GEN_ooxml_Model_processed) : $(writerfilter_GEN_ooxml_Namespacesmap_xsl) $(writerfilter_GEN_ooxml_Preprocess_xsl) $(writerfilter_SRC_ooxml_Model)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_GEN_ooxml_Namespacesmap_xsl) $(writerfilter_SRC_ooxml_Model)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_GEN_ooxml_Namespacesmap_xsl) $(writerfilter_SRC_ooxml_Model)) > $@
$(writerfilter_GEN_ooxml_NamespaceIds_hxx) : $(writerfilter_SRC_ooxml_NamespaceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed) | $(writerfilter_WORK)/ooxml/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_NamespaceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_NamespaceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_Namespacesmap_xsl) : $(writerfilter_SRC_ooxml_Model) $(writerfilter_DEP_ooxml_Namespaces_txt) \
$(writerfilter_SRC_model_NamespacePreprocess) | $(writerfilter_WORK)/.dir
@@ -177,11 +179,11 @@ $(writerfilter_GEN_ooxml_Preprocess_xsl) : $(writerfilter_SRC_ooxml_Preprocess_x
$(writerfilter_GEN_ooxml_QNameToStr_cxx): $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_SRC_ooxml_FactoryTools_xsl) $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_ResourceIds_hxx) : $(writerfilter_SRC_ooxml_ResourceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed) | $(writerfilter_WORK)/ooxml/.dir
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_ResourceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) $(writerfilter_SRC_ooxml_ResourceIds_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_GEN_ooxml_Token_tmp) : $(OUTDIR)/inc/oox/tokens.txt | $(writerfilter_WORK)/.dir
$(call gb_Output_announce,$@,build,CAT,1)
@@ -193,15 +195,15 @@ $(writerfilter_GEN_ooxml_Token_xml) : $(writerfilter_SRC)/ooxml/tokenxmlheader $
$(writerfilter_WORK)/OOXMLFactory%.cxx : $(writerfilter_SRC)/ooxml/factoryimpl_ns.xsl $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) --stringparam file $@ $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) --stringparam file $@ $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(writerfilter_WORK)/OOXMLFactory%.hxx : $(writerfilter_SRC)/ooxml/factory_ns.xsl $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
- $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) --stringparam file $@ $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
+ $(call gb_Helper_abbreviate_dirs, $(writerfilter_XSLTCOMMAND) --stringparam file $@ $< $(writerfilter_GEN_ooxml_Model_processed)) > $@
$(call gb_CustomTarget_get_target,writerfilter/source) : $(writerfilter_ALL)
-$(writerfilter_ALL) :| $(gb_XSLTPROCTARGET) $(writerfilter_WORK)/.dir
+$(writerfilter_ALL) :| $(call gb_ExternalExecutable_get_deps,xsltproc) $(writerfilter_WORK)/.dir
# vim: set noet sw=4 ts=4: