# RPM spec file for GHC
#
-# Copyright [1998..2000] Manuel M. T. Chakravarty <chak@acm.org>
+# Copyright [1998..2001] The GHC Team
+#
# Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for suggestions in
# earlier versions and Pixel <pixel@mandrakesoft.com> for coding tips.
#
# This file is subject to the same free software license as GHC.
-# Values for @version@ and @patchlevel@ are set by the `configure' script.
-# SNAP releases are CVS snapshots. Official releases should replace SNAP by
-# an appropriate release numbers (they are usually numbered starting from 1).
+# Values for @version@ is set by the `configure' script. SNAP releases are
+# CVS snapshots. Official releases should replace SNAP by an appropriate
+# release numbers (they are usually numbered starting from 1).
%define version @version@
-%define patchlevel @patchlevel@
%define release SNAP
%define prefix /usr
Release: %{release}
Copyright: BSD style w/o adv. clause
Group: Development/Languages
-Source: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.gz
+Source: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
URL: http://haskell.org/ghc/
BuildRoot: /var/tmp/ghc-%{version}-%{release}-root
Requires: gmp-devel
Provides: haskell
-BuildRequires: happy >= 1.6, ghc, stylesheets
+BuildRequires: autoconf, happy >= 1.9, ghc, stylesheets
%description
-The Glorious Glasgow Haskell Compilation System (GHC) is a robust,
-fully-featured, optimising compiler for the functional programming
-language Haskell 98. GHC compiles Haskell to either native code or
-C. It implements numerous experimental language extensions to Haskell,
-including concurrency, a foreign language interface, several
-type-system extensions, exceptions, and so on. GHC comes with a
-generational garbage collector, a space and time profiler, and a
-comprehensive set of libraries. This package includes HTML and PS
-versions of the SGML-based documentation for GHC. They are also available
-online at http://www.haskell.org/ghc/.
-
-Haskell 98 is "the" standard lazy functional programming language.
-More info plus the language definition is at http://www.haskell.org/.
+Haskell is a standard lazy functional programming language; the
+current language version is Haskell 98, agreed in December 1998.
+
+GHC is a state-of-the-art programming suite for Haskell. Included is
+an optimising compiler generating good code for a variety of
+platforms, together with an interactive system for convenient, quick
+development. The distribution includes space and time profiling
+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
+Haskell home page at <http://www.haskell.org/>.
%package prof
Summary: Profiling libraries for GHC
%changelog
+* Mon Apr 16 2001 Manuel Chakravarty
+- revised for 5.00
+- also runs autoconf automagically if no ./configure found
+
+* Thu Jun 22 2000 Sven Panne
+- removed explicit usage of hslibs/docs, it belongs to ghc/docs/set
+
* Sun Apr 23 2000 Manuel Chakravarty
- revised for ghc 4.07; added suggestions from Pixel <pixel@mandrakesoft.com>
- added profiling package
- original version
%prep
-%setup -n fptools
+%setup
# generate our own `build.mk'
#
-# * this is a kludge
+# * this is a kludge (is it still needed?)
#
cat >mk/build.mk <<END
GhcLibWays = p
SRC_HAPPY_OPTS += -agc
+#GhcWithInterpreter=No
+GhcWithInterpreter=YES
END
+# run autoconf if necessary
+#
+[ ! -x configure ] && autoconf && cd ghc && autoconf
%build
./configure --prefix=%{prefix} --libdir=%{prefix}/lib/ghc-%{version}
make all
make -C docs ps html
make -C ghc/docs ps html
-make -C hslibs/doc ps html
%install
# compress the non-html docs
#
-for j in docs ghc/docs hslibs/doc; do
+for j in docs ghc/docs; do
dir=`pwd`
cd $j
- for i in ps dvi sgml vsgml verb idx; do
+ for i in ps dvi sgml verb idx; do
find . -name '*.'$i -exec gzip -9 '{}' ';' -print
done
cd $dir
# generate the file list for lib/ _excluding_ all files needed for profiling
# only
#
-ls -R %{prefix}/lib/* | grep -v -e ":$" -e "^$" -e ".p_hi" -e "_p.a"\
- >rpm-noprof-lib-files
+# * 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
+# sure that any leading / is removed from %{prefix}/lib, as find has to
+# 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`
+cd $RPM_BUILD_ROOT
+libdir=`echo %{prefix}/lib | sed 's|^/||'`
+find $libdir ! -type d ! -name '*.p_hi' ! -name '*_p.a' -print | sed 's|^|/|'\
+ >$dir/rpm-noprof-lib-files
+cd $dir
%clean
rm -rf $RPM_BUILD_ROOT
%files -f rpm-noprof-lib-files
-%doc docs/ CONTRIB/
-%doc ghc/ANNOUNCE ghc/PATCHLEVEL ghc/README ghc/docs/
-%doc hslibs/doc/
+%doc docs/
+%doc ghc/ANNOUNCE ghc/README ghc/docs/
%{prefix}/bin/*
%files prof