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