ANNOUNCE: Autoconf version of ROOT 2.21.08

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Sun Apr 04 1999 - 05:40:56 MEST


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