如何防止make再生.gitignore?

问题描述 投票:0回答:1

我只是在学习使用make,我想用我的Makefile生成一个简单的.gitignore文件。我曾尝试编写该文件的各种版本,但似乎都没有按我期望的方式工作。我的主要问题是,即使没有任何更改,我每次运行.gitignore时也会重新制作make文件。

这是我尝试过的:

".gitignore" :
    touch .gitignore
    echo 'node_modules' >> .gitignore

每次我运行node_modules时,.gitignore都会重新附加到make。如果在.gitignore周围没有引号,它将失败并显示错误:make: *** No targets. Stop.。我尝试添加一个不会更改的虚假依赖项(即".gitignore" : Makefile),但会发生相同的重建。我试过使.gitignore依赖于自身,但这只是告诉我循环依赖已被删除,并且我得到了相同的行为。我已经尝试使用GNU make版本3.81和4.3。

我最终希望使用make生成整个存储库,并且我不想在运行之间更改文件的时间戳,因为这会导致git出现问题。

makefile gnu-make
1个回答
0
投票

行号不是makefile中的特殊字符(通常是speakig)。

这样的规则:

".gitignore" :

告诉人们,您的目标实际上就是".gitignore"(包括引号)。由于目录中没有以这种方式命名的文件,因此make运行您的规则以生成它。

更改规则以删除引号:

.gitignore:
        ...

它应该可以按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.