summaryrefslogtreecommitdiff
path: root/lang/ghc/Makefile
blob: a6a6703d4aa1662041aef09aaa8bc83dae08efd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# $NetBSD: Makefile,v 1.13 2003/07/17 21:44:29 grant Exp $

DISTNAME=	ghc-5.04.3
CATEGORIES=	lang
MASTER_SITES=	http://www.haskell.org/ghc/dist/5.04.3/
DISTFILES=	ghc-5.04.3-src.tar.bz2 ghc-5.04.3-i386-unknown-netbsd-hc.tar.bz2

MAINTAINER=	tech-pkg@NetBSD.org
HOMEPAGE=	http://www.haskell.org/ghc/
COMMENT=	Compiler for the functional language Haskell

DEPENDS+=	readline>=4.0:../../devel/readline
DEPENDS+=	gmp>=2.0.2:../../devel/gmp

USE_GNU_READLINE=yes
USE_PERL5=	yes
USE_GMAKE=	yes

# Note: this package contains a Haskell compiler that is itself
# written in Haskell. There are basically two ways we can solve the
# bootstrap problem:
# 1. bootstrap from pre-generated C files.
# 2. first download a binary pre-built compiler and use it to compile.
# We currently use way 1.
# The problem with 2. is that it may make the package more sensitive
# to the exact NetBSD versions involved (the version of the build
# system compared to the version used to build the pre-built binary).
# On the other hand, bootstrapping GHC from C is very fragile and it
# may be harder to update the package with method 1.
# For comparison, FreeBSD currently uses method 2.

# Note: a number of non-i386 platforms, including solaris/sparc,
# osf/alpha etc are supported natively by ghc. pkg support for those
# platforms and their NetBSD varients is left as a mid-level exercise
# for the reader
ONLY_FOR_PLATFORM= NetBSD-1.5*-i386 NetBSD-1.6*-i386

pre-configure:
	cd ${WRKSRC}; file=configure.in;				\
	${SED} -e "s|@PREFIX@|${PREFIX}|g" $${file} > $${file}.fixed;	\
	${MV} -f $${file}.fixed $${file};				\
	${AUTOCONF}

do-configure:
	: Nothing here, configure is run twice by the hc-build script.

do-build:
	(cd ${WRKSRC}; \
	 LIBS="-L${PREFIX}/lib" ./distrib/hc-build --prefix=${PREFIX})

.include "../../devel/readline/buildlink2.mk"
.include "../../devel/gmp/buildlink2.mk"
.include "../../mk/autoconf.mk"
.include "../../mk/bsd.pkg.mk"