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

Reply via email to