axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Question about building


From: Tim Daly
Subject: [Axiom-developer] Question about building
Date: Tue, 30 Nov 2004 09:52:00 -0500

C Y,

Actually Axiom stores no information about the build location.
The $AXIOM shell variable is used during build to tell the
build process 2 pieces of information. Suppose that the variable
is set as follows:

export AXIOM=/home/daly/axiom/mnt/linux
             ^^^^^^^^^^^^^^^^
             build location
                                  ^^^^^
                                  target 

so the '/home/daly/axiom' is where you put the axiom sources.
This could be anywhere, e.g. '/var/spool/my-long-fancy-name'

The 'linux' portion tells the build process what kind of target
system you want to build for. The various possible target systems
are listed in the top level Makefile.pamphlet (or the Makefile.dvi
generated from that pamphlet file).

Axiom is designed to build with the minimum possible rebuilding
effort. The system is broken into 4 parts: src, int, obj, and mnt.
It is designed so you could put the source and int directories
on a master location and then NFS mount read-only these two
directories. If you do this properly it should be possible to
do a complete build for, say a linux system from the master
location and then doing an NFS mount on a solaris system and
changing the target you can build for solaris. The obj directory
is the only place where system-dependent files live. The src and
int directories are system-independent and can be mounted onto
any type of system.

The mnt directory is a complete, working axiom system. It does
not know where it lives. So the $AXIOM shell variable has a 
second use. At runtime the axiom command looks at the $AXIOM
shell variable to find out where it lives.

So once you build an axiom system in your home directory you can
copy the mnt subdirectory to /usr/local/axiom, set the AXIOM variable to
export AXIOM=/usr/local/axiom/mnt/linux
and now axiom knows where it lives.

Once you build and copy the mnt subdirectory all of the rest of the
axiom build can be erased. Everything needed lives under mnt.

So you can see that the AXIOM shell variable has two different uses,
one at compile time and one at runtime.

As to a configure-make-make install process, that is evolving slowly.
For the algebra portion of axiom the configure process makes no sense
as it is designed primarly for C programs and axiom is written in lisp.
But as I continue to get the C portions of axiom working (like the graphics)
I'll need to build a proper configure.

Hope this helps clear up the confusion.

Tim





reply via email to

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