On Thu, 2012-04-12 at 12:57 +0200, Michael Stahl wrote:
> rumor has it that putting the source in Cygwin home has never ever
> worked, but i have no idea why.

The conversion from unix-style /cygdrive/c/paths to /c/paths when
handing the paths to native tools does a simple search and replace. Any
cygwin paths which don't conform to /cygdrive/X are all horribly mangled
by the to and from process, so /home and /tmp don't work :-(

I burned some time trying to make it work, but higher priority stuff
scuppered me. Here's a diff of some hacking I was playing with to try
and work through it.

C.
diff --git a/configure.in b/configure.in
index eef6de4..1e0ec69 100644
--- a/configure.in
+++ b/configure.in
@@ -36,7 +36,7 @@ PathFormat()
             if test "$fp_count_colon" = "0" ; then
                 formatted_path=`realpath "$formatted_path"`
             fi
-            formatted_path=`cygpath -m "$formatted_path"`
+            formatted_path=`cygpath -m "$formatted_path" | $AWK -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }'`
         fi
     fi
 }
@@ -62,6 +62,12 @@ else
 fi
 AC_SUBST(CROSS_COMPILING)
 
+AC_PROG_AWK
+AC_PATH_PROG( AWK, $AWK)
+if test -z "$AWK"; then
+    AC_MSG_ERROR([install awk to run this script])
+fi
+
 if test "$build_os" = "cygwin"; then
     EXEEXT_FOR_BUILD=.exe
     SRC_ROOT=`pwd`
@@ -1995,12 +2001,6 @@ pathmunge ()
     fi
 }
 
-AC_PROG_AWK
-AC_PATH_PROG( AWK, $AWK)
-if test -z "$AWK"; then
-    AC_MSG_ERROR([install awk to run this script])
-fi
-
 AC_PATH_PROG(BASH, bash)
 if test -z "$BASH"; then
     AC_MSG_ERROR([bash not found in \$PATH])
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index 10dac0b..0524c75 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -47,7 +47,8 @@ $(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,W=$(WORKDIR) && $(subst $(WORKDI
 endef
 
 define gb_Helper_abbreviate_dirs_native
-$(call gb_Helper_convert_native,$(call gb_Helper_abbreviate_dirs,$(1)))
+$(warning gb_Helper_abbreviate_dirs_native $(1)) \
+$(call gb_Helper_convert_native,$(call gb_Helper_abbreviate_dirs,$(call gb_Helper_convert_nonnative,$(1))))
 endef
 
 define gb_Helper_make_clean_target
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index 6402b42..02e1d6f 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -247,15 +247,51 @@ gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR) | $(gb_AWK) -- '{ print
 
 gb_Helper_set_ld_path := PATH="$${PATH}:$(OUTDIR)/bin"
 
+define gb_Helper_convert_nonnative
+$(warning nonnative input is ::$(1)::) \
+$(strip \
+$(subst $(gb_Helper_SRCDIR_NATIVE),$(SRCDIR), \
+$(subst $(gb_Helper_WORKDIR_NATIVE),$(WORKDIR), \
+$(subst $(gb_Helper_OUTDIR_NATIVE),$(OUTDIR), \
+$(1))))) \
+$(warning nonnative output is \
+$(strip \
+$(subst $(gb_Helper_SRCDIR_NATIVE),$(SRCDIR), \
+$(subst $(gb_Helper_WORKDIR_NATIVE),$(WORKDIR), \
+$(subst $(gb_Helper_OUTDIR_NATIVE),$(OUTDIR), \
+$(1))))))
+endef
+
 # convert parameters filesystem root to native notation
 # does some real work only on windows, make sure not to
 # break the dummy implementations on unx*
 define gb_Helper_convert_native
+$(warning native input is ::$(1)::) \
 $(strip \
 $(subst $(SRCDIR),$(gb_Helper_SRCDIR_NATIVE), \
 $(subst $(WORKDIR),$(gb_Helper_WORKDIR_NATIVE), \
 $(subst $(OUTDIR),$(gb_Helper_OUTDIR_NATIVE), \
-$(1)))))
+$(call gb_Helper_convert_nonnative,$(1)))))) \
+$(warning replace $(OUTDIR) with $(gb_Helper_OUTDIR_NATIVE)) \
+$(warning replace $(WORKDIR) with $(gb_Helper_WORKDIR_NATIVE)) \
+$(warning replace $(SRCDIR) with $(gb_Helper_SRCDIR_NATIVE)) \
+$(warning native output is \
+$(strip \
+$(subst ::COM2::,$(gb_Helper_SRCDIR_NATIVE), \
+$(subst ::COM1::,$(gb_Helper_WORKDIR_NATIVE), \
+$(subst ::COM0::,$(gb_Helper_OUTDIR_NATIVE), \
+$(subst $(SRCDIR),::COM2::, \
+$(subst $(WORKDIR),::COM1::, \
+$(subst $(OUTDIR),::COM0::, \
+$(call gb_Helper_convert_nonnative,$(1))))))))))
+$(strip \
+$(subst ::COM2::,$(gb_Helper_SRCDIR_NATIVE), \
+$(subst ::COM1::,$(gb_Helper_WORKDIR_NATIVE), \
+$(subst ::COM0::,$(gb_Helper_OUTDIR_NATIVE), \
+$(subst $(SRCDIR),::COM2::, \
+$(subst $(WORKDIR),::COM1::, \
+$(subst $(OUTDIR),::COM0::, \
+$(call gb_Helper_convert_nonnative,$(1)))))))))
 endef
 
 # YaccTarget class
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to