1 # RPM spec file for GHC -*-rpm-spec-*-
3 # Copyright [1998..2007] The GHC Team
5 # Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for suggestions in
6 # earlier versions and Pixel <pixel@mandrakesoft.com> for coding tips.
8 # This file is subject to the same free software license as GHC.
11 %define version @ProjectVersion@
12 %define release @release@
18 Group: Development
/Languages
/Haskell
19 URL: http
://haskell.org
/ghc
/
20 Source0: http
://haskell.org
/ghc
/dist
/%{version}/ghc-%{version}-src.tar.bz2
21 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
28 Summary: The Glasgow Haskell Compiler
31 Haskell is the standard lazy purely functional programming language.
32 The current language version is Haskell
98, agreed
in December
1998,
33 with a revised version published
in January
2003.
35 GHC is a state
-of
-the
-art programming suite
for Haskell. Included is
36 an optimising compiler generating good code
for a variety of
37 platforms
, together with an interactive system
for convenient
, quick
38 development. The distribution includes space and
time profiling
39 facilities
, a large collection of libraries
, and support
for various
40 language extensions
, including concurrency
, exceptions
, and foreign
41 language interfaces
(C
, C
++, whatever
).
43 A wide variety of Haskell related resources
(tutorials
, libraries
,
44 specifications
, documentation
, compilers
, interpreters
, references
,
45 contact information
, links to research groups
) are available from the
46 Haskell home page at http
://haskell.org
/.
50 Krasimir Angelov
<ka2_mail@yahoo.com
>
51 Manuel Chakravarty
<chak@cse.unsw.edu.au
>
52 Koen Claessen
<koen@cs.chalmers.se
>
53 Robert Ennals
<Robert.Ennals@cl.cam.ac.uk
>
54 Sigbjorn Finne
<sof@galconn.com
>
55 Gabrielle Keller
<keller@cvs.haskell.org
>
56 Marcin Kowalczyk
<qrczak@knm.org.pl
>
57 Jeff Lewis
<jeff@galconn.com
>
58 Ian Lynagh
<igloo@earth.li
>
59 Simon Marlow
<simonmar@microsoft.com
>
60 Sven Panne
<sven.panne@aedion.de
>
61 Ross Paterson
<ross@soi.city.ac.uk
>
62 Simon Peyton Jones
<simonpj@microsoft.com
>
63 Don Stewart
<dons@cse.unsw.edu.au
>
64 Volker Stolz
<stolz@i2.informatik.rwth
-aachen.de
>
65 Wolfgang Thaller
<wolfgang.thaller@gmx.net
>
66 Andrew Tolmach
<apt@cs.pdx.edu
>
67 Keith Wansbrough
<Keith.Wansbrough@cl.cam.ac.uk
>
68 Michael Weber
<michael.weber@post.rwth
-aachen.de
>
69 plus a dozen helping hands...
72 Requires: ghc
= %{version}-%{release}
73 Summary: Profiling libraries
for GHC
74 Group: Development
/Libraries
77 Profiling libraries
for Glorious Glasgow Haskell Compilation System
78 (GHC
). They should be installed when GHC's profiling subsystem is
85 test -f configure || sh boot
86 .
/configure
--prefix
=%{_prefix} --mandir=%{_mandir}
90 ( cd libraries
/Cabal
&& docbook2html doc
/Cabal.xml
--output doc
/Cabal
)
91 make -C docs
/ext
-core ps
92 make -C docs
/storage
-mgt ps
95 make DESTDIR
=$
{RPM_BUILD_ROOT
} install install-docs
96 mv $
{RPM_BUILD_ROOT
}%{_prefix}/bin/hsc2hs ${RPM_BUILD_ROOT}%{_prefix}/bin
/hsc2hs
-ghc
98 # generate the file list for lib/ _excluding_ all files needed for profiling
101 # * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list
102 # has to contain complete paths, _but_ without the BUILD_ROOT, we also do
103 # _not_ want have directory names in the list; furthermore, we have to make
104 # sure that any leading / is removed from %{_prefix}/lib, as find has to
105 # interpret the argument as a relative path; however, we have to include the
106 # leading / again in the final file list (otherwise, rpm complains)
107 # * isn't there an easier way to do all this?
111 libdir
=`
echo %{_prefix}/lib | sed 's|^
/||'`
112 find $libdir
! -type d
! -name '
*.p_hi'
! -name '
*_p.a'
-print | sed 's|^|
/|'
> $dir
/rpm
-noprof
-lib
-files
113 find $libdir
! -type d \
( -name '
*.p_hi'
-or
-name '
*_p.a' \
) -print | sed 's|^|
/|'
> $dir
/rpm
-prof
-lib
-files
117 rm -rf $
{RPM_BUILD_ROOT
}
120 # Alas, GHC, Hugs and nhc all come with different set of tools in addition to
124 # * Hugs: hsc2hs, cpphs
127 # Therefore it is currently not possible to use --slave below to form link
128 # groups under a single name 'runhaskell'. Either these tools should be
129 # disentangled from the Haskell implementations or all implementations should
130 # have the same set of tools. *sigh*
131 update
-alternatives
--install %{_bindir}/runhaskell runhaskell %{_bindir}/runghc
500
132 update
-alternatives
--install %{_bindir}/hsc2hs hsc2hs %{_bindir}/hsc2hs
-ghc
500
135 if test "$
1"
= 0; then
136 update
-alternatives
--remove runhaskell
%{_bindir}/runghc
137 update
-alternatives
--remove hsc2hs
%{_bindir}/hsc2hs
-ghc
140 %files -f rpm
-noprof
-lib
-files
141 %defattr(-,root
,root
)
142 %doc docs
/docbook
-cheat
-sheet
/docbook
-cheat
-sheet
147 %doc docs
/ext
-core
/core.ps
148 %doc docs
/storage
-mgt
/ldv.ps
149 %doc docs
/storage
-mgt
/rp.ps
150 %doc docs
/storage
-mgt
/sm.ps
151 %doc docs
/users_guide
/users_guide
153 %doc libraries
/Cabal
/doc
/Cabal
155 %{_mandir}/man1
/ghc
.1*
157 %{_prefix}/bin/ghc-%{version}
158 %{_prefix}/bin
/ghc
-pkg
159 %{_prefix}/bin/ghc-pkg-%{version}
161 %{_prefix}/bin/ghci-%{version}
162 %{_prefix}/bin
/ghcprof
163 %{_prefix}/bin
/hasktags
166 %{_prefix}/bin
/hsc2hs
-ghc
167 %{_prefix}/bin/hsc2hs-%{version}
168 %{_prefix}/bin
/runghc
170 %files prof
-f rpm
-prof
-lib
-files
171 %defattr(-,root
,root
)