Я добился определенного прогресса после нескольких экспериментов и чтения. Я думаю, что теперь я понимаю логику.
Похоже, что все команды recipe в make-файле являются исключительно командами оболочки, если sh.exe включен в PATH
. Они не могут быть командами Windows.
После удаления sh.exe из cygwin/bin
исходного make-файла работал как я ожидал. «cmd» также может быть явно указан вместо «sh» по умолчанию в make-файле следующим образом:
clean: cmd /c 'del /F /Q file.txt'
Если это правильно, это немного разочаровывает. Имея cygwin/bin
в 'PATH', я предполагал, что в make-файле можно использовать любой тип команд, как в командах Windows или в командном файле.
Что по-прежнему не имеет большого смысла для меня, так это то, что команды windows работают, когда sh.exe недоступен. Все еще отсутствует часть логики.
(извините за публикацию на неправильном сайте, подумал, что я был на stackoverflow. Если модератор может переместить или удалить это сообщение, пожалуйста, сделайте.