axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] [build-improvements] Requests for discussion


From: Gabriel Dos Reis
Subject: Re: [Axiom-developer] [build-improvements] Requests for discussion
Date: 02 Aug 2006 13:17:27 +0200

Ralf Hemmecke <address@hidden> writes:

| >    Based on the feedback I got, I implemented the Autoconf-based
| > configuration stuff as a pamphlet file (see below).
| 
| I think, Bill's suggestion is the right one. We have a pure ./configure
| file that is distributed with the Axiom sources and a configure.ac.pamphlet.

from the outset, the project aimed at shipping ./configure.  However,
that file must be generated from somewhere.  For Autoconf, that must
be something like configure.ac.
The debate was whether configure.ac is sufficient by itself as
literate or whether it must come from a pamphlet file.
My opinion is that it is sufficient.  Others disagree.  So, I
implemented the solution others suggested -- even though I disagree
with it.

| We have two ways to compile Axiom:
| 
| 1) For ordinary users who want to download and compile and run axiom
| 
| >      ./configure
| >       make
| >       make install
|          axiom
| 
| should be enough.
| 
| 2) For developers who want to compile Axiom change it and test their
| stuff. (Same commands as above.)
| 
| 3) For developers who want to work on the build process and need to
| change configure.ac.pamphlet. Here
| 
|       ./configure
|       make configure

That is too circular and too complicated. It is a good recipe for subtle
bugs.  We don't want to be too clever at that level.

|       autoconf configure.ac > configure
|       ./configure
|       make
|       make install

Currently, here is the sequence I propose -- and I'm using right now

    (1) modify configure.ac.pamphlet
    (2) run ./build-setup.sh            -- you don't need to know what
                                        -- it does, except it does the
                                        -- right thing for you
    (3) ./configure && make && make install

| 
| should do the compilation. The first configure (that comes with Axiom)
| checks for noweb and generates a simple Makefile that enables a
| "make configure". "make configure" could then call notangle to
| generate configure.ac (It could even include "autoconf configure.ac >
| configure".) Would that be a bad bootstrapping?
| 
| Gaby, it is only you who must run
| 
| notangle configure.ac.pamphlet > configure.ac
| autoconf configure.ac > configure

I do expect other developers making changes to
configure.ac.pamphlet (and later to any Makefile.am.pamphlet) to run
equivalent commands.  Fortunately, that is all taken care of by
build-setup.sh.  :-)

build-setup.sh is not an end-user stuff.  It is only for maintainers
of the build machinery.

End users just follow the scenario at 1)

Mainitainers are required to have noweb installed -- so I proceeded to
install noweb myself.


Bill suggested we don't keep configure.ac.  I fear we must kepp it --
for the purpose of preventing the build machinery maintainers from
introducing subtle bugs.  Components of Autotools have dependency on
such files in several circumstances.

-- Gaby




reply via email to

[Prev in Thread] Current Thread [Next in Thread]