Re: ANNOUNCE: Autoconf version of ROOT 2.21.08

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Apr 05 1999 - 10:01:20 MEST


Hi Matt,
I am happy that you finally succeeded  with Autoconf and I hope that
your interesting development will simplify one day the installation
of the Root system. We will look into your additions. Fons will probably
make some comments.
Following the Jacek's mail about installing Root with the CVS framework
and also the discussions at the Root workshop at FNAL, I would like
to make the following comments.

Root has been (is still) developped/maintained using the CMZ code
management system. Fons and myself contributed to CMZ many years ago.
We know the system pretty well. It has never been our intention to propose
this tool as a general development/installation utility for Root.
However, I must say that CMZ has been ESSENTIAL in our development model.
Because the root.cmz file is a compact file containing the full source
and installation procedures, we have been able to develop Root on
independent platforms (now our laptops) without the constraint of a
central code repository. We are merging our development versions very
frequently (typically twice a week). Merging is a simple operation because
this operation is well supported in CMZ. In other words, this scheme
has been extremely successfull for us (small development team).
Moving to a different environment must be considered with care. We do not
want to introduce instabilities in the system. We do not want to lose
our efficiency as well. The alternative system must be robust, generally
available on ALL platforms and provide the most basic facilities we are
familiar with.

We have agreed to move to the CVS environment for compatibility reasons
with many experiments/labs. However, we also know that many Root users
are not happy with this decision. They request simple Makefiles. By
"simple"
I mean "REALLY simple", not pages of Makefiles calling a tree of
Makefiles.
If the installation procedure requires too many assumptions, tools to be
implemented before they can start, this will not fly.
The majority of our distributions is still binary distributions.
Moving to a new distribution mechanism implies that:
 - the new mechanism must be generally available.
 - it must be working on ALL platforms

We are happy to see that several users (you, Jacek, FNAL, etc) are willing
to help to setup this installation/distribution mechanism. We stronly
encourage the Root community to test/comment on these developments.

Once this framework is working, we will be also happy to adapt our
development system accordingly. We would like to make this step in a way
as smooth as possible.

Rene Brun 



On Sun, 4 Apr 1999, Matthew D. Langston wrote:

> Hello all,
> 
> I have added GNU Autoconf, Automake and Libtool support to ROOT.
> Although this "Autoconfed" version of ROOT works (i.e. it passes the
> ROOT testsuite), it has only been tested on x86/Linux systems and should
> be considered a beta release.  It is based on ROOT version 2.21.08 (the
> latest version available as I write this), and is available for download
> at the following location:
> 
> ftp://ftp.slac.stanford.edu/users/langston/root/root-2.21.08.tar.gz
> 
> Since this is a beta release, all feedback from interested users
> (especially those of systems other than x86/Linux) who download and test
> this release is welcome.
> 
> The purpose of adding GNU Autoconf, Automake and Libtool support to ROOT
> is to make ROOT more portable to a larger number of architectures and
> operating systems.  In theory, if your architecture/OS has not yet been
> supported by ROOT, then it now may be (but see the "Theory of Operation"
> section below).
> 
> For those of you unfamiliar with GNU Autoconf, an "Autoconfed package"
> (which now includes ROOT) is typically built and tested with four simple
> commands:
> 
>   $ ./configure
>   $ make
>   $ make check
>   $ make install
> 
> It also has the nice feature of automatically using TrueType fonts and
> OpenGL if you have the packages that support these features
> (e.g. freetype and Mesa) installed on your system.
> 
> Additionally, it is now trivial to make RPMs of ROOT (since the ROOT
> build system now uses GNU Automake), and these are available for
> download as well if you are an RPM user (which you probably are if you
> run Linux).  Deb packages (and any other packaging system) should also
> now be trivial to produce.
> 
> If you've wanted to try out ROOT but haven't yet, or you want to
> encourage a colleague to try ROOT, it can now be trivially installed
> with the following commands:
> 
>   $ rpm -Uvh ftp://ftp.slac.stanford.edu/users/langston/root/root-2.21.08-1.i386.rpm
>   $ rpm -Uvh ftp://ftp.slac.stanford.edu/users/langston/root/root-examples-2.21.08-1.i386.rpm
>   $ rpm -Uvh ftp://ftp.slac.stanford.edu/users/langston/root/root-docs-2.21.08-1.i386.rpm
> 
> It is important to note that this software is not yet officially
> supported by the ROOT Team.  However, they are aware of my efforts to
> add GNU Autoconf, Automake and Libtool support to ROOT, and I will work
> with them to integrate these changes into the official ROOT sources if
> they chose to adopt the GNU portability framework.
> 
> The Autoconf changes and enhancements to ROOT have not seen widespread
> use outside of SLAC, and this is the first time I have announced this
> "Autoconfed" version of ROOT to the ROOT list.  As I mentioned, the
> software being announced here should be considered beta.  Having said
> that, the "Autoconfed" version of ROOT passes the ROOT testsuite (those
> tests in the `test' subdirectory of the ROOT distribution), and I have
> been using the Autoconfed version of ROOT for my own personal physics
> research.
> 
> 
>                           Theory of Operation
>                           -------------------
> 
> In principle, a software package that is written for portability using
> GNU Autoconf, Automake and Libtool should run "everywhere", which means
> nearly all flavors of UNIX, Windows 95/98/NT, BeOS, etc.  In general, if
> you have a `make' utility, a Bourne compatible shell, and the necessary
> compilers, then an Autoconfed package should build on your system.
> However, the Autoconfed version of ROOT has currently only been tested
> on an x86 architecture running Linux 2.0.36.
> 
> If you are a Windows 95/98/NT user, then you will need to install Cygwin
> on your system in order to obtain these tools - see
> http://sourceware.cygnus.com/cygwin/ for more information.  However, I
> am almost certain that the current version of the Autoconfed ROOT will
> not build on a Win32 system even if you have Cygwin installed.  This is
> because the "build instructions" for Windows 95/98/NT were not included
> in the original ROOT sources (i.e. there was no Makefile.win32 to guide
> me), and hence I could not added the Win32 build procedures to
> `lib/Makefile.am'.  If a Windows 95/98/NT user knows what these build
> procedures are, then please forward them onto me and I will add them to
> the CVS repository.  This change should be pretty simple, and I am
> excited to get ROOT to bootstrap itself on a Win32 system ASAP.
> 
> There will be fixes that will need to be made to the new ROOT Autoconf
> portability framework for other architectures and operating systems, but
> the fixes are mainly confined to two to three Autoconf files.  See the
> file HACKING in the Autoconfed version of ROOT for more information on
> how to get started.
> 
> 
>                           Changes made to ROOT
>                           --------------------
> 
> The current version of the "Autoconfed ROOT" package is mainly a
> structural reorganization of the ROOT source code in addition to the
> integration of GNU Autoconf, Automake and Libtool.
> 
> The integration of GNU Autoconf, Automake and Libtool into ROOT is an
> addition to the ROOT package, and not a change to the ROOT source code.
> What I mean by this is that none of the ROOT source code had to be
> changed (except for the addition of the configuration header) to
> initially support the integration of GNU Autoconf, Automake and Libtool
> into the ROOT source code distribution (this is largely why the ROOT
> testsuite worked for me on the first try).
> 
> However, the ROOT developers will eventually want to move the original,
> and still existing, portability framework out of the ROOT source code
> and into the GNU Autoconf suite of files (which are the configure.in,
> acinclude.m4, acconfig.h and the various Makefile.am files).  This will
> make their jobs easier as developers, and will make ROOT more portable
> to a larger number of architectures and operating systems.
> 
> If you've never heard of GNU Autoconf, Automake or Libtool, then you can
> start by looking at their respective web sites:
> 
> http://sourceware.cygnus.com/autoconf/
> http://sourceware.cygnus.com/automake/
> http://www.gnu.org/software/libtool/libtool.html
> 
> The HACKING file included in the Autoconfed version of ROOT is mainly a
> brief set of notes for developers interested in working on this
> structural reorganization and integration of GNU Autoconf, Automake and
> Libtool into ROOT.
> 
> --
> Matthew D. Langston
> SLD, Stanford Linear Accelerator Center
> langston@SLAC.Stanford.EDU
> 



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:31 MET