Makefile Absolute Path с двоеточием

Чтобы преобразовать относительный путь в абсолютный, я использовал команду relpath / abspath. Однако в результате будет указан путь к корневому каталогу без двоеточия :.

Пример:

"/ c / Users / MyName / Project / SVN / ACC / PCC / HAL / code / include"

Мне нужно c:/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include, чтобы мой код мог найти файлы заголовков.

Я использую make из MSYS 1.0.

Как я могу получить такой результат?


person flounder    schedule 09.10.2014    source источник
comment
Можете ли вы показать, что вы пробовали до сих пор, и где это не сработало, как ожидалось?   -  person EWit    schedule 09.10.2014
comment
$ (realpath ./../../../../../ или $ (abspath ./../../../../../) Он генерирует путь, как ожидалось / c / users / Myname /. Однако я ищу метод, который может сгенерировать для меня c: / users / Myname   -  person flounder    schedule 09.10.2014


Ответы (1)


winpath_helper=$1:/$(subst ////$1/,,$2)
winpath=$(call winpath_helper,$(word 1,$(subst /, ,$1)),///$1)

ppp:=/c/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include
$(info === $(call winpath,$(ppp)))

результат:

c:/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include

Это подразумевает, что входные данные имеют формат corerct; если это не результат $ realpath или $ abspath в MSYS, make может аварийно завершить работу.

person Alex Cohn    schedule 09.10.2014