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}
87 make %{?jobs:-j%jobs} HTML_DIR_INSTALLED=%{_defaultdocdir}/%{name}/libraries/'$(PACKAGE)'
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 prefix=${RPM_BUILD_ROOT}%{_prefix} install
96 mv ${RPM_BUILD_ROOT}%{_prefix}/bin/hsc2hs ${RPM_BUILD_ROOT}%{_prefix}/bin/hsc2hs-ghc
97 make datadir=`pwd` mandir=${RPM_BUILD_ROOT}%{_mandir} install-docs
99 # generate the file list for lib/ _excluding_ all files needed for profiling
102 # * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list
103 # has to contain complete paths, _but_ without the BUILD_ROOT, we also do
104 # _not_ want have directory names in the list; furthermore, we have to make
105 # sure that any leading / is removed from %{_prefix}/lib, as find has to
106 # interpret the argument as a relative path; however, we have to include the
107 # leading / again in the final file list (otherwise, rpm complains)
108 # * isn't there an easier way to do all this?
112 libdir=`echo %{_prefix}/lib | sed 's|^/||'`
113 find $libdir ! -type d ! -name '*.p_hi' ! -name '*_p.a' -print | sed 's|^|/|' > $dir/rpm-noprof-lib-files
114 find $libdir ! -type d \( -name '*.p_hi' -or -name '*_p.a' \) -print | sed 's|^|/|' > $dir/rpm-prof-lib-files
118 rm -rf ${RPM_BUILD_ROOT}
121 # Alas, GHC, Hugs and nhc all come with different set of tools in addition to
125 # * Hugs: hsc2hs, cpphs
128 # Therefore it is currently not possible to use --slave below to form link
129 # groups under a single name 'runhaskell'. Either these tools should be
130 # disentangled from the Haskell implementations or all implementations should
131 # have the same set of tools. *sigh*
132 update-alternatives --install %{_bindir}/runhaskell runhaskell %{_bindir}/runghc 500
133 update-alternatives --install %{_bindir}/hsc2hs hsc2hs %{_bindir}/hsc2hs-ghc 500
136 if test "$1" = 0; then
137 update-alternatives --remove runhaskell %{_bindir}/runghc
138 update-alternatives --remove hsc2hs %{_bindir}/hsc2hs-ghc
141 %files -f rpm-noprof-lib-files
142 %defattr(-,root,root)
143 %doc docs/docbook-cheat-sheet/docbook-cheat-sheet
148 %doc docs/ext-core/core.ps
149 %doc docs/storage-mgt/ldv.ps
150 %doc docs/storage-mgt/rp.ps
151 %doc docs/storage-mgt/sm.ps
152 %doc docs/users_guide/users_guide
154 %doc libraries/Cabal/doc/Cabal
156 %{_mandir}/man1/ghc.1*
158 %{_prefix}/bin/ghc-%{version}
159 %{_prefix}/bin/ghc-pkg
160 %{_prefix}/bin/ghc-pkg-%{version}
162 %{_prefix}/bin/ghci-%{version}
163 %{_prefix}/bin/ghcprof
164 %{_prefix}/bin/hasktags
167 %{_prefix}/bin/hsc2hs-ghc
168 %{_prefix}/bin/hsc2hs-%{version}
169 %{_prefix}/bin/runghc
171 %files prof -f rpm-prof-lib-files
172 %defattr(-,root,root)