Re: compiling ghc-5 with x86 HC files

2001-04-16 Thread Manuel M. T. Chakravarty

"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 version5.00
%define release1
%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|^|/|'\
 

Re: compiling ghc-5 with x86 HC files

2001-04-16 Thread Michael Weber

* "Manuel M. T. Chakravarty" [EMAIL PROTECTED] [2001-04-16T14:21+1000]:
 which automates the process.  More details at
 
   http://haskell.cs.yale.edu/ghc/docs/4.08.2/building/sec-booting-from-c.html
 
 I just found that this documentation seems to have disappeared
 since the 5.00 release.  I think, I am going to resurrect it
 as part of the GHC Commentary.

it's still there, you just have to (IIRC):

$ cd fptools/docs
$ cvs update -dP


Cheers,
M/

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



compiling ghc-5 with x86 HC files

2001-04-15 Thread Pixel

I've found the "x86 HC files, for building from source without a previous
installation of GHC" which seemed promising. Alas i don't know what to do with
it. I tried untaring it together with the source:

pixel@no:~/rpm/SPECSrpm -bp ghc.spec
Executing(%prep): /bin/sh -e /home/pixel/rpm/tmp/rpm-tmp.84335
[...]
+ cd /home/pixel/rpm/BUILD
+ rm -rf ghc-5.00
+ /usr/bin/bzip2 -dc /home/pixel/rpm/SOURCES/ghc-5.00-src.tar.bz2
+ tar -xf -
[...]
+ cd /home/pixel/rpm/BUILD
+ /usr/bin/bzip2 -dc /home/pixel/rpm/SOURCES/ghc-5.00-i386-hc.tar.bz2
+ tar -xf -
[...]

pixel@no:~/rpm/BUILD/ghc-5.00autoconf
configure.in:733: warning: AC_TRY_RUN called without default to allow cross compiling
configure.in:914: warning: AC_TRY_RUN called without default to allow cross compiling
(fptools configure script wizard sez: "don't worry, the above warning is harmless (to 
us.)")
pixel@no:~/rpm/BUILD/ghc-5.00(cd ghc ; autoconf)
pixel@no:~/rpm/BUILD/ghc-5.00./configure /tmp/configure.output
pixel@no:~/rpm/BUILD/ghc-5.00make /tmp/log 21

configure seems ok (i did install happy 1.9 otherwise configure was not happy),
but "make" is going crazy with things like:

==fptools== make boot -wr;
 in /home/pixel/rpm/BUILD/ghc-5.00/glafp-utils/lndir

../../glafp-utils/mkdependC/mkdependC -f .depend -- -O -- lndir.c 
# 46 "lndir.c"
# 1 "lndir-Xos.h" 1
# 27 "lndir-Xos.h"
[...]

which just seems to output the file preprocessed?

==fptools== make boot - --no-print-directory -r;
 in /home/pixel/rpm/BUILD/ghc-5.00/ghc/utils/ghc-pkg

M -optdep-f -optdep.depend  -osuf o-ldl -cpp -DPKG_TOOL -DWANT_PRETTY -package 
lang -package util -package textMain.hs Package.hs
make[3]: M: Command not found
make[3]: [depend] Error 127 (ignored)


I've not tried a lot yet, but some help would be nice :)


Thanks, cu Pixel.


files:
  ftp://ftp.mandrakesoft.com/pub/pixel/configure.output
  ftp://ftp.mandrakesoft.com/pub/pixel/log.bz2

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



Re: compiling ghc-5 with x86 HC files

2001-04-15 Thread Manuel M. T. Chakravarty

Pixel [EMAIL PROTECTED] wrote,

 I've found the "x86 HC files, for building from source without a previous
 installation of GHC" which seemed promising. Alas i don't know what to do with
 it. I tried untaring it together with the source:
 
 pixel@no:~/rpm/SPECSrpm -bp ghc.spec

The .spec file (if it is the "standard" GHC spec file)
builds from Haskell source assuming that ghc is already
installed (see also the build dependency).

The spec file that comes with the ghc tar ball is not
working with the 5.00 release - partly because I was too
slow in fixing it and partly because of two bugs in the
source tar ball itself (configure is missing, ie, autoconf
was not run, and make install does not create the
%{prefix}/bin directory early enough during the install).

I am just building rpms as we speak and have attached the
revised .spec file below (which also evades the two
mentioned bugs).  Note that the spec file as it is builds a
compiler without the interactive system.  Search for
``GhcWithInterpreter=No'' and change it to `YES' to build an
interactive system.  However, note that you *cannot* build
an interactive system with an existing 4.08 compiler.  To do
this you need a compiler that links whatever it compiles
with the new 5.00 runtime system, which is why you have to
compiler 5.00 without interactive from 4.08, and then, use
this non-interactive 5.00 to produce an interactive 5.00
compiler. 

However, all this is still assuming that we build from
Haskell source using an existing GHC.

For building from .hc files, there is a script in the tar
ball at

  ghc-5.00/distrib/hc-build

which automates the process.  More details at

  http://haskell.cs.yale.edu/ghc/docs/4.08.2/building/sec-booting-from-c.html

I just found that this documentation seems to have disappeared
since the 5.00 release.  I think, I am going to resurrect it
as part of the GHC Commentary.

Cheers,
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 and 1 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 version5.00
%define patchlevel 1
%define release1
%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
-