我只是在学习使用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中的特殊字符(通常是speakig)。
这样的规则:
".gitignore" :
告诉人们,您的目标实际上就是".gitignore"
(包括引号)。由于目录中没有以这种方式命名的文件,因此make运行您的规则以生成它。
更改规则以删除引号:
.gitignore:
...
它应该可以按预期工作。