The way I understand it $(if $(word 2,$1) is a check for whitespace in
the input parameter. It's an optimization to avoid executing cygpath
when it's not needed. The MixedPath macro cannot be used if the path
contains a space. It also doesn't convert to an absolute path, just
replacing cygwin specific paths with driveletter paths. The unfortunate
effect of this is that FullPath behaves differently depending on if the
path contains a space.
How are you invoking the build to cause this error? Are you explicitly
setting ALT_OUTPUTDIR? What is the path to your workspace?
/Erik
On 2013-11-15 18:37, Francis ANDRE wrote:
Hi
I am trying to fix the following error
$ make sanity
jdk/make/common/shared/Defs.gmk:563: *** "ERROR: Trouble with the
absolute path for OUTPUTDIR './bui
ld/windows-i586'". Stop.
and found the following code in
jdk/make/common/shared/Defs-windows.gmk, line 109
define FullPath
$(if $(word 2,$1),$(shell $(CYGPATH_CMD) $1 2> $(DEV_NULL)),$(call
MixedPath,$(realpath $(subst ",,$1))))
endef
Can someone explain me what use case is covered by the $(word 2,$1) in
the previous statement?
The error "ERROR: Trouble with the absolute path for OUTPUTDIR" can be
fixed by replacing $(word 2,$1) by $(word 1,$1) but I cannot find a
usage for the $(word 2,$1)
Francis