Если вы укажете цель в командной строке, как в make clean
Make попытается построить эту цель. Если вы этого не сделаете (то есть, если вы просто запустите make
), Make попытается построить цель по умолчанию; целью по умолчанию является первая цель в make-файле (в вашем случае install
), если только вы не установили ее в другое значение с помощью переменной .DEFAULT_GOAL
.
Когда Make пытается построить цель, она сначала создает предпосылки для этой цели, если это необходимо. (Когда это необходимо? Когда целью является файл или каталог, который не существует в реальном времени (если это не .PHONY
, но это сложная тема), или когда одно из его предварительных условий новее, чем цель (если это не «порядок») только ", но это сложная тема)). Поэтому, если Make пытается собрать ваш all
, он сначала попытается собрать $(build_dir)
и $(xpi_built)
, которые были определены в другом месте в make-файле.
Если вы пытаетесь выяснить, что и когда будет делать Make, есть некоторые приемы, которые вы можете использовать. Например, вы можете запустить make -n
, и Make скажет вам, что он будет делать, вместо того, чтобы делать это. Или вы можете поместить в правило команду типа @echo now making $@
, чтобы сообщить вам, что она делает. Или для получения дополнительной информации:
some_target: preq another_preq and_another
@echo Making $@. The prerequisites are $^. Of those, $? are newer than $@.
other_commands...