Convert Cygwin path to Windows path in a makefile

grrussel picture grrussel · Dec 9, 2010 · Viewed 17.6k times · Source

How can I convert a Cygwin style path ( /cygdrive/c/foo/bar ) to Windows style ( C:/foo/bar ) (yes, with / going forward) in a GNU makefile? I have the situation of using Cygwin's make with a GCC that does not understand Cygwin style paths, so paths relative to the makefiles location that are produced by make are not accepted by the compiler.

Answer

Dan Moulding picture Dan Moulding · Dec 9, 2010

Use the shell function to execute the cygpath utility with the -w flag.

Example:

BAR := /cygdrive/c/foo/bar
WIN_BAR := $(shell cygpath -w ${BAR})

cygpath accepts a lot of additional options. See the man page for details.