Как определить путь из файла MSYS Makefile для программы на С++?

Моя проблема: в Makefile, который я использую как в MSYS, так и в среде MSYS2, я знаю путь PYTHON_ROOT_DIR, который будет использоваться во время компиляции в программе на С++. Проблема заключается в том, что PYTHON_ROOT_DIR находится в файле Makefile, известном как стиль стиля posix, например /mingw64/bin, где в программе на С++ он должен иметь форму типа "C:\\prog64\\msys64\\mingw64\\bin". Дополнительная проблема заключается в том, что в зависимости от переменной конфигурации PYTHONMAJOR путь должен быть широкими или нормальными.

Мой вопрос: как мне решить это в Makefile без необходимости установки дополнительных программ/скриптов в средах msys или msys2?

Ответы

Ответ 1

Часть вопроса адресуется в пути преобразования путей (или cygpath для msys?), а именно, как преобразовать путь стиля msys в путь стиля Windows. Мое полное решение в Makefile:

ifeq ($(PYTHONMAJOR),3)
    L=L
endif
DEFINES += -DPYTHON_ROOT_DIR=$(L)'"'$(shell (cmd //c echo $(PYTHON_ROOT_DIR)) | sed 's|/|\\\\\\\\|g')'"'

который определяет символ препроцессора PYTHON_ROOT_DIR с правильным путем.