extras/CustomTarget_autotextuser.mk |   68 ++++++---------------
 extras/CustomTarget_tpl_styles.mk   |  100 ++++++--------------------------
 extras/CustomTarget_tpldraw.mk      |   98 ++++++-------------------------
 extras/CustomTarget_tplofficorr.mk  |   99 ++++++-------------------------
 extras/CustomTarget_tploffimisc.mk  |   99 ++++++-------------------------
 extras/CustomTarget_tplpersonal.mk  |   99 ++++++-------------------------
 extras/CustomTarget_tplpresnt.mk    |  112 ++++++------------------------------
 7 files changed, 140 insertions(+), 535 deletions(-)

New commits:
commit 967900354d36de50eff76e9622b0b4655d450f41
Author:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
AuthorDate: Wed Feb 9 14:04:06 2022 +0100
Commit:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
CommitDate: Thu Feb 10 11:35:38 2022 +0100

    simplify the template makefiles
    
    can later be combined further, the process is the same/no real need for
    separate makefile rules
    
    Change-Id: Ic04acc4084605382147fa43a905fe559f9197d7f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129726
    Tested-by: Jenkins
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>

diff --git a/extras/CustomTarget_tpl_styles.mk 
b/extras/CustomTarget_tpl_styles.mk
index 60897f38d801..6f1cce959d62 100644
--- a/extras/CustomTarget_tpl_styles.mk
+++ b/extras/CustomTarget_tpl_styles.mk
@@ -9,12 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/styles))
 
-extras_TEMPLATES_STYLES := \
-       Default \
-       Modern \
-       Simple \
-
-
 extras_STYLES_XMLFILES := \
        Default/META-INF/manifest.xml \
        Default/meta.xml \
@@ -29,92 +23,38 @@ extras_STYLES_XMLFILES := \
        Simple/styles.xml \
        Simple/Thumbnails/thumbnail.png \
 
-
-extras_STYLES_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_STYLES),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/styles) : \
-       $(foreach atexts,$(extras_TEMPLATES_STYLES),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/styles)/$(atexts).ott)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%/mimetype 
: $(SRCDIR)/extras/source/templates/styles/%/mimetype
-       $(call gb_Output_announce,templates/styles/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.jpg : 
$(SRCDIR)/extras/source/templates/styles/%.jpg
-       $(call gb_Output_announce,templates/styles/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.png : 
$(SRCDIR)/extras/source/templates/styles/%.png
-       $(call gb_Output_announce,templates/styles/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*.png,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.rdf : 
$(SRCDIR)/extras/source/templates/styles/%.rdf
-       $(call gb_Output_announce,templates/styles/$*.rdf,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*.rdf,CPY)
+# param: style-base (e.g. Modern)
+extras_STYLES_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_STYLES_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/% : 
$(SRCDIR)/extras/source/templates/styles/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/styles)/$$*).dir
+       $(call gb_Output_announce,templates/styles/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/styles/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*.rdf,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.svg : 
$(SRCDIR)/extras/source/templates/styles/%.svg
-       $(call gb_Output_announce,templates/styles/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.svm : 
$(SRCDIR)/extras/source/templates/styles/%.svm
-       $(call gb_Output_announce,templates/styles/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/styles/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/styles/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/styles/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.xml : 
$(SRCDIR)/extras/source/templates/styles/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/styles)/$$*.xml).dir
        $(call gb_Output_announce,templates/styles/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/styles/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/styles/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.ott :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/styles)/%.ott : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/styles)/$$*/,\
+            mimetype $$(call extras_STYLES_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/styles/$*.ott,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/styles/$*.ott,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_STYLES_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_STYLES_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_STYLES_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_STYLES_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/styles/$*.ott,ZIP)
 
-define extras_Tplstyles_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tplstyles_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_STYLES_MIMETYPEFILES) $(extras_STYLES_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_STYLES_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_STYLES_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_STYLES_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_STYLES_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_STYLES_DIR := $(call gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_STYLES_MIMETYPEFILES) 
$(extras_STYLES_XMLFILES),\
-       $(call 
extras_Tplstyles_make_file_deps,extras/source/templates/styles,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_STYLES),\
-       $(call 
extras_Tplstyles_make_zip_deps,extras/source/templates/styles,$(atexts).ott,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tpldraw.mk b/extras/CustomTarget_tpldraw.mk
index ec878697f55a..8de8d0d75a12 100644
--- a/extras/CustomTarget_tpldraw.mk
+++ b/extras/CustomTarget_tpldraw.mk
@@ -9,10 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/draw))
 
-extras_TEMPLATES_DRAW := \
-       bpmn \
-
-
 extras_DRAW_XMLFILES := \
        bpmn/content.xml \
        bpmn/META-INF/manifest.xml \
@@ -20,92 +16,38 @@ extras_DRAW_XMLFILES := \
        bpmn/styles.xml \
        bpmn/Thumbnails/thumbnail.png \
 
-
-extras_DRAW_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_DRAW),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/draw) : \
-       $(foreach atexts,$(extras_TEMPLATES_DRAW),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/draw)/$(atexts).otg)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%/mimetype : 
$(SRCDIR)/extras/source/templates/draw/%/mimetype
-       $(call gb_Output_announce,templates/draw/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.jpg : 
$(SRCDIR)/extras/source/templates/draw/%.jpg
-       $(call gb_Output_announce,templates/draw/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.png : 
$(SRCDIR)/extras/source/templates/draw/%.png
-       $(call gb_Output_announce,templates/draw/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*.png,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.rdf : 
$(SRCDIR)/extras/source/templates/draw/%.rdf
-       $(call gb_Output_announce,templates/draw/$*.rdf,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*.rdf,CPY)
+# param: style-base (e.g. Modern)
+extras_DRAW_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_DRAW_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/% : 
$(SRCDIR)/extras/source/templates/draw/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/draw)/$$*).dir
+       $(call gb_Output_announce,templates/draw/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/draw/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*.rdf,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.svg : 
$(SRCDIR)/extras/source/templates/draw/%.svg
-       $(call gb_Output_announce,templates/draw/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.svm : 
$(SRCDIR)/extras/source/templates/draw/%.svm
-       $(call gb_Output_announce,templates/draw/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/draw/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/draw/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/draw/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.xml : 
$(SRCDIR)/extras/source/templates/draw/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/draw)/$$*.xml).dir
        $(call gb_Output_announce,templates/draw/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/draw/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/draw/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.otg :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/draw)/%.otg : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/draw)/$$*/,\
+            mimetype $$(call extras_DRAW_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/draw/$*.otg,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/draw/$*.otg,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_DRAW_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_DRAW_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_DRAW_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_DRAW_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/draw/$*.otg,ZIP)
 
-define extras_Tpldraw_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tpldraw_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_DRAW_MIMETYPEFILES) $(extras_DRAW_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_DRAW_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_DRAW_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_DRAW_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_DRAW_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_DRAW_DIR := $(call gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_DRAW_MIMETYPEFILES) $(extras_DRAW_XMLFILES),\
-       $(call 
extras_Tpldraw_make_file_deps,extras/source/templates/draw,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_DRAW),\
-       $(call 
extras_Tpldraw_make_zip_deps,extras/source/templates/draw,$(atexts).otg,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplofficorr.mk 
b/extras/CustomTarget_tplofficorr.mk
index e6337b7f03b6..56a579d95dc3 100644
--- a/extras/CustomTarget_tplofficorr.mk
+++ b/extras/CustomTarget_tplofficorr.mk
@@ -9,11 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/officorr))
 
-extras_TEMPLATES_OFFICORR := \
-       Modern_business_letter_sans_serif \
-       Modern_business_letter_serif \
-
-
 extras_OFFICORR_XMLFILES := \
        Modern_business_letter_sans_serif/content.xml \
        Modern_business_letter_sans_serif/manifest.rdf \
@@ -28,92 +23,38 @@ extras_OFFICORR_XMLFILES := \
        Modern_business_letter_serif/styles.xml \
        Modern_business_letter_serif/Thumbnails/thumbnail.png \
 
-
-extras_OFFICORR_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_OFFICORR),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/officorr) : \
-       $(foreach atexts,$(extras_TEMPLATES_OFFICORR),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/officorr)/$(atexts).ott)
-
-$(call 
gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%/mimetype : 
$(SRCDIR)/extras/source/templates/officorr/%/mimetype
-       $(call gb_Output_announce,templates/officorr/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.jpg : 
$(SRCDIR)/extras/source/templates/officorr/%.jpg
-       $(call gb_Output_announce,templates/officorr/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.rdf : 
$(SRCDIR)/extras/source/templates/officorr/%.rdf
-       $(call gb_Output_announce,templates/officorr/$*.rdf,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*.rdf,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*.rdf,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.png : 
$(SRCDIR)/extras/source/templates/officorr/%.png
-       $(call gb_Output_announce,templates/officorr/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*.png,CPY)
+# param: style-base (e.g. Modern)
+extras_OFFICORR_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_OFFICORR_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/% : 
$(SRCDIR)/extras/source/templates/officorr/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/officorr)/$$*).dir
+       $(call gb_Output_announce,templates/officorr/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/officorr/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.svg : 
$(SRCDIR)/extras/source/templates/officorr/%.svg
-       $(call gb_Output_announce,templates/officorr/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.svm : 
$(SRCDIR)/extras/source/templates/officorr/%.svm
-       $(call gb_Output_announce,templates/officorr/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/officorr/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/officorr/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/officorr/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.xml : 
$(SRCDIR)/extras/source/templates/officorr/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/officorr)/$$*.xml).dir
        $(call gb_Output_announce,templates/officorr/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/officorr/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/officorr/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.ott :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/officorr)/%.ott : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/officorr)/$$*/,\
+            mimetype $$(call extras_OFFICORR_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/officorr/$*.ott,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/officorr/$*.ott,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_OFFICORR_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_OFFICORR_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_OFFICORR_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_OFFICORR_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/officorr/$*.ott,ZIP)
 
-define extras_Tplofficorr_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tplofficorr_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_OFFICORR_MIMETYPEFILES) $(extras_OFFICORR_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFICORR_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_OFFICORR_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFICORR_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_OFFICORR_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFICORR_DIR := $(call gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_OFFICORR_MIMETYPEFILES) 
$(extras_OFFICORR_XMLFILES),\
-       $(call 
extras_Tplofficorr_make_file_deps,extras/source/templates/officorr,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_OFFICORR),\
-       $(call 
extras_Tplofficorr_make_zip_deps,extras/source/templates/officorr,$(atexts).ott,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tploffimisc.mk 
b/extras/CustomTarget_tploffimisc.mk
index a4582eb2686b..5391e7328ff3 100644
--- a/extras/CustomTarget_tploffimisc.mk
+++ b/extras/CustomTarget_tploffimisc.mk
@@ -9,10 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/offimisc))
 
-extras_TEMPLATES_OFFIMISC := \
-       Businesscard-with-logo \
-
-
 extras_OFFIMISC_XMLFILES := \
        Businesscard-with-logo/content.xml \
        Businesscard-with-logo/manifest.rdf \
@@ -23,92 +19,39 @@ extras_OFFIMISC_XMLFILES := \
        Businesscard-with-logo/styles.xml \
        Businesscard-with-logo/Thumbnails/thumbnail.png \
 
-
-extras_OFFIMISC_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_OFFIMISC),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/offimisc) : \
-       $(foreach atexts,$(extras_TEMPLATES_OFFIMISC),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/$(atexts).ott)
-
-$(call 
gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%/mimetype : 
$(SRCDIR)/extras/source/templates/offimisc/%/mimetype
-       $(call gb_Output_announce,templates/offimisc/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.jpg : 
$(SRCDIR)/extras/source/templates/offimisc/%.jpg
-       $(call gb_Output_announce,templates/offimisc/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.png : 
$(SRCDIR)/extras/source/templates/offimisc/%.png
-       $(call gb_Output_announce,templates/offimisc/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*.png,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.rdf : 
$(SRCDIR)/extras/source/templates/offimisc/%.rdf
-       $(call gb_Output_announce,templates/offimisc/$*.rdf,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*.rdf,CPY)
+# param: style-base (e.g. Modern)
+extras_OFFIMISC_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_OFFIMISC_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/% : 
$(SRCDIR)/extras/source/templates/offimisc/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/$$*).dir
+       $(call gb_Output_announce,templates/offimisc/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/offimisc/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*.rdf,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.svg : 
$(SRCDIR)/extras/source/templates/offimisc/%.svg
-       $(call gb_Output_announce,templates/offimisc/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.svm : 
$(SRCDIR)/extras/source/templates/offimisc/%.svm
-       $(call gb_Output_announce,templates/offimisc/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/offimisc/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/offimisc/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/offimisc/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.xml : 
$(SRCDIR)/extras/source/templates/offimisc/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/$$*.xml).dir
        $(call gb_Output_announce,templates/offimisc/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/offimisc/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/offimisc/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.ott :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/%.ott : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/offimisc)/$$*/,\
+            mimetype $$(call extras_OFFIMISC_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/offimisc/$*.ott,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/offimisc/$*.ott,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_OFFIMISC_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_OFFIMISC_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_OFFIMISC_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_OFFIMISC_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/offimisc/$*.ott,ZIP)
-
-define extras_Tploffimisc_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tploffimisc_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_OFFIMISC_MIMETYPEFILES) $(extras_OFFIMISC_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFIMISC_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_OFFIMISC_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFIMISC_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_OFFIMISC_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_OFFIMISC_DIR := $(call gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_OFFIMISC_MIMETYPEFILES) 
$(extras_OFFIMISC_XMLFILES),\
-       $(call 
extras_Tploffimisc_make_file_deps,extras/source/templates/offimisc,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_OFFIMISC),\
-       $(call 
extras_Tploffimisc_make_zip_deps,extras/source/templates/offimisc,$(atexts).ott,$(atexts))
 \
-))
+extras_OFFIMISC_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_OFFIMISC),$(atexts)/mimetype)
 
 # vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplpersonal.mk 
b/extras/CustomTarget_tplpersonal.mk
index 3b39354da57a..b7d59b627b3a 100644
--- a/extras/CustomTarget_tplpersonal.mk
+++ b/extras/CustomTarget_tplpersonal.mk
@@ -9,11 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/personal))
 
-extras_TEMPLATES_PERSONAL := \
-       CV \
-       Resume1page \
-
-
 extras_PERSONAL_XMLFILES := \
        CV/content.xml \
        CV/manifest.rdf \
@@ -28,92 +23,38 @@ extras_PERSONAL_XMLFILES := \
        Resume1page/styles.xml \
        Resume1page/Thumbnails/thumbnail.png \
 
-
-extras_PERSONAL_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_PERSONAL),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/personal) : \
-       $(foreach atexts,$(extras_TEMPLATES_PERSONAL),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/personal)/$(atexts).ott)
-
-$(call 
gb_CustomTarget_get_workdir,extras/source/templates/personal)/%/mimetype : 
$(SRCDIR)/extras/source/templates/personal/%/mimetype
-       $(call gb_Output_announce,templates/personal/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.jpg : 
$(SRCDIR)/extras/source/templates/personal/%.jpg
-       $(call gb_Output_announce,templates/personal/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.png : 
$(SRCDIR)/extras/source/templates/personal/%.png
-       $(call gb_Output_announce,templates/personal/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*.png,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.rdf : 
$(SRCDIR)/extras/source/templates/personal/%.rdf
-       $(call gb_Output_announce,templates/personal/$*.rdf,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*.rdf,CPY)
+# param: style-base (e.g. Modern)
+extras_PERSONAL_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_PERSONAL_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/% : 
$(SRCDIR)/extras/source/templates/personal/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/personal)/$$*).dir
+       $(call gb_Output_announce,templates/personal/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/personal/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*.rdf,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.svg : 
$(SRCDIR)/extras/source/templates/personal/%.svg
-       $(call gb_Output_announce,templates/personal/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.svm : 
$(SRCDIR)/extras/source/templates/personal/%.svm
-       $(call gb_Output_announce,templates/personal/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/personal/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/personal/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/personal/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.xml : 
$(SRCDIR)/extras/source/templates/personal/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/personal)/$$*.xml).dir
        $(call gb_Output_announce,templates/personal/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/personal/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/personal/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.ott :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/personal)/%.ott : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/personal)/$$*/,\
+            mimetype $$(call extras_PERSONAL_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/personal/$*.ott,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/personal/$*.ott,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_PERSONAL_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_PERSONAL_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_PERSONAL_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_PERSONAL_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/personal/$*.ott,ZIP)
 
-define extras_Tplpersonal_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tplpersonal_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_PERSONAL_MIMETYPEFILES) $(extras_PERSONAL_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PERSONAL_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_PERSONAL_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PERSONAL_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_PERSONAL_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PERSONAL_DIR := $(call gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_PERSONAL_MIMETYPEFILES) 
$(extras_PERSONAL_XMLFILES),\
-       $(call 
extras_Tplpersonal_make_file_deps,extras/source/templates/personal,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_PERSONAL),\
-       $(call 
extras_Tplpersonal_make_zip_deps,extras/source/templates/personal,$(atexts).ott,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplpresnt.mk b/extras/CustomTarget_tplpresnt.mk
index 64c5bdd720e3..06b7e2990905 100644
--- a/extras/CustomTarget_tplpresnt.mk
+++ b/extras/CustomTarget_tplpresnt.mk
@@ -9,31 +9,6 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/presnt))
 
-extras_TEMPLATES_PRESENTATIONS := \
-       Beehive \
-       Blue_Curve \
-       Blueprint_Plans \
-       Candy \
-       DNA \
-       Focus \
-       Forestbird \
-       Grey_Elegant \
-       Growing_Liberty \
-       Freshes \
-       Inspiration \
-       Lights \
-       Metropolis \
-       Midnightblue \
-       Nature_Illustration \
-       Pencil \
-       Piano \
-       Portfolio \
-       Progress \
-       Sunset \
-       Vintage \
-       Vivid \
-       Yellow_Idea \
-
 extras_PRESENTATIONS_XMLFILES := \
        Beehive/content.xml \
        Beehive/META-INF/manifest.xml \
@@ -229,85 +204,38 @@ extras_PRESENTATIONS_XMLFILES := \
        Yellow_Idea/Pictures/100002010000009E000000BD075AA48B79110C47.png \
        Yellow_Idea/Thumbnails/thumbnail.png \
 
-extras_PRESENTATIONS_MIMETYPEFILES := $(foreach 
atexts,$(extras_TEMPLATES_PRESENTATIONS),$(atexts)/mimetype)
-
-
-$(call gb_CustomTarget_get_target,extras/source/templates/presnt) : \
-       $(foreach atexts,$(extras_TEMPLATES_PRESENTATIONS),$(call 
gb_CustomTarget_get_workdir,extras/source/templates/presnt)/$(atexts).otp)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%/mimetype 
: $(SRCDIR)/extras/source/templates/presnt/%/mimetype
-       $(call gb_Output_announce,templates/presnt/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/presnt/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/presnt/$*/mimetype,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.jpg : 
$(SRCDIR)/extras/source/templates/presnt/%.jpg
-       $(call gb_Output_announce,templates/presnt/$*.jpg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/presnt/$*.jpg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/presnt/$*.jpg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.svg : 
$(SRCDIR)/extras/source/templates/presnt/%.svg
-       $(call gb_Output_announce,templates/presnt/$*.svg,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/presnt/$*.svg,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/presnt/$*.svg,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.png : 
$(SRCDIR)/extras/source/templates/presnt/%.png
-       $(call gb_Output_announce,templates/presnt/$*.png,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/presnt/$*.png,CPY)
+# param: style-base (e.g. Modern)
+extras_PRESNT_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_PRESENTATIONS_XMLFILES)))
+
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
+$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/% : 
$(SRCDIR)/extras/source/templates/presnt/% \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/presnt)/$$*).dir
+       $(call gb_Output_announce,templates/presnt/$*,$(true),CPY,1)
+       $(call gb_Trace_StartRange,templates/presnt/$*,CPY)
        cp $< $@
-       $(call gb_Trace_EndRange,templates/presnt/$*.png,CPY)
-
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.svm : 
$(SRCDIR)/extras/source/templates/presnt/%.svm
-       $(call gb_Output_announce,templates/presnt/$*.svm,$(true),CPY,1)
-       $(call gb_Trace_StartRange,templates/presnt/$*.svm,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,templates/presnt/$*.svm,CPY)
+       $(call gb_Trace_EndRange,templates/presnt/$*,CPY)
 
 $(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.xml : 
$(SRCDIR)/extras/source/templates/presnt/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/templates/presnt)/$$*.xml).dir
        $(call gb_Output_announce,templates/presnt/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,templates/presnt/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,templates/presnt/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.otp :
+$(call gb_CustomTarget_get_workdir,extras/source/templates/presnt)/%.otp : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/templates/presnt)/$$*/,\
+            mimetype $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,templates/presnt/$*.otp,$(true),ZIP,2)
        $(call gb_Trace_StartRange,templates/presnt/$*.otp,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_PRESENTATIONS_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_PRESENTATIONS_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ 
$(EXTRAS_PRESENTATIONS_XMLFILES_FILTER) \
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_PRESNT_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,templates/presnt/$*.otp,ZIP)
 
-define extras_Tplpresnt_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-endef
-
-define extras_Tplpresnt_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1))/,$(filter 
$(3)/%,$(extras_PRESENTATIONS_MIMETYPEFILES) $(extras_PRESENTATIONS_XMLFILES))) 
\
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1))/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PRESENTATIONS_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_PRESENTATIONS_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PRESENTATIONS_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_PRESENTATIONS_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1))/$(2) : \
-       EXTRAS_PRESENTATIONS_DIR := $(call 
gb_CustomTarget_get_workdir,$(1))/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_PRESENTATIONS_MIMETYPEFILES) 
$(extras_PRESENTATIONS_XMLFILES),\
-       $(call 
extras_Tplpresnt_make_file_deps,extras/source/templates/presnt,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_TEMPLATES_PRESENTATIONS),\
-       $(call 
extras_Tplpresnt_make_zip_deps,extras/source/templates/presnt,$(atexts).otp,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
commit 3cc082dd61c3bb47792e6784e2e196b014ecd806
Author:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
AuthorDate: Wed Feb 9 13:12:01 2022 +0100
Commit:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
CommitDate: Thu Feb 10 11:35:22 2022 +0100

    simplify autotextuser makefile
    
    could be made static, but left as pattern based since the rules could be
    combined with the other makefiles/there's no real need to treat building
    the user using separate makefile rules, it's the same procedure for both
    shared and user variant.
    
    Change-Id: Ic1dbbcf4dfd8f533d215cc930cc455f95658db1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129725
    Tested-by: Jenkins
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>

diff --git a/extras/CustomTarget_autotextuser.mk 
b/extras/CustomTarget_autotextuser.mk
index d4f662db9a12..e89e92d97a78 100644
--- a/extras/CustomTarget_autotextuser.mk
+++ b/extras/CustomTarget_autotextuser.mk
@@ -9,71 +9,41 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,extras/source/autotext/user))
 
-extras_AUTOTEXTUSER_AUTOTEXTS := \
-       mytexts \
-
-
 extras_AUTOTEXTUSER_XMLFILES := \
        mytexts/BlockList.xml \
        mytexts/META-INF/manifest.xml \
 
+# param: autotext-base (e.g. mytexts)
+extras_AUTOTEXTUSER_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter 
$(1)/%,$(extras_AUTOTEXTUSER_XMLFILES)))
 
-extras_AUTOTEXTUSER_MIMETYPEFILES := \
-       mytexts/mimetype \
-
-
-$(call gb_CustomTarget_get_target,extras/source/autotext/user) : \
-       $(foreach atexts,$(extras_AUTOTEXTUSER_AUTOTEXTS),$(call 
gb_CustomTarget_get_workdir,extras/source/autotext/user)/$(atexts).bau)
-
-$(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%/mimetype : 
$(SRCDIR)/extras/source/autotext/%/mimetype
-       $(call gb_Output_announce,autotext/user/$*/mimetype,$(true),CPY,1)
-       $(call gb_Trace_StartRange,autotext/user/$*/mimetype,CPY)
-       cp $< $@
-       $(call gb_Trace_EndRange,autotext/user/$*/mimetype,CPY)
+.SECONDEXPANSION:
+# secondexpansion since the patterns not just cover a filename portion, but 
also include a
+# directory portion withdifferent number of elements
+$(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%/mimetype : \
+        | $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/autotext/user)/$$*/mimetype).dir
+       $(call gb_Output_announce,autotext/user/$*/mimetype,$(true),TCH,1)
+       $(call gb_Trace_StartRange,autotext/user/$*/mimetype,TCH)
+       touch $@
+       $(call gb_Trace_EndRange,autotext/user/$*/mimetype,TCH)
 
 $(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%.xml : 
$(SRCDIR)/extras/source/autotext/%.xml \
-               | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+        | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+          $$(dir $(call 
gb_CustomTarget_get_workdir,extras/source/autotext/user)/$$*.xml).dir
        $(call gb_Output_announce,autotext/user/$*.xml,$(true),XSL,1)
        $(call gb_Trace_StartRange,autotext/user/$*.xml,XSL)
        $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ 
$(SRCDIR)/extras/util/compact.xsl $<
        $(call gb_Trace_EndRange,autotext/user/$*.xml,XSL)
 
-$(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%.bau :
+$(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%.bau : \
+        $$(addprefix $(call 
gb_CustomTarget_get_workdir,extras/source/autotext/user)/$$*/,\
+            mimetype $$(call extras_AUTOTEXTUSER_XMLFILES_RELATIVE,$$*))
        $(call gb_Output_announce,autotext/user/$*.bau,$(true),ZIP,2)
        $(call gb_Trace_StartRange,autotext/user/$*.bau,ZIP)
        $(call gb_Helper_abbreviate_dirs,\
-               cd $(EXTRAS_AUTOTEXTUSER_DIR) && \
-               zip -q0X --filesync --must-match $@ 
$(EXTRAS_AUTOTEXTUSER_MIMEFILES_FILTER) && \
-               zip -qrX --must-match $@ $(EXTRAS_AUTOTEXTUSER_XMLFILES_FILTER) 
\
+               cd $(dir $<) && \
+               zip -q0X --filesync --must-match $@ mimetype && \
+               zip -qrX --must-match $@ $(call 
extras_AUTOTEXTUSER_XMLFILES_RELATIVE,$*) \
        )
        $(call gb_Trace_EndRange,autotext/user/$*.bau,ZIP)
 
-define extras_Autotextuser_make_file_deps
-$(call gb_CustomTarget_get_workdir,$(1)/user)/$(2) : $(SRCDIR)/$(1)/$(2) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1)/user)/$(2)).dir
-
-endef
-
-define extras_Autotextuser_make_zip_deps
-$(call gb_CustomTarget_get_workdir,$(1)/user)/$(2) : \
-       $(addprefix $(call gb_CustomTarget_get_workdir,$(1)/user)/,$(filter 
$(3)/%,$(extras_AUTOTEXTUSER_MIMETYPEFILES) $(extras_AUTOTEXTUSER_XMLFILES))) \
-       | $(dir $(call gb_CustomTarget_get_workdir,$(1)/user)/$(2)).dir
-
-$(call gb_CustomTarget_get_workdir,$(1)/user)/$(2) : \
-       EXTRAS_AUTOTEXTUSER_MIMEFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_AUTOTEXTUSER_MIMETYPEFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1)/user)/$(2) : \
-       EXTRAS_AUTOTEXTUSER_XMLFILES_FILTER := $(foreach file,$(filter 
$(3)/%,$(extras_AUTOTEXTUSER_XMLFILES)),$(subst $(3)/,,$(file)))
-$(call gb_CustomTarget_get_workdir,$(1)/user)/$(2) : \
-       EXTRAS_AUTOTEXTUSER_DIR := $(call 
gb_CustomTarget_get_workdir,$(1)/user)/$(3)
-
-endef
-
-$(eval $(foreach file,$(extras_AUTOTEXTUSER_MIMETYPEFILES) 
$(extras_AUTOTEXTUSER_XMLFILES),\
-       $(call 
extras_Autotextuser_make_file_deps,extras/source/autotext,$(file)) \
-))
-
-$(eval $(foreach atexts,$(extras_AUTOTEXTUSER_AUTOTEXTS),\
-       $(call 
extras_Autotextuser_make_zip_deps,extras/source/autotext,$(atexts).bau,$(atexts))
 \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/extras/source/autotext/mytexts/mimetype 
b/extras/source/autotext/mytexts/mimetype
deleted file mode 100644
index e69de29bb2d1..000000000000

Reply via email to