GNU Make:权限问题创建文件

时间:2015-08-12 00:46:21

标签: makefile groff

我使用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 $@

正如您所看到的,我已经在makefile中尝试了权限。这是我在运行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: Permission denied
make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Error 126

因此它成功生成了roff但无法处理它 - 后记作为空文件出现。我之前用Make做过类似的项目 - 关于权限是否有新的东西?

1 个答案:

答案 0 :(得分:0)

错误地将TROFF设置为/ usr / bin / troff,而不是设置为生成的troff文件。

您正在尝试执行生成的文件。