2011-05-11 2 views
7

나는 최근에 순수한 PHP (제기 된 눈썹, 내가 아는) 프로젝트의 '도구'섹션에 포함될 작은 하나의 파일로 된 하스켈 유틸리티를 만들었습니다.작은 하스켈 프로젝트를위한 크로스 플랫폼 makefile?

처음에는 .hs 소스 파일과 내 Linux 개발 컴퓨터에서 생성 된 바이너리를 우리가 사용하는 버전 제어 시스템 (Git)으로 체크인했습니다. 그러나 이제는 더 많은 것을 생각하면서 크로스 플랫폼 메이크 파일을 만들어서 다른 개발자들이 쉽게 시스템에서 컴파일 할 수 있도록하고 싶습니다.

모범 사례/가이드 라인이 있습니까? 아니면 더 좋은 Makefile 템플릿을 다운로드 할 수 있습니까? 멋진 것은 없지만 개발자가 GHC 설정에 대한 세부 정보를 지정하고 간단한 스크립트를 실행하여 시작할 수 있습니다.

답변

11

하스켈 프로젝트를 배포하는 권장 방법은 Cabal입니다. Cabal은 Haskell 코드의 빌드 시스템 및 패키지 관리자이며, 다른 플랫폼에서 Haskell 코드를 쉽게 작성하고 종속성을 처리합니다. 여기

는 예 음모 파일입니다 :

Name:   MyPackage 
Version:  0.0 
Cabal-Version: >= 1.2 
License:  BSD3 
Author:   Angela Author 
Synopsis:  Small package an utility program 
Build-Type:  Simple 

Executable myutility 
    Build-Depends: base 
    Main-Is:  Main.hs 
    Hs-Source-Dirs: src 

당신은 실행하여 음모 파일을 대화식으로 생성 할 수 있습니다

$ cabal init 

음모가 다음 답을 기반으로 음모 파일을 몇 가지 간단한 질문을 생성합니다 . 그런 다음이 파일을 특정 요구에 맞게 조정할 수 있습니다.


포장이 단지 패키지 디렉토리

$ cabal install 

또한 Hackage, 표준 하스켈 패키지 respository에 패키지를 업로드 할 수 있습니다이 실행 설치하십시오. 당신이 필요로하지 않으려면이 방법은, 사람들은 다른 패키지 관리자에게 음모 패키지를 변환

$ cabal install mypackage 

또한 도구가 존재하는 명령을 한 단계 패키지 (및 종속성)를 다운로드하여 설치할 수 있습니다 사용자가 Cabal을 설치해야합니다 (Cabal은 Haskell Platform에 포함되어 있음).

또한 패키지의 참조 문서를 생성 할 때 Haddock과 잘 작동합니다. 결과의 예제는 Hackage의 패키지 중 일부를 확인하십시오.

현재 Cabal의 테스트 스위트에 대한 지원을 향상시키기위한 작업이 진행 중입니다.

전반적으로, 이러한 이유로 인해 Cabal을 사용하여 Haskell 프로젝트를 구성, 제작 및 배포하는 것이 큰 이점입니다.

+0

고마워요! Cabal은이를위한 완벽한 솔루션으로 Linux와 Windows 모두에서 즉시 사용할 수 있습니다. 당신이 제공 한 카발트 템플릿은 많은 도움이되었습니다. 단지 HUnit을 기반으로 변경해야했습니다. –

+1

'cabal init'을 사용하여 빈 프로젝트를 생성 할 수 있습니다. 마지막으로,'cabal'은 [Haskell Platform] (http://hackage.haskell.org/platform)의 일부이므로 핵심 배포판을 사용한다면 모든 컴퓨터에 설치 될 것입니다. –

2

다른 종속성이있는 경우 cabal을 사용해보십시오. Haskell을 위해 특별히 고안된 빌드 시스템입니다.