"Manuel M. T. Chakravarty" <[EMAIL PROTECTED]> wrote,

> I am just building rpms as we speak and have attached the
> revised .spec file below (which also evades the two
> mentioned bugs).

The file still had a bug (more precisely, something else
changed in the GHC's makefiles, which I had not taken into
account).  The corrected spec file is attached.

Manuel
# RPM spec file for GHC
#
# Copyright [1998..2000] Manuel M. T. Chakravarty <[EMAIL PROTECTED]>
# Thanks to Zoltan Vorosbaranyi <[EMAIL PROTECTED]> for suggestions in 
# earlier versions and Pixel <[EMAIL PROTECTED]> for coding tips.
#
# This file is subject to the same free software license as GHC.

# Values for 5.00 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).

%define version    5.00
%define release    1
%define prefix     /usr

Summary: Glasgow Haskell Compilation system
Name: ghc
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.bz2
URL: http://haskell.org/ghc/
BuildRoot: /var/tmp/ghc-%{version}-%{release}-root
Requires: gmp-devel
Provides: haskell
BuildRequires: happy >= 1.9, ghc, stylesheets

%description
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}

%description prof
Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC).
They should be installed when GHC's profiling subsystem is needed.

%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 <[EMAIL PROTECTED]>
- added profiling package

* Tue Dec 7 1999 Manuel Chakravarty
- version for use from CVS

* Thu Sep 16 1999 Manuel Chakravarty
- modified for GHC 4.04, patchlevel 1 (no more 62 tuple stuff); minimises use
  of patch files - instead emits a build.mk on-the-fly

* Sat Jul 31 1999 Manuel Chakravarty
- modified for GHC 4.04

* Wed Jun 30 1999 Manuel Chakravarty
- some more improvements from vbzoli

* Fri Feb 26 1999 Manuel Chakravarty
- modified for GHC 4.02

* Thu Dec 24 1998 Zoltan Vorosbaranyi 
- added BuildRoot
- files located in /usr/local/bin, /usr/local/lib moved to /usr/bin, /usr/lib

* Tue Jul 28 1998 Manuel Chakravarty
- original version

%prep
%setup

# generate our own `build.mk'
#
# * 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}
make boot
make -C glafp-utils sgmlverb
make all
make -C docs 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 verb idx; do
    find . -name '*.'$i -exec gzip -9 '{}' ';' -print
  done
  cd $dir
done
rm -rf $RPM_BUILD_ROOT

# 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
#
# * 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/
%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

Reply via email to