[project @ 2001-12-06 12:30:13 by chak]
[ghc-hetmet.git] / ghc / ghc.spec.in
index 5609612..b58e128 100644 (file)
@@ -1,17 +1,17 @@
 # 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
 
@@ -21,39 +21,61 @@ Version: %{version}
 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: happy >= 1.9, ghc >= 4.08, docbook-utils
 
 %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
 Group: Development/Libraries
-Requires: ghc = %{PACKAGE_VERSION}
+Requires: ghc = %{PACKAGE_VERSION}-%{release}
 
 %description prof
 Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC).
 They should be installed when GHC's profiling subsystem is needed.
 
+%package doc
+Summary: Documentation for GHC
+Group: Documentation
+
+%description doc
+Preformatted documentation for the Glorious Glasgow Haskell Compilation System 
+(GHC) and its libraries.  It should be installed if you like to have local
+access to the documentation in PostScript and HTML format.  Alternatively,
+the documentation is available online at
+
+  http://haskell.org/ghc/documentation.html
+
 %changelog
 
+* Wed Sep 26 2001 Manuel Chakravarty
+- split documentation off into a separate package
+- adapt to new docbook setup in RH7.1
+
+* 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
 
@@ -85,21 +107,25 @@ They should be installed when GHC's profiling subsystem is needed.
 - 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 # useful from Happy 1.7 onwards
-SRC_HAPPY_OPTS += -c
+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}
+./configure --prefix=%{prefix}
 make boot
 make -C glafp-utils sgmlverb
 make all
@@ -112,14 +138,17 @@ make -C ghc/docs ps html
 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
 done
 rm -rf $RPM_BUILD_ROOT
-make prefix=$RPM_BUILD_ROOT%{prefix}\
-     libdir=$RPM_BUILD_ROOT%{prefix}/lib/ghc-%{version} install
+
+# FIXME: this is necessary due to brokenness in ghc-5.00/mk/target.mk
+make prefix=$RPM_BUILD_ROOT%{prefix} install-dirs
+
+make prefix=$RPM_BUILD_ROOT%{prefix} install
 
 # generate the file list for lib/ _excluding_ all files needed for profiling
 # only
@@ -143,10 +172,13 @@ cd $dir
 rm -rf $RPM_BUILD_ROOT
 
 %files -f rpm-noprof-lib-files
-%doc docs/
-%doc ghc/ANNOUNCE ghc/README ghc/docs/
+%doc ghc/ANNOUNCE ghc/README
 %{prefix}/bin/*
 
 %files prof
 %{prefix}/lib/ghc-%{version}/imports/*/*.p_hi
 %{prefix}/lib/ghc-%{version}/libHS*_p.a
+
+%files doc
+%doc docs/
+%doc ghc/docs/