Haskell wikiは、Cabalをビルドシステムとして使うべきだと述べています。しかし、私はバイナリを構築してパッケージを作成するよりははるかに指示されたようです。基本的には、src /ディレクトリ内のすべての* .hsファイルをbin /の別のバイナリにビルドするだけです。このメイクファイルはうまくこれを達成したが、私は陰謀団について学びたいと、これは私が始めるために良い例のように思える: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 [email protected]
clean:
rm bin/*
ありがとうございました。これは素晴らしいスタートです。しかし、実行中のcabal configureは次のように言っています: 'Error:No '実行可能なTestProject'のための' Main-Is 'フィールドが見つかりました。おそらくTestProject.cabalで指定していないからです。しかし、私はいくつかの実行可能ファイルをビルドしようとしているので、それぞれがそれ自身の 'メイン'であるので、私は本当に何をすべきかわかりません。 – Psirus
@Psirus:ビルドしている実行ファイルごとに 'Executable'セクションが1つ必要です。次に、それぞれに 'Main-Is'フィールドを設定することができます。ファイルを生成するときに "実行可能"を選択した場合、そのファイルにコピーできる例があるはずです。 – hammar
ここで私を助けてくれてありがとう。これも動作しますが、私は "ワイルドカード"バージョンを好むので、基本的に同じことを何度も何度も繰り返す必要はありません。また、これはほんのわずかですが、同じディレクトリにすべての実行可能ファイルを持つことはできますか? – Psirus