Kaydet (Commit) c2eca359 authored tarafından David Tardon's avatar David Tardon

move setting up of ext. executables out of gbuild.mk

Change-Id: Icacd44abfa5bf5f75f0ee719b39fba6821976a8a
üst f02ac6e7
...@@ -759,4 +759,12 @@ $(eval $(call gb_Helper_register_jars,OXT, \ ...@@ -759,4 +759,12 @@ $(eval $(call gb_Helper_register_jars,OXT, \
sun-report-builder \ sun-report-builder \
)) ))
# External executables
$(eval $(call gb_ExternalExecutable_register_executables,\
python \
ucpp \
xmllint \
xsltproc \
))
# vim: set noet sw=4 ts=4: # vim: set noet sw=4 ts=4:
...@@ -2398,4 +2398,85 @@ endef ...@@ -2398,4 +2398,85 @@ endef
endif # SYSTEM_JFREEREPORT 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: # vim: set noet sw=4 ts=4:
...@@ -281,9 +281,10 @@ $(call gb_CustomTarget_get_workdir,extras/source/autotext)/%/mimetype : $(SRCDIR ...@@ -281,9 +281,10 @@ $(call gb_CustomTarget_get_workdir,extras/source/autotext)/%/mimetype : $(SRCDIR
$(call gb_Output_announce,$*/mimetype,$(true),CPY,1) $(call gb_Output_announce,$*/mimetype,$(true),CPY,1)
cp $< $@ 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) $(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_CustomTarget_get_workdir,extras/source/autotext)/%.dat :
$(call gb_Output_announce,$*.dat,$(true),ZIP,2) $(call gb_Output_announce,$*.dat,$(true),ZIP,2)
......
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
# semi-integrated with the stuff from Configuration.mk; not exactly pretty... # semi-integrated with the stuff from Configuration.mk; not exactly pretty...
ifeq ($(SOLAR_JAVA),) ifeq ($(SOLAR_JAVA),)
filter_MERGE_TARGET := $(gb_PYTHONTARGET) \ filter_MERGE_TARGET := $(call gb_ExternalExecutable_get_deps,python) \
$(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge $(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 $(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge
else # SOLAR_JAVA else # SOLAR_JAVA
filter_MERGE_TARGET := $(OUTDIR_FOR_BUILD)/bin/FCFGMerge.jar filter_MERGE_TARGET := $(OUTDIR_FOR_BUILD)/bin/FCFGMerge.jar
...@@ -229,11 +229,12 @@ $(call gb_Configuration_get_clean_target,fcfg_langpack) : \ ...@@ -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 # so generate non-pattern rules which have higher priority even in GNUmake 3.81
define filter_XcuResTarget__rule define filter_XcuResTarget__rule
$$(call filter_XcuResTarget_get_target,$(1)) : \ $$(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_Output_announce,$(1),$(true),XCU,1)
$$(call gb_Helper_abbreviate_dirs,\ $$(call gb_Helper_abbreviate_dirs,\
mkdir -p $$(dir $$@) && \ mkdir -p $$(dir $$@) && \
$(gb_XSLTPROC) --nonet --stringparam lang $(1) \ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam lang $(1) \
$(filter_XSLT_langfilter) \ $(filter_XSLT_langfilter) \
$(filter_XcuFilterUiTarget) > $$@) $(filter_XcuFilterUiTarget) > $$@)
endef endef
......
...@@ -59,12 +59,12 @@ $(filter_GEN_svg_Tokens_cxx) : $(filter_GEN_svg_Tokens_gperf) ...@@ -59,12 +59,12 @@ $(filter_GEN_svg_Tokens_cxx) : $(filter_GEN_svg_Tokens_gperf)
> $(filter_GEN_svg_Tokens_cxx)) > $(filter_GEN_svg_Tokens_cxx))
$(filter_GEN_svg_Script_hxx) : \ $(filter_GEN_svg_Script_hxx) : \
$(gb_PYTHONTARGET) \ $(call gb_ExternalExecutable_get_deps,python) \
$(filter_SRC_svg_PresentationEngine) $(filter_SRC_svg_Js2Hxx) \ $(filter_SRC_svg_PresentationEngine) $(filter_SRC_svg_Js2Hxx) \
| $(filter_SVGWORK)/.dir | $(filter_SVGWORK)/.dir
$(call gb_Output_announce,$@,build,PY ,1) $(call gb_Output_announce,$@,build,PY ,1)
$(call gb_Helper_abbreviate_dirs, \ $(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_SRC_svg_PresentationEngine) \
$(filter_GEN_svg_Script_hxx)) $(filter_GEN_svg_Script_hxx))
......
...@@ -53,10 +53,11 @@ $(i18npool_LDDIR)/localedata_%.cxx : \ ...@@ -53,10 +53,11 @@ $(i18npool_LDDIR)/localedata_%.cxx : \
rm $@.tmp) rm $@.tmp)
$(i18npool_LDDIR)/saxparser.rdb : $(i18npool_LDDIR)/saxparser.input \ $(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_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),RDB,1)
$(call gb_Helper_abbreviate_dirs, \ $(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 $<) -o $@ $(SOLARENV)/bin/packcomponents.xslt $<)
$(i18npool_LDDIR)/saxparser.input : $(call gb_ComponentTarget_get_outdir_target,sax/source/expatwrap/expwrap) | $(i18npool_LDDIR)/.dir $(i18npool_LDDIR)/saxparser.input : $(call gb_ComponentTarget_get_outdir_target,sax/source/expatwrap/expwrap) | $(i18npool_LDDIR)/.dir
......
...@@ -46,9 +46,10 @@ officecfg_xsltparams=$(if $(filter-out $(lastword $1),$1),$(call officecfg_xsltp ...@@ -46,9 +46,10 @@ officecfg_xsltparams=$(if $(filter-out $(lastword $1),$1),$(call officecfg_xsltp
$(call gb_CustomTarget_get_workdir,officecfg/registry)/%.hxx: \ $(call gb_CustomTarget_get_workdir,officecfg/registry)/%.hxx: \
$(SRCDIR)/officecfg/registry/schema/org/openoffice/%.xcs \ $(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_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \ $(call gb_Helper_abbreviate_dirs, \
mkdir -p $(dir $@) && \ 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 $<) -o $@ $(SRCDIR)/officecfg/registry/cppheader.xsl $<)
...@@ -55,10 +55,11 @@ endif ...@@ -55,10 +55,11 @@ endif
$(readlicense_oo_README_PATTERN) : \ $(readlicense_oo_README_PATTERN) : \
$(SRCDIR)/readlicense_oo/docs/readme.xsl \ $(SRCDIR)/readlicense_oo/docs/readme.xsl \
$(readlicense_oo_README_XRM) \ $(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_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \ $(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 com1 $(COM) \
--stringparam cp1 $(CPUNAME) \ --stringparam cp1 $(CPUNAME) \
--stringparam gui1 $(GUI) \ --stringparam gui1 $(GUI) \
......
...@@ -39,7 +39,7 @@ $(call gb_Output_announce,$(3),$(true),CMP,1) ...@@ -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))) $(if $(LIBFILENAME),,$(call gb_Output_error,No LIBFILENAME set at component target: $(1)))
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \ 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) \ '$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,$(subst \d,$$,$(COMPONENTPREFIX)))$(LIBFILENAME)' -o $(1) \
$(gb_ComponentTarget_XSLTCOMMANDFILE) $(2)) $(gb_ComponentTarget_XSLTCOMMANDFILE) $(2))
endef endef
...@@ -52,7 +52,8 @@ $(call gb_ComponentTarget_get_clean_target,%) : ...@@ -52,7 +52,8 @@ $(call gb_ComponentTarget_get_clean_target,%) :
$(call gb_ComponentTarget_get_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,$@,$<,$*) $(call gb_ComponentTarget__command,$@,$<,$*)
# the .dir is for make 3.81, which ignores trailing / # the .dir is for make 3.81, which ignores trailing /
......
...@@ -47,12 +47,13 @@ $(call gb_ComponentsTarget_get_target,$(1)).input: COMPONENTFILES += $(2) ...@@ -47,12 +47,13 @@ $(call gb_ComponentsTarget_get_target,$(1)).input: COMPONENTFILES += $(2)
endef endef
$(call gb_ComponentsTarget_get_target,%): \ $(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_Output_announce,$*,$(true),CPS,1)
$(call gb_Helper_abbreviate_dirs, \ $(call gb_Helper_abbreviate_dirs, \
mkdir -p $(dir $@)) mkdir -p $(dir $@))
$(call gb_Helper_abbreviate_dirs, \ $(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) $(SOLARENV)/bin/packcomponents.xslt $@.input)
$(call gb_ComponentsTarget_get_clean_target,%): \ $(call gb_ComponentsTarget_get_clean_target,%): \
......
...@@ -57,6 +57,9 @@ gb_Configuration__get_source = $(SRCDIR)/$(2) ...@@ -57,6 +57,9 @@ gb_Configuration__get_source = $(SRCDIR)/$(2)
# The main LibreOffice registry # The main LibreOffice registry
gb_Configuration_PRIMARY_REGISTRY_NAME := 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 # XcsTarget class
# need to locate a schema file corresponding to some XCU file in the outdir # need to locate a schema file corresponding to some XCU file in the outdir
...@@ -75,18 +78,18 @@ define gb_XcsTarget__command ...@@ -75,18 +78,18 @@ define gb_XcsTarget__command
$(call gb_Output_announce,$(2),$(true),XCS,1) $(call gb_Output_announce,$(2),$(true),XCS,1)
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \ mkdir -p $(dir $(1)) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \ --noout \
--stringparam componentName $(subst /,.,$(basename $(XCSFILE))) \ --stringparam componentName $(subst /,.,$(basename $(XCSFILE))) \
--stringparam root $(subst $(XCSFILE),,$(3)) \ --stringparam root $(subst $(XCSFILE),,$(3)) \
$(if $(PRIMARY_REGISTRY),,--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,)) \ $(if $(PRIMARY_REGISTRY),,--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,)) \
$(gb_XcsTarget_XSLT_SchemaVal) \ $(gb_XcsTarget_XSLT_SchemaVal) \
$(3) && \ $(3) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \ --noout \
$(gb_XcsTarget_XSLT_Sanity) \ $(gb_XcsTarget_XSLT_Sanity) \
$(3) && \ $(3) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \ -o $(1) \
$(gb_XcsTarget_XSLT_SchemaTrim) \ $(gb_XcsTarget_XSLT_SchemaTrim) \
$(3)) $(3))
...@@ -94,7 +97,8 @@ endef ...@@ -94,7 +97,8 @@ endef
$(call gb_XcsTarget_get_target,%) : \ $(call gb_XcsTarget_get_target,%) : \
$(gb_XcsTarget_XSLT_SchemaVal) $(gb_XcsTarget_XSLT_Sanity) \ $(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__command,$@,$*,$(filter %.xcs,$^))
$(call gb_XcsTarget_get_clean_target,%) : $(call gb_XcsTarget_get_clean_target,%) :
...@@ -124,14 +128,14 @@ define gb_XcuDataTarget__command ...@@ -124,14 +128,14 @@ define gb_XcuDataTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,2) $(call gb_Output_announce,$(2),$(true),XCU,2)
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \ mkdir -p $(dir $(1)) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
--noout \ --noout \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \ --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \ --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
--path $(gb_Configuration_registry) \ --path $(gb_Configuration_registry) \
$(gb_XcuDataTarget_XSLT_DataVal) \ $(gb_XcuDataTarget_XSLT_DataVal) \
$(3) && \ $(3) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \ -o $(1) \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \ --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \ --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
...@@ -141,7 +145,8 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -141,7 +145,8 @@ $(call gb_Helper_abbreviate_dirs,\
endef endef
$(call gb_XcuDataTarget_get_target,%) : $(gb_XcuDataTarget_XSLT_DataVal) \ $(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__command,$@,$*,$(filter %.xcu,$^))
$(call gb_XcuDataTarget_get_clean_target,%) : $(call gb_XcuDataTarget_get_clean_target,%) :
...@@ -175,7 +180,7 @@ define gb_XcuModuleTarget__command ...@@ -175,7 +180,7 @@ define gb_XcuModuleTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,3) $(call gb_Output_announce,$(2),$(true),XCU,3)
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \ mkdir -p $(dir $(1)) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \ -o $(1) \
--stringparam xcs $(4) \ --stringparam xcs $(4) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \ --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
...@@ -184,7 +189,8 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -184,7 +189,8 @@ $(call gb_Helper_abbreviate_dirs,\
$(3)) $(3))
endef 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__command,$@,$*,$(filter %.xcu,$^),$(filter %.xcs,$^))
$(call gb_XcuModuleTarget_get_clean_target,%) : $(call gb_XcuModuleTarget_get_clean_target,%) :
...@@ -294,7 +300,7 @@ define gb_XcuResTarget__command ...@@ -294,7 +300,7 @@ define gb_XcuResTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,6) $(call gb_Output_announce,$(2),$(true),XCU,6)
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \ mkdir -p $(dir $(1)) && \
$(gb_XSLTPROC) --nonet \ $(gb_Configuration_XSLTCOMMAND) --nonet \
-o $(1) \ -o $(1) \
--stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \ --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
--stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \ --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
...@@ -304,7 +310,8 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -304,7 +310,8 @@ $(call gb_Helper_abbreviate_dirs,\
$(3)) $(3))
endef 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__command,$@,$*,$(filter %.xcu,$^))
$(call gb_XcuResTarget_get_clean_target,%) : $(call gb_XcuResTarget_get_clean_target,%) :
......
# -*- 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:
...@@ -33,11 +33,11 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -33,11 +33,11 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach component,$(COMPONENTS),echo "<filename>$(call gb_ComponentTarget_get_outdir_target,$(component))</filename>" &&) \ $(foreach component,$(COMPONENTS),echo "<filename>$(call gb_ComponentTarget_get_outdir_target,$(component))</filename>" &&) \
echo '</list>' \ echo '</list>' \
) > $(1).input && \ ) > $(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) rm $(1).input)
endef 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_Output_announce,$*,$(true),RDB,1)
$(call gb_Rdb__command,$@,$*,$?,$^) $(call gb_Rdb__command,$@,$*,$?,$^)
......
...@@ -72,7 +72,7 @@ endef ...@@ -72,7 +72,7 @@ endef
# idlc as well so their dummy rule fires if that changes. # idlc as well so their dummy rule fires if that changes.
$(call gb_UnoApiPartTarget_get_target,%.done) : \ $(call gb_UnoApiPartTarget_get_target,%.done) : \
$(gb_UnoApiPartTarget_IDLCTARGET) \ $(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),$?),$^,$?))) $(call gb_UnoApiPartTarget__command,$@,$*,$(filter-out $(gb_UnoApiPartTarget_IDLCTARGET),$(if $(filter $(gb_UnoApiPartTarget_IDLCTARGET),$?),$^,$?)))
ifeq ($(gb_FULLDEPS),$(true)) ifeq ($(gb_FULLDEPS),$(true))
......
...@@ -159,6 +159,7 @@ ifneq ($(strip $(ENVCFLAGSCXX)),) ...@@ -159,6 +159,7 @@ ifneq ($(strip $(ENVCFLAGSCXX)),)
gb__ENV_CXXFLAGS := $(ENVCFLAGSCXX) gb__ENV_CXXFLAGS := $(ENVCFLAGSCXX)
endif endif
include $(GBUILDDIR)/ExternalExecutable.mk
include $(GBUILDDIR)/Helper.mk include $(GBUILDDIR)/Helper.mk
include $(GBUILDDIR)/TargetLocations.mk include $(GBUILDDIR)/TargetLocations.mk
include $(GBUILDDIR)/Tempfile.mk include $(GBUILDDIR)/Tempfile.mk
...@@ -167,6 +168,7 @@ $(eval $(call gb_Helper_init_registries)) ...@@ -167,6 +168,7 @@ $(eval $(call gb_Helper_init_registries))
include $(SRCDIR)/Repository.mk include $(SRCDIR)/Repository.mk
include $(SRCDIR)/RepositoryExternal.mk include $(SRCDIR)/RepositoryExternal.mk
$(eval $(call gb_Helper_collect_knownlibs)) $(eval $(call gb_Helper_collect_knownlibs))
$(eval $(call gb_ExternalExecutable_collect_registrations))
gb_Library_DLLPOSTFIX := lo gb_Library_DLLPOSTFIX := lo
...@@ -175,52 +177,6 @@ include $(GBUILDDIR)/platform/$(OS)_$(CPUNAME)_$(COM).mk ...@@ -175,52 +177,6 @@ include $(GBUILDDIR)/platform/$(OS)_$(CPUNAME)_$(COM).mk
include $(SRCDIR)/RepositoryFixes.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 # add user-supplied flags
ifneq ($(strip gb__ENV_CFLAGS),) ifneq ($(strip gb__ENV_CFLAGS),)
gb_LinkTarget_CFLAGS += $(gb__ENV_CFLAGS) gb_LinkTarget_CFLAGS += $(gb__ENV_CFLAGS)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment