summaryrefslogtreecommitdiff
path: root/solenv/gbuild
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-11-20 15:03:34 +0100
committerAndras Timar <atimar@suse.com>2012-11-20 15:03:34 +0100
commitfa88b3717d58410f6318c520b0397000f86b9720 (patch)
treead8f1b2135ebe8045de55e5af233ff442d901444 /solenv/gbuild
parent54cd57e03e115d6b009409e6df374603452b1378 (diff)
parenta7261b424716463a7bb157f0d79084c868e10015 (diff)
Merge branch 'feature/killsdf'
Conflicts: desktop/prj/build.lst helpcontent2 l10ntools/Executable_gsicheck.mk l10ntools/Executable_uiex.mk regexp/inc/regexp/reclass.hxx solenv/gbuild/AllLangResTarget.mk Change-Id: I398f0cd9e7daefa8d2e04fd977d5bc2e9708169b
Diffstat (limited to 'solenv/gbuild')
-rw-r--r--solenv/gbuild/AllLangResTarget.mk18
-rw-r--r--solenv/gbuild/Configuration.mk18
-rw-r--r--solenv/gbuild/ExtensionTarget.mk98
-rw-r--r--solenv/gbuild/InstallModuleTarget.mk13
-rw-r--r--solenv/gbuild/TargetLocations.mk2
-rw-r--r--solenv/gbuild/UI.mk11
6 files changed, 104 insertions, 56 deletions
diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index 477ec83afa96..78a775eab086 100644
--- a/solenv/gbuild/AllLangResTarget.mk
+++ b/solenv/gbuild/AllLangResTarget.mk
@@ -53,27 +53,31 @@ gb_SrsPartMergeTarget_TRANSEXCOMMAND := \
define gb_SrsPartMergeTarget__command
$(call gb_Output_announce,$(3),$(true),srs,1)
+MERGEINPUT=`$(gb_MKTEMP)` && \
+echo $(POFILES) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
$(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \
-p $(firstword $(subst /, ,$(2))) \
-i $(3) \
-o $(1) \
- -m $(SDF) \
- -l all)
+ -m $${MERGEINPUT} \
+ -l all) && \
+rm -rf $${MERGEINPUT}
endef
$(call gb_SrsPartMergeTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) $(gb_SrsPartMergeTarget_TRANSEXTARGET)
- $(if $(SDF),$(call gb_SrsPartMergeTarget__command,$@,$*,$<),mkdir -p $(dir $@) && cp $< $@)
+ $(if $(filter $(words $(POFILES)),$(words $(wildcard $(POFILES)))),\
+ $(call gb_SrsPartMergeTarget__command,$@,$*,$<),\
+ mkdir -p $(dir $@) && cp $< $@)
define gb_SrsPartMergeTarget_SrsPartMergeTarget
-$(call gb_SrsPartMergeTarget__SrsPartMergeTarget_impl,$(1),$(if $(2),$(gb_SDFLOCATION)/$(dir $(1))localize.sdf))
-
+$(call gb_SrsPartMergeTarget__SrsPartMergeTarget_impl,$(1),$(if $(2),$(foreach lang,$(filter-out en-US,$(gb_WITH_LANG)),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)))
endef
define gb_SrsPartMergeTarget__SrsPartMergeTarget_impl
-$(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(2)
+$(call gb_SrsPartMergeTarget_get_target,$(1)) : POFILES := $(2)
$(call gb_SrsPartMergeTarget_get_target,$(1)) : $(2)
endef
@@ -470,4 +474,4 @@ $(foreach lang,$(gb_AllLangResTarget_LANGS),\
endef
-# vim: set noet sw=4:
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/Configuration.mk b/solenv/gbuild/Configuration.mk
index 3315a6249cba..95f20e3e5959 100644
--- a/solenv/gbuild/Configuration.mk
+++ b/solenv/gbuild/Configuration.mk
@@ -38,7 +38,7 @@
# => XcuMergeTarget: merge
# => buildtools (cfgex)
# => Xcu data source
-# => localize.sdf
+# => *.po
# => XcsTarget (schema)
# Per-repo pattern rules for each repository do not work for all targets
@@ -251,18 +251,24 @@ gb_XcuMergeTarget_CFGEXCOMMAND := $(gb_Helper_set_ld_path) $(gb_XcuMergeTarget_C
# PRJNAME is computed from the stem (parameter $(2))
define gb_XcuMergeTarget__command
$(call gb_Output_announce,$(2),$(true),XCU,5)
+MERGEINPUT=`$(gb_MKTEMP)` && \
+echo $(POFILES) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
$(gb_XcuMergeTarget_CFGEXCOMMAND) \
-p $(firstword $(subst /, ,$(2))) \
-i $(3) \
-o $(1) \
- -m $(SDF) \
- -l all)
+ -m $${MERGEINPUT} \
+ -l all) && \
+rm -rf $${MERGEINPUT}
+
endef
$(call gb_XcuMergeTarget_get_target,%) : $(gb_XcuMergeTarget_CFGEXTARGET)
- $(if $(SDF),$(call gb_XcuMergeTarget__command,$@,$*,$(filter %.xcu,$^)),mkdir -p $(dir $@) && cp $(filter %.xcu,$^) $@)
+ $(if $(filter $(words $(POFILES)),$(words $(wildcard $(POFILES)))),\
+ $(call gb_XcuMergeTarget__command,$@,$*,$(filter %.xcu,$^)),\
+ mkdir -p $(dir $@) && cp $(filter %.xcu,$^) $@)
$(call gb_XcuMergeTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),XCU,5)
@@ -273,9 +279,9 @@ $(call gb_XcuMergeTarget_get_clean_target,%) :
define gb_XcuMergeTarget_XcuMergeTarget
$(call gb_XcuMergeTarget_get_target,$(1)) : \
$(call gb_Configuration__get_source,$(2),$(3)/$(4)) \
- $(gb_SDFLOCATION)/$(dir $(1))localize.sdf
+ $(wildcard $(foreach lang,$(filter-out en-US,$(gb_WITH_LANG)),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po))
$(call gb_XcuMergeTarget_get_target,$(1)) : \
- SDF := $(gb_SDFLOCATION)/$(dir $(1))localize.sdf
+ POFILES := $(foreach lang,$(filter-out en-US,$(gb_WITH_LANG)),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)
endef
diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk
index 3e7643205a70..472b50d2c83f 100644
--- a/solenv/gbuild/ExtensionTarget.mk
+++ b/solenv/gbuild/ExtensionTarget.mk
@@ -36,16 +36,14 @@ gb_ExtensionTarget_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q)
gb_ExtensionTarget_XRMEXTARGET := $(call gb_Executable_get_target_for_build,xrmex)
gb_ExtensionTarget_XRMEXCOMMAND := \
$(gb_Helper_set_ld_path) $(gb_ExtensionTarget_XRMEXTARGET)
-# propmerge is a perl script
-gb_ExtensionTarget_PROPMERGETARGET := $(OUTDIR_FOR_BUILD)/bin/propmerge
+
+gb_ExtensionTarget_PROPMERGETARGET := $(call gb_Executable_get_target_for_build,propex)
gb_ExtensionTarget_PROPMERGECOMMAND := \
- $(PERL) $(gb_ExtensionTarget_PROPMERGETARGET)
+ $(gb_Helper_set_ld_path) $(gb_ExtensionTarget_PROPMERGETARGET)
-gb_ExtensionTarget_UPDATETREETARGET := $(SRCDIR)/l10ntools/scripts/update_tree.pl
-gb_ExtensionTarget_UPDATETREECOMMAND := \
- $(gb_Helper_set_ld_path) $(PERL) $(gb_ExtensionTarget_UPDATETREETARGET)
- # update_tree.pl calls xmllint, which needs $(gb_Helper_set_ld_path) if it
- # is the internal one
+gb_ExtensionTarget_TREEXTARGET := $(call gb_Executable_get_target_for_build,treex)
+gb_ExtensionTarget_TREEXCOMMAND := \
+ $(gb_Helper_set_ld_path) $(gb_ExtensionTarget_TREEXTARGET)
gb_ExtensionTarget_HELPEXTARGET := $(call gb_Executable_get_target_for_build,helpex)
gb_ExtensionTarget_HELPEXCOMMAND := \
@@ -99,14 +97,18 @@ $(call gb_ExtensionTarget_get_workdir,%)/description.xml :
else
$(call gb_ExtensionTarget_get_workdir,%)/description.xml : $(gb_ExtensionTarget_XRMEXTARGET)
$(call gb_Output_announce,$*/description.xml,$(true),XRM,3)
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $(POFILES) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(call gb_ExtensionTarget_get_workdir,$*) && \
$(gb_ExtensionTarget_XRMEXCOMMAND) \
-p $(PRJNAME) \
-i $(filter %.xml,$^) \
-o $@ \
- -m $(SDF) \
- -l all)
+ -m $${MERGEINPUT} \
+ -l all) && \
+ rm -rf $${MERGEINPUT}
+
endif
# rule to create oxt package in workdir
@@ -145,8 +147,10 @@ $(call gb_ExtensionTarget_get_workdir,$(1))/description.xml :| \
$(call gb_ExtensionTarget__get_preparation_target,$(1))
ifneq ($(strip $(gb_WITH_LANG)),)
-$(call gb_ExtensionTarget_get_target,$(1)) : SDF := $(gb_SDFLOCATION)/$(2)/localize.sdf
-$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : $(gb_SDFLOCATION)/$(2)/localize.sdf
+$(call gb_ExtensionTarget_get_target,$(1)) : \
+ POFILES := $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
+$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : \
+ $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
endif
$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
@@ -230,11 +234,20 @@ endef
# localize .properties file
# source file is copied to $(WORKDIR)
define gb_ExtensionTarget_localize_properties
+ifneq ($(filter-out en-US,$(gb_ExtensionTarget_ALL_LANGS)),)
+$(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,qtz,$(2)),$(3),qtz,$(firstword $(filter-out en-US,$(gb_ExtensionTarget_ALL_LANGS))))
+endif
+$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS),\
+ $(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang)))
+endef
+
+define gb_ExtensionTarget_localize_properties_onelang
$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2)
-ifneq ($(strip $(gb_WITH_LANG)),)
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(foreach lang,$(subst -,_,$(gb_ExtensionTarget_TRANS_LANGS)),$(subst en_US,$(lang),$(2)))
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : SDF := $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(dir $(3)))localize.sdf
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(dir $(3)))localize.sdf
+ifneq ($(filter-out en-US,$(4)),)
+$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
+ POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
+$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
+ $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
endif
$(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2)
$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) \
@@ -242,9 +255,14 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) \
$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3) \
$(gb_ExtensionTarget_PROPMERGETARGET)
$$(call gb_Output_announce,$(2),$(true),PRP,3)
- mkdir -p $$(dir $$@) && \
- cp -f $$< $$@ \
- $(if $(strip $(gb_WITH_LANG)),&& $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$@ -m $$(SDF))
+ $$(call gb_Helper_abbreviate_dirs, \
+ mkdir -p $$(dir $$@) && \
+ cp -f $$< $$@ )
+ $(if $(filter-out en-US,$(4)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
+ $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \
+ rm -rf $$$${MERGEINPUT})
endef
@@ -269,9 +287,8 @@ endef
# suffix
# $(3): relative path of (target) help.tree file (e.g.,
# com.sun.wiki-publisher/help.tree)
-# $(4): optional relative path of source help.tree file, when it differs from $(3)
-# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it
-# is $(2)/$(4))
+# $(4): relative path of source help.tree file
+# $(5): relative path of localized xhp files (PlatformID included)
define gb_ExtensionTarget_add_helptreefile
$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
$(call gb_ExtensionTarget__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \
@@ -304,10 +321,12 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : HELPFILES += $(3)
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3)
ifneq ($(strip $(gb_WITH_LANG)),)
+ifneq ($(filter-out en-US,$(5)),)
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
- SDF := $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(2)/$(dir $(or $(4),$(3)))))localize.sdf
+ POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
- $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(2)/$(dir $(or $(4),$(3)))))localize.sdf
+ $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
+endif
endif
$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
$(if $(filter-out en-US,$(5)),$(gb_ExtensionTarget_HELPEXTARGET)) | \
@@ -318,43 +337,54 @@ $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
$$(call gb_Helper_abbreviate_dirs, \
mkdir -p $$(dir $$@) && \
$(if $(filter-out en-US,$(5)), \
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
$(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \
- -m $$(SDF), \
+ -m $$$${MERGEINPUT} && \
+ rm -rf $$$${MERGEINPUT}, \
cp $$< $$@))
endef
# localize one help.tree for one language; the result is stored as
-# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is
-# "en-US", the source file is just copied, not passed through update_tree.pl
+# help/$(4)/$(3) in the extension's workdir;
# $(1): extension identifier
# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
# suffix
# $(3): relative path of (target) help.tree file (see
# gb_ExtensionTarget_add_helptreefile)
-# $(4): optional relative path of source help.tree file (see
+# $(4): relative path of source help.tree file (see
# gb_ExtensionTarget_add_helptreefile)
# $(5): language
+# $(6): relative path of localized xhp files (PlatformID included)
define gb_ExtensionTarget__localize_helptreefile_onelang
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3)
ifneq ($(strip $(gb_WITH_LANG)),)
+ifneq ($(filter-out en-US,$(5)),)
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
- SDF := $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(2)/$(dir $(or $(4),$(3)))))localize.sdf
+ POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
- $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(2)/$(dir $(or $(4),$(3)))))localize.sdf
+ $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
+endif
endif
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
- $(if $(filter-out en-US,$(5)),$(gb_ExtensionTarget_UPDATETREETARGET)) | \
+ $(gb_ExtensionTarget_TREEXTARGET) | \
$(2)/$(4)
$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
$(2)/$(or $(4),$(3))
$$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3)
$$(call gb_Helper_abbreviate_dirs, \
- mkdir -p $$(dir $$@) && \
+ mkdir -p $$(dir $$@) && \
$(if $(filter-out en-US,$(5)), \
- $(gb_ExtensionTarget_UPDATETREECOMMAND) $$< $(5) $$(SDF) $$@ $(6),\
- cp $$< $$@))
+ MERGEINPUT=`$(gb_MKTEMP)` && \
+ echo $$(POFILE) > $$$${MERGEINPUT} && \
+ $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+ -m $$$${MERGEINPUT} \
+ -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) && \
+ rm -rf $$$${MERGEINPUT}, \
+ $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+ -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) ))
endef
diff --git a/solenv/gbuild/InstallModuleTarget.mk b/solenv/gbuild/InstallModuleTarget.mk
index 08c130577548..4ea77c9fae5b 100644
--- a/solenv/gbuild/InstallModuleTarget.mk
+++ b/solenv/gbuild/InstallModuleTarget.mk
@@ -118,9 +118,12 @@ gb_ScpMergeTarget_get_source = $(SRCDIR)/$(1).ulf
define gb_ScpMergeTarget__command
$(call gb_Output_announce,$(2),$(true),SUM,1)
+MERGEINPUT=`$(gb_MKTEMP)` && \
+echo $(SCP_POFILES) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
- $(gb_ScpMergeTarget_COMMAND) -p scp2 -i $(SCP_SOURCE) -o $(1) -m $(SCP_SDF) -l all \
-)
+ $(gb_ScpMergeTarget_COMMAND) -p scp2 -i $(SCP_SOURCE) -o $(1) -m $${MERGEINPUT} -l all ) && \
+rm -rf $${MERGEINPUT}
+
endef
$(dir $(call gb_ScpMergeTarget_get_target,%))%/.dir :
@@ -139,8 +142,10 @@ define gb_ScpMergeTarget_ScpMergeTarget
$(call gb_ScpMergeTarget_get_target,$(1)) : SCP_SOURCE := $(call gb_ScpMergeTarget_get_source,$(1))
$(call gb_ScpMergeTarget_get_target,$(1)) : $(call gb_ScpMergeTarget_get_source,$(1))
$(call gb_ScpMergeTarget_get_target,$(1)) :| $(dir $(call gb_ScpMergeTarget_get_target,$(1))).dir
-$(call gb_ScpMergeTarget_get_target,$(1)) : SCP_SDF := $(gb_SDFLOCATION)/$(dir $(1))localize.sdf
-$(call gb_ScpMergeTarget_get_target,$(1)) : $(gb_SDFLOCATION)/$(dir $(1))localize.sdf
+$(call gb_ScpMergeTarget_get_target,$(1)) : \
+ SCP_POFILES := $(foreach lang,$(filter-out en-US,$(gb_WITH_LANG)),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)
+$(call gb_ScpMergeTarget_get_target,$(1)) : \
+ $(foreach lang,$(filter-out en-US,$(gb_WITH_LANG)),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)
endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 488664294628..f1f88bf0608f 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -344,7 +344,7 @@ gb_StaticLibrary_OUTDIRLOCATION = $(OUTDIR)/lib
# static variables declared here because they are used globally
-gb_SDFLOCATION := $(WORKDIR)/CustomTarget/translations/translate/sdf
+gb_POLOCATION := $(SRCDIR)/translations/source
gb_EXTERNAL_HEADERS_DIR := $(OUTDIR)/inc/external
# vim: set noet sw=4:
diff --git a/solenv/gbuild/UI.mk b/solenv/gbuild/UI.mk
index 18978cedb020..73c69c5b3f3d 100644
--- a/solenv/gbuild/UI.mk
+++ b/solenv/gbuild/UI.mk
@@ -16,13 +16,16 @@ gb_UILocalizeTarget_COMMAND := $(gb_Helper_set_ld_path) $(gb_UILocalizeTarget_TA
define gb_UILocalizeTarget__command
$(call gb_Output_announce,$(2),$(true),UIX,1)
+MERGEINPUT=`$(gb_MKTEMP)` && \
+echo $(POFILES) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
$(gb_UILocalizeTarget_COMMAND) \
-i $(UI_FILE) \
-o $(1) \
-l $(UI_LANG) \
- -m $(SDF) \
-)
+ -m $${MERGEINPUT} ) && \
+rm -rf $${MERGEINPUT}
+
endef
$(dir $(call gb_UILocalizeTarget_get_target,%))%/.dir :
@@ -42,11 +45,11 @@ $(call gb_UILocalizeTarget_get_clean_target,%) :
#
# gb_UILocalizeTarget_UILocalizeTarget target source lang
define gb_UILocalizeTarget_UILocalizeTarget
-$(call gb_UILocalizeTarget_get_target,$(1)) : SDF := $(gb_SDFLOCATION)/$(dir $(2))localize.sdf
+$(call gb_UILocalizeTarget_get_target,$(1)) : POFILES := $(foreach lang,$(gb_UITarget_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(2))).po)
$(call gb_UILocalizeTarget_get_target,$(1)) : UI_FILE := $(SRCDIR)/$(2).ui
$(call gb_UILocalizeTarget_get_target,$(1)) : UI_LANG := $(3)
-$(call gb_UILocalizeTarget_get_target,$(1)) : $(gb_SDFLOCATION)/$(dir $(2))localize.sdf
+$(call gb_UILocalizeTarget_get_target,$(1)) : $(foreach lang,$(gb_UITarget_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(2))).po)
$(call gb_UILocalizeTarget_get_target,$(1)) : $(SRCDIR)/$(2).ui
$(call gb_UILocalizeTarget_get_target,$(1)) :| $(dir $(call gb_UILocalizeTarget_get_target,$(1))).dir