TCSH Makefile - 复制文件以命名和更改权限

时间:2014-11-13 23:35:27

标签: shell scripting makefile tcsh

我试图为tcsh脚本创建一个makefile,该脚本将文件复制到名称proj3,并将权限更改为每个人都可执行。我知道如何为c ++和c等做makefile,但我不知道为什么我们要为shell脚本做这件事。

我的文件名是proj3final

这是我到目前为止所做的:

proj3final:
    cp final proj3
    chmod 755 proj3

每当我运行make proj3make时,它都会提示nothing to be done

1 个答案:

答案 0 :(得分:0)

makefile规则应该始终创建一个与目标同名的文件。

如果您希望make能够告诉您何时需要运行规则,那么您的规则需要先决条件。

您的规则告诉make它将创建proj3final文件,但它实际上会创建proj3文件。这会让人迷惑。

此外,您的规则赋予该目标没有任何先决条件,因此每当proj3final文件存在时,make将假定它是最新的并且不必执行任何工作。

假设您的输入文件名为final,并且您希望将其复制到名为proj3final的文件,那么您需要的规则是

proj3final: final
        cp $< $@
        chmod 755 $@

哪个应该做你想做的事情,并使用Automatic Variables作为当前目标($@)和第一个先决条件($<)。