gmake? (Какая? Выглядит как косяк). У меня в cygwin обе версии выдают консистентный результат):
C:\Users\Timur\Documents\GitHub\GMakeTest>gmake -f Subdir\Makefile
$MakefilePath is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/Makefile]
$CurrentDir is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/]
$RootPathRelative is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/..]
$RootPath is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest]
$RootPath2 is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest)]
gmake: *** No rule to make target 'true', needed by 'all'. Stop.
C:\Users\Timur\Documents\GitHub\GMakeTest>gmake -f Subdir/Makefile
$MakefilePath is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/Makefile]
$CurrentDir is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/]
$RootPathRelative is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest/Subdir/..]
$RootPath is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest]
$RootPath2 is [/cygdrive/c/Users/Timur/Documents/GitHub/GMakeTest)]
gmake: *** No rule to make target 'true', needed by 'all'. Stop.
на всякий случай применил еще и способ, который мы всегда применяли для нормализации относительных путей - используя shell. Можно попробовать его и в mingw
RootPath2:=$(shell cd $(RootPathRelative); pwd))
Ну, теперь доходит, почему GNU make непереносимый?
Обсуждают сегодня