[Top][All Lists]

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

Re: [Axiom-developer] About Axiom paths within Axiom code

From: root
Subject: Re: [Axiom-developer] About Axiom paths within Axiom code
Date: Sun, 4 May 2003 10:13:35 -0400

> Tim, is all the compiled code relative to the AXIOM environment variable
> or contains some absolute path once compiled?
> In other words, would a system administrator be able to move a compiled
> Axiom into another directory (in /usr/local for instance) for its users?

Virtually everything is relative to the AXIOM variable. It is the only
"external" piece of the system. Axiom builds never write outside its
own subtree (using ${OBJ} as tmp space) and there are no other shell
variables referenced.

Once a system is built the ${MNT} subtree can be moved anywhere, pointed
at by a $AXIOM shell variable, and the rest of the code should "do the
right thing".

In particular, it is entirely possible to build several copies of Axiom
using several lisps (or the same lisp) with possibly different build
features that run on the same system. You need only 

set the AXIOM variable to the new system type (e.g. (path)/mnt/linux-cmucl)
type make
copy ${MNT} somewhere (e.g. /usr/local/axiom1), 
rm the ${OBJ} and ${MNT} subtree
reset the AXIOM variable to the new system type (e.g. (path)/mnt/linux-gcl)
type make

(driving the makefile off the shell variable used to work but is currently
broken. we need to be able to do `pwd` and `basename ...` to get it working
correctly. For the moment you must edit the toplevel Makefile.pamphlet).

after the first build the ${SRC} and ${INT} subtrees are never modified.
${SRC} is never changed by the build anyway. ${INT} is machine-independent
code that is used to cache work so the second and subsequent builds don't
take forever. ${OBJ} is a machine-specific cache / tmp directory so that
machine specific code (e.g. .o files) can be cached. ${MNT} is intended
to be a complete distribution that can be moved anywhere. It contains
no references outside the ${MNT} subtree.

In the ideal case you should be able to NFS mount the remote CVS directory
onto your subtree, set the AXIOM variable, type make, and get a working
system. (I should think about uploading the INT directory....). If this
model works correctly there would be no need to do a cvs checkout in
order to do a system build. Or Axiom could be distributed with SRC and
INT on CD and built directly.

At least that is the design. Violations of these goals can be considered
a bug.


reply via email to

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