Haskell维基声明你应该使用Cabal作为你的构建系统。但是,在我看来,更多的是针对生成包,然后只是构建二进制文件。基本上,我想要做的就是将我的src /目录中的每个* .hs文件构建成bin /中的单独二进制文件。这个makefile很好地完成了这个,但是我想了解Cabal,这似乎是让我入门的好例子:
GHC = ghc
GHCFLAGS = -outputdir bin
SRC = $(wildcard src/*.hs)
BIN = $(patsubst src/%.hs,%,$(SRC))
all: $(addprefix bin/, $(BIN))
bin/%: src/%.hs
$(GHC) $(GHCFLAGS) $< -o $@
clean:
rm bin/*
答案 0 :(得分:9)
最简单的入门方法是让Cabal为您生成一个.cabal
文件,您可以将其用作起点。为此,请进入项目目录并键入
$ cabal init
然后它将向您询问有关您的包裹的一系列问题。如果您计划将包上传到Hackage,那么像作者姓名和电子邮件这样的问题真的很重要,所以如果您愿意,可以将这些留空。完成后,您可以编辑.cabal
文件以进行自定义。生成的文件将包含一堆评论,可以帮助您入门。之后,只需输入
$ cabal configure
$ cabal build
默认情况下,二进制文件将放在./dist/build/<name>/
。