Вы можете использовать сторожевые файлы, которые существуют только для установления вашего графа зависимостей.Например,
prefix := /usr/local
.PHONY: all
all: libx-built
libx-built \
: libx.tar.gz \
; tar xzvf $@ \
&& cd libx \
&& ./configure --prefix=$(prefix) \
&& make && make install \
&& touch $@
Тогда вы сделаете зависимую сборку liby, только когда libx-build нов.
liby-built \
: liby.tar.gz libx-built \
; ...