make
не использует cmd.exe
для запуска команд оболочки, по крайней мере, по умолчанию. Он использует оболочку POSIX, которая, как вы видите, является компонентом, который выдает сообщение о вашей диагностике c (.tools/bin/sh
). Команда оболочки для отображения содержимого каталога: ls
, но сама по себе она не даст вам того, что вы хотите, потому что она не имеет эквивалента dir /ad
.
. пытаются сделать это вообще подозрительно. Если make
является подходящим инструментом для вашей работы, то вам, вероятно, следует подходить к проблеме по-другому. Однако, если вы должны использовать make
, то одним из вариантов будет убедиться, что установлена программа find
Cygwin, и использовать это:
DIRS := $(shell find * -type d)
(Не забудьте получить Windows find
, которая выполняет другую работу. Возможно, вам потребуется указать путь к правильному find
.)
Другим вариантом может быть явный запуск cmd.exe
.