ST
Написали такой мейкфайл:
OBJS = someobj1.o someobj2.o
FILES=0
mm:
@for file in $(OBJS); do \
(if [ -f $${file} ]; then rm -rf $${file};echo "rm -rf $${file}"; $(eval FILES := 1) fi); \
done
@echo "$(FILES)"
@(if [ "${FILES}"=1 ]; then echo "No .o files to clean"; fi);
И он ведет себя очень странно. Даже если нет файлов из OBJS и первое условие не выполняется (понятно по тому, что нет вывода
rm -rf $${file}
, выполняется $(eval FILES := 1)
(понятно по выводу `@echo "$(FILES)"`)И несмотря на то, что FILES=1, не выполняется второе условие, т.е. не выполняется
echo "No .o files to clean"
Подскажите, пожалуйста, что мы делаем не так?