LINUX.ORG.RU

make clean with хитрые dependencies


0

0

  Как написать правило для make clean с такой вот хитростью:
хочется удалять ряд файлов (например *.eps) только в том случае
если для него существует файл из которого его можно сгенерировать
(например, соответствующий *.fig). А если нет для него *.fig,
то и удалять не надо. Без shell-скрипта вроде такого:

	$(foreach x,$(wildcard *.eps),\
		test -e $(patsubst %.eps,%.fig,$(x)) && rm -f $(x) ;)


Два варианта надумал:

FIG := $(wildcard *.fig)
EPS := $(wildcard *.eps)
FIG2 := $(EPS:%.eps=%.fig)
EPS2 := $(FIG:%.fig=%.eps)

# 1
rmeps : toucheps $(FIG)

toucheps :
        touch $(EPS)

%.fig : %.eps
        rm $<

# 2
rmeps2 :
        rm $(filter $(EPS2),$(EPS))

amm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.