Поскольку app, bin и tgt являются фальшивыми, зависимости все равно не будут использоваться, кроме как для предотвращения создания правила, если оно отсутствует.
У tgt нет способа узнать, какая версияфайла для сборки.Если файл создается одинаково как приложением, так и bin, то выделите его:
file: ; touch file
app: file ; ...
bin: file ; ...
tgt: file ; ...
Если приложение и bin создают разные версии файла, нет необходимости делать его целью.Tgt не будет знать, какой из них собрать в любом случае:
app: ; touch file
bin: ; touch file
tgt: file ; ...
Если подразумевается, что tgt должен собрать и приложение, и bin, если файл отсутствует (он действует как зависимость "или"), вы можете учестьэто из:
app: ; touch file
bin: ; touch file
file: app bin
tgt: file ; ...