diff --git a/changelog b/changelog index 360115d..b3a1125 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20080528 tpd configure rewrite +20080528 tpd readme rewrite 20080527 tpd Makefile add fedora9 stanza 20080527 tpd faq 47: Axiom won't build on Fedora 9 (SELinux) 20080526 tpd Makefile add fedora8-64 stanza diff --git a/configure b/configure index e2633f0..042b446 100755 --- a/configure +++ b/configure @@ -1,167 +1,43 @@ -# The sysname function uses uname -s to try to decode what kind of -# system to build. Currently the return value of uname is mapped as -# Linux --> linux -# MINGW32_NT-5.1 --> windows -# SunOS --> Solaris9 -# Fedora Core 3 --> fedora3 -# freebsd --> freebsd -# -# The solaris platform needs patch->gpatch, awk->gawk, tar->gtar - -sysname () { -if [ -f /etc/redhat-release ] ; - then - SYSNAME=`cat /etc/redhat-release` - if [ "$SYSNAME" = "Fedora Core release 3 (Heidelberg)" ] ; - then SYSNAME=fedora3 - else if [ "$SYSNAME" = "Fedora Core release 5 (Bordeaux)" ] ; - then SYSNAME=fedora5 - fi - fi - echo SYSNAME=$SYSNAME -fi -if [ ! "$SYSNAME" = "fedora3" ] ; - then - if [ ! "$SYSNAME" = "fedora5" ] ; - then - SYSNAME=`uname -s` - echo $SYSNAME - if [ "$SYSNAME" = "Linux" ] ; then SYSNAME=linux - elif [ "$SYSNAME" = "MINGW32_NT-5.1" ] ; then SYSNAME=windows - elif [ "$SYSNAME" = "SunOS" ] ; then SYSNAME=solaris9 - elif [ "$SYSNAME" = "freebsd" ] ; then SYSNAME=freebsd - else - echo Your system name is $SYSNAME - echo We do not know how to build for this kind of system - echo Send a note to axiom-developer@nongnu.org about it - echo - exit 0 - fi - fi -fi - -} - -# This function checks for the gawk command. -# If it exists then AWKNAME is the complete pathname - -checkgawk() { -AWKNAME=`which gawk 2>>trace` -if [ -n "$AWKNAME" ] ; then - if [ -x $AWKNAME ] ; then - echo - fi -fi -} - -# This function checks for the nawk command. -# If it exists then AWKNAME is the complete pathname - -checknawk() { -AWKNAME=`which nawk 2>>trace` -if [ -n "$AWKNAME" ] ; then - if [ -x $AWKNAME ] ; then - echo - fi -fi -} - -# This function checks for the awk command. -# If it exists then AWKNAME is the complete pathname - -checkawk() { -AWKNAME=`which awk 2>>trace` -if [ -n "$AWKNAME" ] ; then - if [ -x $AWKNAME ] ; then - echo - fi -fi -} - -# This function uses the check*awk functions to decide -# whether the system can build noweb. If one of gawk, nawk or awk -# are not found we fail. -needAwk () -{ -checkgawk -if [ -z "$AWKNAME" ] ; then - checknawk - if [ -z "$AWKNAME" ] ; then - checkawk - if [ -z "$AWKNAME" ] ; then - echo We need the commands gawk, nawk, or awk - exit 0 - fi - fi -fi -} - -# The mustSet function tells the user what needs to be typed on the -# command line. If any extra variables need to be set we add them here. -# Currently the only thing we check if for the presence of gawk, which -# is the default in the Makefile. If gawk does not exist we can use -# either nawk or awk but the user has to specify that on the command line. - -# We check the system we are using with the uname command and try to -# generate the appropriate value. We fail otherwise. - -# We generate the appropriate command line that the user should use. - -mustSet() { +echo Axiom is known to build on the following systems: echo -echo =================================================== -echo You must set your AXIOM and PATH variables. Type: +echo SYSNAME ---- SYSTEM +echo ========================================================= +echo redhat72 --- RedHat 7.2 linux +echo redhat9 ---- RedHat 9 linux +echo debian ----- Debian linux +echo opensuse --- OpenSuse linux +echo ubuntu ----- Ubuntu linux +echo fedora3 ---- Fedora Core 3 linux +echo fedora5 ---- Fedora 5 linux +echo fedora6 ---- Fedora 6 linux +echo fedora7 ---- Fedora 7 linux +echo fedora8 ---- Fedora 8 linux +echo fedora9 ---- Fedora 9 linux +echo fedora8-64 - Fedora 8 linux on 64 bit platform +echo fedora64 --- Fedora generic 64 bit build +echo gentoo ----- Gentoo generic build +echo linux ------ generic linux +echo macosxppc -- Mac OSX 10.4 with XCode installed +echo +echo To use this information to build Axiom, decide which system is +echo closest to your configuration and look under the SYSNAME column. +echo +echo Assuming you put Axiom in /home/me/axiom you would type: +echo +echo export AXIOM=/home/me/axiom/mnt/SYSNAME +echo export PATH=\$AXIOM/bin:\$PATH +echo make +echo +echo Note: On macosxppc type \"make AWK=awk\" instead +echo +echo If the system fails to build the likely cause is SELinux. +echo See the faq. echo -echo To build the rest of the system type: -echo -echo export AXIOM=`pwd`/mnt/$SYSNAME -echo 'export PATH=$AXIOM/bin:$PATH' -if [ "$SYSNAME" = "freebsd" ] ; then - echo Note that freebsd usually has noweb available - echo If you wish to use the standard version you must type - echo touch noweb - echo If you wish to use a pre-installed GCL you must type - echo make GCLVERSION=gcl-system -fi -if [ "$SYSNAME" = "solaris9" ] ; - then echo make AWK=gawk TAR=gtar PATCH=gpatch -elif [ "`basename $AWKNAME`" = "gawk" ] ; - then echo make - else echo make AWK=$AWKNAME -fi -echo -echo configure finished. -} - -######################################################################### -# This is the main line of configure logic. -# (1) We test to see if we understand this system name. So far -# the recognized strings from uname -s are translated as: -# Linux --> linux -# MINGW32_NT-5.1 --> windows -# SunOS --> Solaris9 -# Fedora Core 3 --> fedora3 -# freebsd --> freebsd -# (1) We test for the AWK variable. We need one of gawk, nawk, or awk -# in order to build the noweb software. -# (2) Then we output the final message for the user. -# -# The solaris platform needs patch->gpatch, awk->gawk, tar->gtar -######################################################################### - -sysname -needAwk +echo For new information and details see +echo http://axiom.axiom-developer.org +echo +echo For binary downloads see +echo http://axiom.axiom-developer.org/axiom-website/download.html +echo +echo Mail bug reports to axiom-developer@nongnu.org -if [ "x$AXIOM" = "x" ] ; - then mustSet - else - if [ ! "`dirname $AXIOM`" = "`pwd`/mnt" ] - then mustSet - else - echo Configure complete. Now type - echo - echo make - echo - fi -fi - diff --git a/readme b/readme index 27bb2cf..c4da06b 100644 --- a/readme +++ b/readme @@ -1,23 +1,31 @@ -You've unpacked the Axiom source code to some directory. In this document -we'll call that directory /spad. Note that the path cannot contain uppercase -characters. This is a porting limitation as not all systems can handle -dual case characters. +You've unpacked the Axiom source code to some directory. In this +document we'll call that directory /home/me/axiom. Note that the path +cannot contain uppercase characters or spaces. This is a porting +limitation as not all systems can handle dual case characters. ======================================================================= -================= CONFIGURING AXIOM =================================== +================= MAKING AXIOM ======================================== ======================================================================= -Type: -./configure +Axiom builds a system-specific version based on a string we'll call +the SYSNAME. Currently recognized SYSNAME strings can be found on the +Axiom website at: + -======================================================================= -================= MAKING AXIOM ======================================== -======================================================================= +Replace SYSNAME below with the likely name of your system. + +We also assume that you downloaded AXIOM to someplace. Suppose +that place is /home/me/axiom, then: -cd /spad << where you unpacked the sources -export AXIOM=/spad/mnt/linux << which axiom to build -make << build the system - << a system build takes 2+ hours at 2Ghz +cd /home/me/axiom << where you unpacked the sources +export AXIOM=/home/me/axiom/mnt/SYSNAME << which axiom to build +export PATH=$AXIOM/bin:$PATH +make << build the system + +A system build takes 2+ hours at 2Ghz machine. + +A recent cause of likely build failures is SELinux. +See the faq file for possible solutions. When the make completes you'll have an executable called $AXIOM/bin/axiom @@ -39,9 +47,8 @@ make INSTALL=/home/me/myaxiom COMMAND=/home/me/bin/myaxiom install ===================================================================== -Documentation can be found at various places in the system. -At the moment most of the documentation is for developers. -There is a users guide being developed. It will be online when complete. +Documentation can be found at various places in the system or on the +Axiom website: There is a book (available on Amazon.com): Jenks, Richard D. and Sutor, Robert S. "Axiom, The Scientific Computation @@ -66,7 +73,9 @@ Questions and comments should be sent to: axiom-developer@nongnu.org Tim Daly -axiom@tenkan.org +daly@axiom-developer.org + +===================================================================== Philosophy @@ -529,7 +538,7 @@ Steps in the build process The sequence of steps necessary to build a clean Axiom is simply: - export AXIOM=(path-including-this-directory)/mnt/linux + export AXIOM=(path-including-this-directory)/mnt/SYSNAME make If this fails check the FAQ for possible problems and their fixes.