ghc.spec.in 5.88 KB
Newer Older
chak's avatar
chak committed
1
# RPM spec file for GHC					         -*-rpm-spec-*-
chak's avatar
chak committed
2
#
3
# Copyright [1998..2007] The GHC Team
chak's avatar
chak committed
4
#
5
# Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for suggestions in
chak's avatar
chak committed
6
# earlier versions and Pixel <pixel@mandrakesoft.com> for coding tips.
chak's avatar
chak committed
7
8
9
#
# This file is subject to the same free software license as GHC.

10
%define name    ghc
11
%define version @ProjectVersion@
12
%define release @release@
13
14
15
16
17
18
19

Name:           %{name}
Version:        %{version}
Release:        %{release}
License:        BSD-like
Group:          Development/Languages/Haskell
URL:            http://haskell.org/ghc/
20
21
Source0:        http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
Source1:        http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src-extralibs.tar.bz2
22
Packager:       Sven Panne <sven.panne@aedion.de>
23
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
24
PreReq:         update-alternatives
25
Requires:       gmp, readline
26
BuildRequires:  update-alternatives, alex >= 2.0, happy >= 1.15, ghc >= 5, haddock, docbook-dtd, docbook-xsl-stylesheets, libxslt, libxml2, fop, xmltex, dvips, gmp, readline-devel, mesaglut-devel
27
Provides:       haskell
28
Summary:        The Glasgow Haskell Compiler
chak's avatar
chak committed
29
30

%description
31
32
33
Haskell is the standard lazy purely functional programming language.
The current language version is Haskell 98, agreed in December 1998,
with a revised version published in January 2003.
chak's avatar
chak committed
34

35
GHC is a state-of-the-art programming suite for Haskell. Included is
chak's avatar
chak committed
36
37
an optimising compiler generating good code for a variety of
platforms, together with an interactive system for convenient, quick
38
development. The distribution includes space and time profiling
chak's avatar
chak committed
39
40
41
42
43
44
45
facilities, a large collection of libraries, and support for various
language extensions, including concurrency, exceptions, and foreign
language interfaces (C, C++, whatever).

A wide variety of Haskell related resources (tutorials, libraries,
specifications, documentation, compilers, interpreters, references,
contact information, links to research groups) are available from the
46
Haskell home page at http://haskell.org/.
chak's avatar
chak committed
47

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Authors:
--------
    Krasimir Angelov <ka2_mail@yahoo.com>
    Manuel Chakravarty <chak@cse.unsw.edu.au>
    Koen Claessen <koen@cs.chalmers.se>
    Robert Ennals <Robert.Ennals@cl.cam.ac.uk>
    Sigbjorn Finne <sof@galconn.com>
    Gabrielle Keller <keller@cvs.haskell.org>
    Marcin Kowalczyk <qrczak@knm.org.pl>
    Jeff Lewis <jeff@galconn.com>
    Ian Lynagh <igloo@earth.li>
    Simon Marlow <simonmar@microsoft.com>
    Sven Panne <sven.panne@aedion.de>
    Ross Paterson <ross@soi.city.ac.uk>
    Simon Peyton Jones <simonpj@microsoft.com>
    Don Stewart <dons@cse.unsw.edu.au>
    Volker Stolz <stolz@i2.informatik.rwth-aachen.de>
    Wolfgang Thaller <wolfgang.thaller@gmx.net>
    Andrew Tolmach <apt@cs.pdx.edu>
    Keith Wansbrough <Keith.Wansbrough@cl.cam.ac.uk>
    Michael Weber <michael.weber@post.rwth-aachen.de>
    plus a dozen helping hands...

chak's avatar
chak committed
71
%package prof
72
73
74
Requires:       ghc = %{version}-%{release}
Summary:        Profiling libraries for GHC
Group:          Development/Libraries
chak's avatar
chak committed
75
76

%description prof
77
78
79
Profiling libraries for Glorious Glasgow Haskell Compilation System
(GHC).  They should be installed when GHC's profiling subsystem is
needed.
chak's avatar
chak committed
80
81

%prep
82
%setup -b1
chak's avatar
chak committed
83
84

%build
Ian Lynagh's avatar
Ian Lynagh committed
85
test -f configure || sh boot
86
./configure --prefix=%{_prefix} --mandir=%{_mandir}
87
make %{?jobs:-j%jobs} HTML_DIR_INSTALLED=%{_defaultdocdir}/%{name}/libraries/'$(PACKAGE)'
88
make html
89
90
make -C docs/ext-core ps
make -C docs/storage-mgt ps
91

chak's avatar
chak committed
92
%install
93
make prefix=${RPM_BUILD_ROOT}%{_prefix} install
94
make datadir=`pwd` mandir=${RPM_BUILD_ROOT}%{_mandir} install-docs
95

chak's avatar
chak committed
96
97
98
# generate the file list for lib/ _excluding_ all files needed for profiling
# only
#
chak's avatar
chak committed
99
100
101
# * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list
#   has to contain complete paths, _but_ without the BUILD_ROOT, we also do
#   _not_ want have directory names in the list; furthermore, we have to make
102
#   sure that any leading / is removed from %{_prefix}/lib, as find has to
chak's avatar
chak committed
103
104
105
106
107
#   interpret the argument as a relative path; however, we have to include the
#   leading / again in the final file list (otherwise, rpm complains)
# * isn't there an easier way to do all this?
#
dir=`pwd`
108
cd ${RPM_BUILD_ROOT}
109
libdir=`echo %{_prefix}/lib | sed 's|^/||'`
110
111
find $libdir ! -type d !  -name '*.p_hi' !   -name '*_p.a'    -print | sed 's|^|/|' > $dir/rpm-noprof-lib-files
find $libdir ! -type d \( -name '*.p_hi' -or -name '*_p.a' \) -print | sed 's|^|/|' > $dir/rpm-prof-lib-files
chak's avatar
chak committed
112
cd $dir
chak's avatar
chak committed
113

chak's avatar
chak committed
114
%clean
115
rm -rf ${RPM_BUILD_ROOT}
chak's avatar
chak committed
116

117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
%post
# Alas, GHC, Hugs and nhc all come with different set of tools in addition to
# a runFOO:
#
#   * GHC:  hsc2hs
#   * Hugs: hsc2hs, cpphs
#   * nhc:  cpphs
#
# Therefore it is currently not possible to use --slave below to form link
# groups under a single name 'runhaskell'. Either these tools should be
# disentangled from the Haskell implementations or all implementations should
# have the same set of tools. *sigh*
update-alternatives --install %{_bindir}/runhaskell runhaskell %{_bindir}/runghc     500
update-alternatives --install %{_bindir}/hsc2hs     hsc2hs     %{_bindir}/hsc2hs-ghc 500

%preun
if test "$1" = 0; then
  update-alternatives --remove runhaskell %{_bindir}/runghc
  update-alternatives --remove hsc2hs     %{_bindir}/hsc2hs-ghc
fi

chak's avatar
chak committed
138
%files -f rpm-noprof-lib-files
139
%defattr(-,root,root)
140
%doc docs/docbook-cheat-sheet/docbook-cheat-sheet
141
142
143
%doc ANNOUNCE
%doc LICENSE
%doc README
144
%doc docs/comm
145
146
147
148
149
%doc docs/ext-core/core.ps
%doc docs/storage-mgt/ldv.ps
%doc docs/storage-mgt/rp.ps
%doc docs/storage-mgt/sm.ps
%doc docs/users_guide/users_guide
150
%doc html/*
151
%doc libraries/Cabal/doc/Cabal
152
%{_mandir}/man1/ghc.1*
153
154
155
156
157
158
159
160
161
%{_prefix}/bin/ghc
%{_prefix}/bin/ghc-%{version}
%{_prefix}/bin/ghc-pkg
%{_prefix}/bin/ghc-pkg-%{version}
%{_prefix}/bin/ghci
%{_prefix}/bin/ghci-%{version}
%{_prefix}/bin/ghcprof
%{_prefix}/bin/hasktags
%{_prefix}/bin/hp2ps
162
%{_prefix}/bin/hsc2hs-ghc
163
%{_prefix}/bin/runghc
chak's avatar
chak committed
164

165
%files prof -f rpm-prof-lib-files
166
%defattr(-,root,root)