1 # WARNING: ghc.spec is automatically generated from ghc.spec.in by
2 # ./configure. Make sure you are editing ghc.spec.in, not ghc.spec.
4 # RPM spec file for GHC -*-rpm-spec-*-
6 # Copyright [1998..2007] The GHC Team
8 # Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for suggestions in
9 # earlier versions and Pixel <pixel@mandrakesoft.com> for coding tips.
11 # This file is subject to the same free software license as GHC.
14 %define version @ProjectVersion@
15 %define release @release@
21 Group: Development
/Languages
/Haskell
22 URL: http
://haskell.org
/ghc
/
23 Source0: http
://haskell.org
/ghc
/dist
/%{version}/ghc-%{version}-src.tar.bz2
24 Source1: http
://haskell.org
/ghc
/dist
/%{version}/ghc-%{version}-src
-extralibs.tar.bz2
25 Packager: Sven Panne
<sven.panne@aedion.de
>
26 BuildRoot: %{_tmppath}/%{name}-%{version}-build
27 PreReq
: update
-alternatives
28 Requires: gmp
, readline
29 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
31 Summary: The Glasgow Haskell Compiler
34 Haskell is the standard lazy purely functional programming language.
35 The current language version is Haskell
98, agreed
in December
1998,
36 with a revised version published
in January
2003.
38 GHC is a state
-of
-the
-art programming suite
for Haskell. Included is
39 an optimising compiler generating good code
for a variety of
40 platforms
, together with an interactive system
for convenient
, quick
41 development. The distribution includes space and
time profiling
42 facilities
, a large collection of libraries
, and support
for various
43 language extensions
, including concurrency
, exceptions
, and foreign
44 language interfaces
(C
, C
++, whatever
).
46 A wide variety of Haskell related resources
(tutorials
, libraries
,
47 specifications
, documentation
, compilers
, interpreters
, references
,
48 contact information
, links to research groups
) are available from the
49 Haskell home page at http
://haskell.org
/.
53 Krasimir Angelov
<ka2_mail@yahoo.com
>
54 Manuel Chakravarty
<chak@cse.unsw.edu.au
>
55 Koen Claessen
<koen@cs.chalmers.se
>
56 Robert Ennals
<Robert.Ennals@cl.cam.ac.uk
>
57 Sigbjorn Finne
<sof@galconn.com
>
58 Gabrielle Keller
<keller@cvs.haskell.org
>
59 Marcin Kowalczyk
<qrczak@knm.org.pl
>
60 Jeff Lewis
<jeff@galconn.com
>
61 Ian Lynagh
<igloo@earth.li
>
62 Simon Marlow
<simonmar@microsoft.com
>
63 Sven Panne
<sven.panne@aedion.de
>
64 Ross Paterson
<ross@soi.city.ac.uk
>
65 Simon Peyton Jones
<simonpj@microsoft.com
>
66 Don Stewart
<dons@cse.unsw.edu.au
>
67 Volker Stolz
<stolz@i2.informatik.rwth
-aachen.de
>
68 Wolfgang Thaller
<wolfgang.thaller@gmx.net
>
69 Andrew Tolmach
<apt@cs.pdx.edu
>
70 Keith Wansbrough
<Keith.Wansbrough@cl.cam.ac.uk
>
71 Michael Weber
<michael.weber@post.rwth
-aachen.de
>
72 plus a dozen helping hands...
75 Requires: ghc
= %{version}-%{release}
76 Summary: Profiling libraries
for GHC
77 Group: Development
/Libraries
80 Profiling libraries
for Glorious Glasgow Haskell Compilation System
81 (GHC
). They should be installed when GHC's profiling subsystem is
88 test -f configure || perl boot
89 .
/configure
--prefix
=%{_prefix} --mandir=%{_mandir}
91 # Don't install these tools, we'll use update-alternatives below.
93 echo "NO_INSTALL_RUNHASKELL
=YES"
>>mk
/build.mk
94 echo "NO_INSTALL_HSC2HS
=YES"
>>mk
/build.mk
98 # Alas, we don't pass make options/arguments down to "libraries", so let's redo make here...
99 make -C libraries HADDOCK_DOCS
=YES
100 ( cd libraries
/Cabal
&& docbook2html doc
/Cabal.xml
--output doc
/Cabal
)
101 make -C docs
/ext
-core ps
102 make -C docs
/storage
-mgt ps
105 # This is a cruel hack: There seems to be no way to install the Haddock
106 # documentation into the build directory, because DESTDIR is alway prepended.
107 # Furthermore, rpm removes the target documentation directory before the doc
108 # macros are processed. Therefore we have to copy things back into safety... :-P
109 # The right thing would be being able to install directly into the build tree.
110 make DESTDIR
=$
{RPM_BUILD_ROOT
} docdir
=%{_datadir}/doc/packages/%{name} HADDOCK_DOCS
=YES
install install-docs
112 cp
-a $
{RPM_BUILD_ROOT
}%{_datadir}/doc/packages/%{name}/{index.html,libraries} html
-docs
113 # Use version-less hsc2hs out of the way, we use update-alternatives.
114 mv $
{RPM_BUILD_ROOT
}%{_prefix}/bin/hsc2hs ${RPM_BUILD_ROOT}%{_prefix}/bin
/hsc2hs
-ghc
116 # generate the file list for lib/ _excluding_ all files needed for profiling
119 # * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list
120 # has to contain complete paths, _but_ without the BUILD_ROOT, we also do
121 # _not_ want have directory names in the list; furthermore, we have to make
122 # sure that any leading / is removed from %{_prefix}/lib, as find has to
123 # interpret the argument as a relative path; however, we have to include the
124 # leading / again in the final file list (otherwise, rpm complains)
125 # * isn't there an easier way to do all this?
129 libdir
=`
echo %{_prefix}/lib | sed 's|^
/||'`
130 find $libdir
! -type d
! -name '
*.p_hi'
! -name '
*_p.a'
-print | sed 's|^|
/|'
> $dir
/rpm
-noprof
-lib
-files
131 find $libdir
! -type d \
( -name '
*.p_hi'
-or
-name '
*_p.a' \
) -print | sed 's|^|
/|'
> $dir
/rpm
-prof
-lib
-files
135 rm -rf $
{RPM_BUILD_ROOT
}
138 # Alas, GHC, Hugs and nhc all come with different set of tools in addition to
142 # * Hugs: hsc2hs, cpphs
145 # Therefore it is currently not possible to use --slave below to form link
146 # groups under a single name 'runhaskell'. Either these tools should be
147 # disentangled from the Haskell implementations or all implementations should
148 # have the same set of tools. *sigh*
149 update
-alternatives
--install %{_bindir}/runhaskell runhaskell %{_bindir}/runghc
500
150 update
-alternatives
--install %{_bindir}/hsc2hs hsc2hs %{_bindir}/hsc2hs
-ghc
500
153 if test "$
1"
= 0; then
154 update
-alternatives
--remove runhaskell
%{_bindir}/runghc
155 update
-alternatives
--remove hsc2hs
%{_bindir}/hsc2hs
-ghc
158 %files -f rpm
-noprof
-lib
-files
159 %defattr(-,root
,root
)
160 %doc docs
/docbook
-cheat
-sheet
/docbook
-cheat
-sheet
165 %doc docs
/ext
-core
/core.ps
166 %doc docs
/storage
-mgt
/ldv.ps
167 %doc docs
/storage
-mgt
/rp.ps
168 %doc docs
/storage
-mgt
/sm.ps
169 %doc docs
/users_guide
/users_guide
170 %doc libraries
/Cabal
/doc
/Cabal
172 %{_mandir}/man1
/ghc
.1*
174 %{_prefix}/bin/ghc-%{version}
175 %{_prefix}/bin
/ghc
-pkg
176 %{_prefix}/bin/ghc-pkg-%{version}
178 %{_prefix}/bin/ghci-%{version}
179 %{_prefix}/bin
/ghcprof
182 %{_prefix}/bin
/hsc2hs
-ghc
183 %{_prefix}/bin/hsc2hs-%{version}
184 %{_prefix}/bin
/runghc
186 %files prof
-f rpm
-prof
-lib
-files
187 %defattr(-,root
,root
)