Makefile: есть ли способ включить динамически генерируемый файл? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть make-файл с двумя целями, tests и dist.tests сгенерирует некоторые csv-файлы, а dist сожмет указанные файлы в tar-шар.

Поскольку полученные csv-файлы также должны быть включены в tar-шар, я использовал следующий Makefile (частичный)

.PHONY: tests # to make sure the target "tests" are not treated as files
DISTFILES=$(wildcard *.csv) # also some other files, omitted here
tests:
    chmod +x tests.sh 
    -./tests.sh # will generate some csv files
dist: tests
    tar cvzf dist.tar.gz $(DISTFILES)

Проблема, с которой я столкнулся сейчас, заключается в том, что сгенерированные файлы csv не включены в tar-шар, потому что их не было в каталоге до вызова make dist.

Итак, мой вопрос: есть ли способ включить эти файлы в динамически сгенерированные файлы?Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Beta ответ, вероятно, самый простой. Вы также можете использовать make рекурсивно, чтобы второй вызов видел сгенерированные файлы:

.PHONY: tests dist dist2

DISTFILES = $(wildcard *.csv)

tests:
    chmod +x tests.sh 
    -./tests.sh

dist: tests
    $(MAKE) dist2

dist2:
    tar cvzf dist.tar.gz $(DISTFILES)
0 голосов
/ 10 мая 2019

Как насчет:

tar cvzf dist.tar.gz *.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...