Я пытаюсь понять, почему нельзя просто добавить символическую ссылку в качестве зависимости. Я полагаю, ваши автоматические зависимости находятся в одной строке, но вы можете иметь столько, сколько хотите.
x.o: a.h b.h
x.o: c.h
x.o: d.h
Но, сказав это, кажется вероятным, что make
будет определять цель символической ссылки, а не саму символическую ссылку, так что, возможно, не DTRT. Я полагаю, вы можете просто прикоснуться к файлу где-нибудь, когда создадите символическую ссылку, но я также предполагаю, что вы уже подумали об этом ...
У вас может быть правило, которое запускает ls -id link/. > test
, в котором номер индекса целевого каталога ссылки будет помещен в test
. Тогда вы могли бы cmp test save
, где save
от последнего запуска. Тогда вы могли бы сделать это правило make make clean && make target
, если они отличаются.
targetwrapper:
ls -id link/. > test
cmp test save || make clean
make realtarget
cp test save
clean:
echo cleaned
realtarget:
echo made