gpt4 book ai didi

haskell - 如何将 PHONY 目标声明为 shake 的默认操作?

转载 作者:行者123 更新时间:2023-12-02 13:12:00 30 4
gpt4 key购买 nike

我正在将 Makefile 转换为 Shakefile,但我不确定如何处理 PHONY make 目标(cleaninstall 等)。 )。我尝试过类似的事情:

main = shake shakeOptions $ do
want ["install"]
"install" *> \_ -> do
need ["mytarget"]
system' "ln" ["-s", "mytarget", "linkname"]

它成功创建符号链接(symbolic link),但报告错误“错误,规则“安装”无法构建文件:安装”。

那么,如果不使用“想要”操作,我如何声明我要运行的默认目标是一个假目标?

最佳答案

在 shake-0.10.1 及以上版本中,您可以使用 phony 函数编写:

main = shake shakeOptions $ do
want ["install"]
phony "install" $ do
need ["mytarget"]
system' "ln" ["-s", "mytarget", "linkname"]

这应该完全符合您的要求,并且不需要生成假文件。此外,您可能需要使用 shakeArgs 而不是 shake,以便用户可以从命令行选择 install,或选择另一个目标,例如一样干净。

关于haskell - 如何将 PHONY 目标声明为 shake 的默认操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450726/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com