Я смоделировал вашу структуру и использовал там make -r -d setup
, где -d
показывает отладочный вывод, и -r
игнорирует встроенные правила, так что меньше выводится. Соответствующая часть
Considering target file 'setup'. File 'setup' does not exist. Considering target file 'htdocs/dox'. Considering target file 'htdocs'. Finished prerequisites of target file 'htdocs'. No need to remake target 'htdocs'. Finished prerequisites of target file 'htdocs/dox'. Prerequisite 'htdocs' is newer than target 'htdocs/dox'. Must remake target 'htdocs/dox'.
Таким образом, после спуска в htdocs
этот каталог получает более новое время доступа, чем htdocs/dox
, и, следовательно, make
приходит к выводу, что он должен быть переделан.
Решение: не используйте родительский каталог в качестве предварительного условия.
На самом деле, вся установка для создания каталогов, а затем запуска в них make, немного сложна; все, что вы хотите достичь, вы должны быть в состоянии достичь этого с помощью статической структуры каталогов.