GNU Make: проблема с разрешениями при создании файлов

Я использую Make, чтобы получить некоторые данные из базы данных MySQL, заполнить отчет и отправить его по электронной почте с помощью cron. Я столкнулся с проблемой разрешений при обработке файла groff.

Марка:

get: $(DATA)

$(DATA):
        bash $(GET) $(SQL) > $@

format: $(CONTENT)

$(CONTENT): $(DATA)
        bash $(FORMAT) $(DATA) > $@

$(TROFF): $(CONTENT)
        cat $(TEMPLATE) $< > $@
        chmod a+rw $@

$(PS): $(TROFF)
        $(SED) -i '$$ a .TE' $<
        $(TROFF) -ms -t -Tps $< > $@
        chmod a+rw $@

report: $(REPORT)

$(REPORT): $(PS)
        $(PS2PDF) $< >$@
        chmod a+rw $@

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

/home/automation/scripts/nancy_list/reports/2015-08-11.roff -ms -t -Tps /home/automation/scripts/nancy_list/reports/2015-08-11.roff> / home / auto
/ bin / sh: 1: /home/automation/scripts/nancy_list/reports/2015-08-11.roff: разрешение отклонено
make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Ошибка 126

Таким образом, он успешно генерирует roff, но не может его обработать - постскриптум выглядит как пустой файл. Я делал подобные проекты с Make раньше - есть что-то новое в отношении разрешений?

1 ответ

Решение

TROFF неправильно установлен не для /usr/bin/troff, а для вашего сгенерированного файла troff.

Вы пытаетесь выполнить ваш сгенерированный файл.

Другие вопросы по тегам