Как мне построить простой проект с Cabal? - PullRequest
7 голосов
/ 15 февраля 2012

В вики Haskell говорится, что вы должны использовать Cabal в качестве системы сборки. Тем не менее, мне кажется, что он больше направлен на создание пакетов, чем просто на сборку двоичных файлов. По сути, все, что я хочу сделать - это собрать каждый файл * .hs в моем каталоге src / в отдельный двоичный файл в bin /. Этот make-файл прекрасно справляется с этой задачей, но я хочу узнать о 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/*

1 Ответ

9 голосов
/ 16 февраля 2012

Самый простой способ начать работу - заставить Cabal сгенерировать для вас файл .cabal, который вы можете использовать в качестве отправной точки.Для этого перейдите в каталог вашего проекта и введите

$ cabal init

. Затем он задаст вам кучу вопросов о вашем пакете.Некоторые вопросы, такие как имя автора и адрес электронной почты, действительно имеют значение, только если вы планируете загрузить свой пакет в Hackage, поэтому вы можете оставить их пустыми, если хотите.После этого вы можете отредактировать файл .cabal, чтобы настроить его.Сгенерированный файл будет содержать кучу комментариев, которые должны помочь вам начать работу.После этого просто наберите

$ cabal configure
$ cabal build

. Двоичный файл по умолчанию будет помещен в ./dist/build/<name>/.

...