Makefile и файлы в каталоге - PullRequest
4 голосов
/ 22 сентября 2009

У меня есть Makefile в директории, а в директории много .pm (perl-файлов) Я хочу добавить make-файл на этом уровне каталога, который выполняет проверку синтаксиса perl-файла. В основном я хочу добавить:

perl -c <filename>

Как автоматически получить список файлов в этом каталоге без жесткого кодирования.

Ответы [ 4 ]

3 голосов
/ 12 июля 2012

Следующее работает для меня в make-файле GNU (Linux и Windows)

ALL_PM_FILES = $(wildcard *.pm)

Затем выполните цикл for / foreach для них.

2 голосов
/ 22 сентября 2009

Это нормальный обходной путь:

check_pm_syntax:
        for file in *.pm; do ${PERL} -c $$file; done

Вы запускаете 'make check_pm_syntax', он выключается и запускает цикл оболочки для всех найденных файлов *.pm. Вы можете просто указать check_pm_syntax в качестве предварительного условия для вашей цели all, если хотите (но это означает, что вы всегда будете выполнять работу, когда создаете all). Единственный раз, когда это вызывает проблемы, это если в каталоге нет *.pm файлов.

2 голосов
/ 22 сентября 2009

Вы можете попробовать команду фильтра:

PMFILES=$(filter %.pm, $(SRC))

Трудно найти документацию для фильтра. См. здесь для примера.

1 голос
/ 25 сентября 2009

Вот немного другой подход:

.PHONY: check_%.pm
check_%.pm:
    perl -c $*.pm

check_all: $(addprefix check_,$(wildcard *.pm))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...