El wiki de Haskell indica que debes usar Cabal como tu sistema de compilación. Sin embargo, me parece mucho más dirigido a producir paquetes que a construir binarios. Básicamente, todo lo que quiero hacer es construir cada archivo * .hs en mi directorio src/en un binario separado en bin /. Este makefile logra esto muy bien, pero quiero aprender sobre Cabal y esto parece un buen ejemplo de ayuda para empezar:¿Cómo construyo un proyecto simple con 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/*
Gracias, es un buen comienzo. Sin embargo, ejecutar configure cabal dice: 'Error: no se encontró un campo 'Principal' para el ejecutable TestProject', presumiblemente porque no he especificado uno en TestProject.cabal. Pero como intento crear varios ejecutables, cada uno con su propio 'main', realmente no sé qué hacer. – Psirus
@Psirus: querrá una sección 'Ejecutable' por cada ejecutable que esté compilando. Luego puede establecer el campo 'Main-Is' en cada uno. Si elige "ejecutable" al generar el archivo, debe haber un ejemplo que pueda copiar en el archivo. – hammar
Gracias por ayudarme aquí. Esto también funciona, pero preferiría una versión "comodín", por lo que no tengo que escribir básicamente lo mismo una y otra vez. Además, pero esto es solo menor, ¿puedo tener todos los ejecutables en el mismo directorio? – Psirus