В GNU make вы можете использовать порядок -только -предварительные условия , чтобы убедиться, что dir
создан до запуска правила для создания dir/file
.
Подробнее см. на этой странице .
Из примера в руководстве GNU make видно, что он действительно предназначен для добавления зависимости от создаваемого каталога перед созданием в нем файлов.
В случае вашего конкретного примера это должно делать что-то вроде этого:
dir/file: | dir
cp source dir/file
Хотя вам не нужно изменять существующее правило, вы можете просто добавить эту зависимость где-нибудь еще в вашем Makefile...
To be more specific, the solution needs to be written in a way that allows the makefile to be processed with other make implementations.
Я не думаю, что это сработает в других реализациях make... Одно из возможных решений — создать GNUmakefile
, который будетinclude
фактическим Makefile
, а также добавить специальные расширения GNU make.
Возможно, вы также могли бы заставить GNU make игнорировать такое правило, как .WAIT
, определив его как фиктивное правило в вашем GNUmakefile
.
Я надеюсь, что эти указатели будут вам полезны!