make文件中需要帮助

时间:2011-09-02 11:54:32

标签: c linux makefile

我只想实现以下声明

"if bin folder is not available in current directory then make new bin folder & 
if bin folder is available then its do nothing" 

任何人都可以告诉我我该怎么做?

编辑: 我不想要任何错误,如

mkdir: cannot create directory `./bin `./bin': File exists

3 个答案:

答案 0 :(得分:5)

你可以这样做:

-mkdir ./bin

如果./bin已经存在,则mkdir将无提示失败,否则将创建该目录。

答案 1 :(得分:2)

使用如下规则:

bin:
        mkdir bin

然后,不要将mkdir bin写为其他规则的一部分,而是让它们依赖于bin规则。仅当bin不存在时才会执行bin规则。

答案 2 :(得分:1)

根据您的要求,您可以按如下方式使用规则:

bindir:
       if [ ! -d bin ];then \
           mkdir bin;  \
       fi

请注意,如果语句检查makefile所在的当前目录中是否存在名为bin的目录,如果名为bin的目录不存在,那么它将创建它,如果它存在则不执行任何操作,但是如果有常规文件如果存在名称为bin的(不是目录),则此规则将失败。 建议你使用一个变量说BINDIR来存储你的“bin”目录的值,因为这是遵循的一般规范,它有利于makefile的维护。

BINDIR:=bin
bindir:
       if [ ! -d $(BINDIR) ];then \
           mkdir $(BINDIR);  \
       fi