5973b0bef97ea5d6544e7565cc7e300fed3420fb
[ghc-hetmet.git] / ghc / ghc.spec.in
1 # RPM spec file for GHC
2 #
3 # Copyright [1998..2001] The GHC Team
4 #
5 # Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for suggestions in 
6 # earlier versions and Pixel <pixel@mandrakesoft.com> for coding tips.
7 #
8 # This file is subject to the same free software license as GHC.
9
10 # Values for @version@ is set by the `configure' script.  SNAP releases are 
11 # CVS snapshots.  Official releases should replace SNAP by an appropriate 
12 # release numbers (they are usually numbered starting from 1).
13
14 %define version    @version@
15 %define release    SNAP
16 %define prefix     /usr
17
18 Summary: Glasgow Haskell Compilation system
19 Name: ghc
20 Version: %{version}
21 Release: %{release}
22 Copyright: BSD style w/o adv. clause
23 Group: Development/Languages
24 Source: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
25 URL: http://haskell.org/ghc/
26 BuildRoot: /var/tmp/ghc-%{version}-%{release}-root
27 Requires: gmp-devel
28 Provides: haskell
29 BuildRequires: happy >= 1.9, ghc >= 4.08, docbook-utils
30
31 %description
32 Haskell is a standard lazy functional programming language; the
33 current language version is Haskell 98, agreed in December 1998.
34
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).
42
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://www.haskell.org/>.
47
48 %package prof
49 Summary: Profiling libraries for GHC
50 Group: Development/Libraries
51 Requires: ghc = %{PACKAGE_VERSION}
52
53 %description prof
54 Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC).
55 They should be installed when GHC's profiling subsystem is needed.
56
57 %package doc
58 Summary: Documentation for GHC
59 Group: Documentation
60
61 %description doc
62 Preformatted documentation for the Glorious Glasgow Haskell Compilation System 
63 (GHC) and its libraries.  It should be installed if you like to have local
64 access to the documentation in PostScript and HTML format.  Alternatively,
65 the documentation is available online at
66
67   http://haskell.org/ghc/documentation.html
68
69 %changelog
70
71 * Wed Sep 26 2001 Manuel Chakravarty
72 - split documentation off into a separate package
73 - adapt to new docbook setup in RH7.1
74
75 * Mon Apr 16 2001 Manuel Chakravarty
76 - revised for 5.00
77 - also runs autoconf automagically if no ./configure found
78
79 * Thu Jun 22 2000 Sven Panne
80 - removed explicit usage of hslibs/docs, it belongs to ghc/docs/set
81
82 * Sun Apr 23 2000 Manuel Chakravarty
83 - revised for ghc 4.07; added suggestions from Pixel <pixel@mandrakesoft.com>
84 - added profiling package
85
86 * Tue Dec 7 1999 Manuel Chakravarty
87 - version for use from CVS
88
89 * Thu Sep 16 1999 Manuel Chakravarty
90 - modified for GHC 4.04, patchlevel 1 (no more 62 tuple stuff); minimises use
91   of patch files - instead emits a build.mk on-the-fly
92
93 * Sat Jul 31 1999 Manuel Chakravarty
94 - modified for GHC 4.04
95
96 * Wed Jun 30 1999 Manuel Chakravarty
97 - some more improvements from vbzoli
98
99 * Fri Feb 26 1999 Manuel Chakravarty
100 - modified for GHC 4.02
101
102 * Thu Dec 24 1998 Zoltan Vorosbaranyi 
103 - added BuildRoot
104 - files located in /usr/local/bin, /usr/local/lib moved to /usr/bin, /usr/lib
105
106 * Tue Jul 28 1998 Manuel Chakravarty
107 - original version
108
109 %prep
110 %setup
111
112 # generate our own `build.mk'
113 #
114 # * this is a kludge (is it still needed?)
115 #
116 cat >mk/build.mk <<END
117 GhcLibWays = p
118 SRC_HAPPY_OPTS += -agc
119 #GhcWithInterpreter=NO
120 GhcWithInterpreter=YES
121 END
122
123 # run autoconf if necessary
124 #
125 [ ! -x configure ] && autoconf && cd ghc && autoconf
126
127 %build
128 ./configure --prefix=%{prefix}
129 make boot
130 make -C glafp-utils sgmlverb
131 make all
132 make -C docs ps html
133 make -C ghc/docs ps html
134
135 %install
136 # compress the non-html docs
137 #
138 for j in docs ghc/docs; do
139   dir=`pwd`
140   cd $j
141   for i in ps dvi sgml verb idx; do
142     find . -name '*.'$i -exec gzip -9 '{}' ';' -print
143   done
144   cd $dir
145 done
146 rm -rf $RPM_BUILD_ROOT
147
148 # FIXME: this is necessary due to brokenness in ghc-5.00/mk/target.mk
149 make prefix=$RPM_BUILD_ROOT%{prefix} install-dirs
150
151 make prefix=$RPM_BUILD_ROOT%{prefix} install
152
153 # generate the file list for lib/ _excluding_ all files needed for profiling
154 # only
155 #
156 # * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list
157 #   has to contain complete paths, _but_ without the BUILD_ROOT, we also do
158 #   _not_ want have directory names in the list; furthermore, we have to make
159 #   sure that any leading / is removed from %{prefix}/lib, as find has to 
160 #   interpret the argument as a relative path; however, we have to include the
161 #   leading / again in the final file list (otherwise, rpm complains)
162 # * isn't there an easier way to do all this?
163 #
164 dir=`pwd`
165 cd $RPM_BUILD_ROOT
166 libdir=`echo %{prefix}/lib | sed 's|^/||'`
167 find $libdir ! -type d ! -name '*.p_hi' ! -name '*_p.a' -print | sed 's|^|/|'\
168      >$dir/rpm-noprof-lib-files
169 cd $dir
170
171 %clean
172 rm -rf $RPM_BUILD_ROOT
173
174 %files -f rpm-noprof-lib-files
175 %doc ghc/ANNOUNCE ghc/README
176 %{prefix}/bin/*
177
178 %files prof
179 %{prefix}/lib/ghc-%{version}/imports/*/*.p_hi
180 %{prefix}/lib/ghc-%{version}/libHS*_p.a
181
182 %files doc
183 %doc docs/
184 %doc ghc/docs/