# RPM spec file for GHC
#
-# Copyright [1998..1999] Manuel M. T. Chakravarty <chak@acm.org>
-# Thanks to Zoltan Vorosbaranyi <vbzoli@vbzo.li> for help with earlier
-# versions.
+# Copyright [1998..2000] Manuel M. T. Chakravarty <chak@acm.org>
+# 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.
Source: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.gz
URL: http://haskell.org/ghc/
BuildRoot: /var/tmp/ghc-%{version}-%{release}-root
-Packager: Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>
Requires: gmp-devel
Provides: haskell
+BuildRequires: happy >= 1.6, ghc, stylesheets
%description
The Glorious Glasgow Haskell Compilation System (GHC) is a robust,
Haskell 98 is "the" standard lazy functional programming language.
More info plus the language definition is at http://www.haskell.org/.
-** This package does not include libraries for profiling **
+%package prof
+Summary: Profiling libraries for GHC
+Group: Development/Libraries
+Requires: ghc = %{PACKAGE_VERSION}
+
+%description prof
+Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC).
+They should be installed when GHC's profiling subsystem is needed.
%changelog
+* 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
+
* Tue Dec 7 1999 Manuel Chakravarty
- version for use from CVS
# generate our own `build.mk'
#
-# * this is a kludge, to be used until the `configure' script is improved
+# * this is a kludge
#
cat >mk/build.mk <<END
-GhcHcOpts = -O -dcore-lint -H24m
-GhcCompilerWays =
-GhcLibWays =
-GhcLibHcOpts = -O -H24m -split-objs -odir \$*
-GhcLibsWithReadline = YES
-StripLibraries = YES
+GhcLibWays = p
+#SRC_HAPPY_OPTS += -agc # useful from Happy 1.7 onwards
SRC_HAPPY_OPTS += -c
END
make -C glafp-utils sgmlverb
make all
make -C docs ps html
-make -C ghc/docs/users_guide ps html
-make -C ghc/docs/libraries ps html
+make -C ghc/docs ps html
%install
# compress the non-html docs
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
make prefix=$RPM_BUILD_ROOT%{prefix}\
libdir=$RPM_BUILD_ROOT%{prefix}/lib/ghc-%{version} install
+# generate the file list for lib/ _excluding_ all files needed for profiling
+# only
+#
+# * 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
-%doc ghc/ANNOUNCE ghc/PATCHLEVEL ghc/README docs/ ghc/docs/ CONTRIB/
-%{prefix}/bin/ghc
-%{prefix}/bin/ghc-%{version}
-%{prefix}/bin/hp2ps
-%{prefix}/bin/hstags
-%{prefix}/bin/stat2resid
-%{prefix}/lib/ghc-%{version}/
+%files -f rpm-noprof-lib-files
+%doc docs/
+%doc ghc/ANNOUNCE ghc/README ghc/docs/
+%{prefix}/bin/*
+
+%files prof
+%{prefix}/lib/ghc-%{version}/imports/*/*.p_hi
+%{prefix}/lib/ghc-%{version}/libHS*_p.a