summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-08-09 13:08:17 +0200
committerMichael Stahl <mstahl@redhat.com>2012-08-09 13:11:36 +0200
commit6292b12acfdddd51a816fad3b3ea8073a58eb3c2 (patch)
treef47c9a9c640dd82b6a251e49ef6f3847148c5631 /solenv
parent97febaa3e2130b92a2eadfc20688b2a37b194f45 (diff)
gbuild: add a kludge to get dictionaries to build in cygwin:
Due to the scourge of symlinked git repositories, building the configuration files in dictionaries fails on cygwin because the native xsltproc cannot understand cygwin symlinks; work around that with a new gb_Helper_symlinked_native function. Should be reverted once git sub modules liberate us from the scourge. Change-Id: Idc48da9b60348dc66160219909479c3c83daeaf2
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/Configuration.mk10
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_MSC.mk6
-rw-r--r--solenv/gbuild/platform/com_GCC_defs.mk2
3 files changed, 13 insertions, 5 deletions
diff --git a/solenv/gbuild/Configuration.mk b/solenv/gbuild/Configuration.mk
index 53a11e1b7379..61254cea46bc 100644
--- a/solenv/gbuild/Configuration.mk
+++ b/solenv/gbuild/Configuration.mk
@@ -93,7 +93,7 @@ endef
$(call gb_XcsTarget_get_target,%) : \
$(gb_XcsTarget_XSLT_SchemaVal) $(gb_XcsTarget_XSLT_Sanity) \
$(gb_XcsTarget_XSLT_SchemaTrim) $(gb_XcsTarget_DTD_Schema)
- $(call gb_XcsTarget__command,$@,$*,$(filter %.xcs,$^))
+ $(call gb_XcsTarget__command,$@,$*,$(call gb_Helper_symlinked_native,$(filter %.xcs,$^)))
$(call gb_XcsTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),XCS,1)
@@ -140,7 +140,7 @@ endef
$(call gb_XcuDataTarget_get_target,%) : $(gb_XcuDataTarget_XSLT_DataVal) \
$(gb_XcuTarget_XSLT_AllLang) $(gb_XcuDataTarget_DTD_ComponentUpdate)
- $(call gb_XcuDataTarget__command,$@,$*,$(filter %.xcu,$^))
+ $(call gb_XcuDataTarget__command,$@,$*,$(call gb_Helper_symlinked_native,$(filter %.xcu,$^)))
$(call gb_XcuDataTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),XCU,2)
@@ -183,7 +183,7 @@ $(call gb_Helper_abbreviate_dirs,\
endef
$(call gb_XcuModuleTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
- $(call gb_XcuModuleTarget__command,$@,$*,$(filter %.xcu,$^),$(filter %.xcs,$^))
+ $(call gb_XcuModuleTarget__command,$@,$*,$(call gb_Helper_symlinked_native,$(filter %.xcu,$^)),$(filter %.xcs,$^))
$(call gb_XcuModuleTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),XCU,3)
@@ -253,7 +253,7 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
$(gb_XcuMergeTarget_CFGEXCOMMAND) \
-p $(firstword $(subst /, ,$(2))) \
- -i $(3) \
+ -i $(call gb_Helper_symlinked_native,$(3)) \
-o $(1) \
-m $(SDF) \
-l all)
@@ -295,7 +295,7 @@ $(call gb_Helper_abbreviate_dirs,\
endef
$(call gb_XcuResTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
- $(call gb_XcuResTarget__command,$@,$*,$(filter %.xcu,$^))
+ $(call gb_XcuResTarget__command,$@,$*,$(call gb_Helper_symlinked_native,$(filter %.xcu,$^)))
$(call gb_XcuResTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),XCU,6)
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index 0c0c98fd64c5..7b64e2b0949e 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -248,6 +248,12 @@ define gb_Helper_make_url
file:///$(strip $(1))
endef
+# for source files in non-core repositories, the cygwin symlink is not
+# understood by native tools, so find the real path to the file
+define gb_Helper_symlinked_native
+$(shell cygpath -m $(realpath $(1)))
+endef
+
# YaccTarget class
define gb_YaccTarget__command
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 60ae0c355f31..39fa02b844ee 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -158,6 +158,8 @@ define gb_Helper_make_url
file://$(strip $(1))
endef
+gb_Helper_symlinked_native = $(1)
+
gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/lib
gb_Helper_OUTDIR_FOR_BUILDLIBDIR := $(OUTDIR_FOR_BUILD)/lib