Building Stanley & Oliver on Unix/Linux
Back to Main Page
Contents
- Build Requirements
- Checking Out Stanley VJMPL, Livingstone, L2 Tools, & Oliver Source Files
- Untarring Support, Livingstone, L2 Tools, & Oliver Tar Source Files
- Building & Installing Stanley VJMPL (and Livingstone, L2 Tools, & Oliver Too)
- .cshrc & .login Files
Build Requirements
Solaris --
C/C++ Compiler & Assembler
SunOS 5.6:
GNU gcc version >= 3.2.2 (not 2.96 or 3.0)
Specify "--enable-shared" (which by default is NOT enabled)
when building gcc.
GNU as version >= 2.9.1
GNU ld version >= 2.9.5
(SunWorkshop native assembler does not work)
SunOS 5.8:
GNU gcc version >= 3.2.2 (not 2.96 or 3.0)
Specify "--enable-shared" (which by default is NOT enabled)
when building gcc.
SunWorkshop native assembler (Sun WorkShop 6 99/08/18)
SunWorkshop native linker (Solaris-ELF (4.0))
(GNU assembler & linker do not work:
undefined reference to `towupper@@SUNW_0.7')
GNU make version 3.78 or better (version 3.77 does not work under Solaris)
http://www.gnu.org/software/make/make.html
CVS
Java Development Kit - JDK 1.4 (actually Oliver & L2 Tools use this)
http://www.java.sun.com/j2se/1.4/
X windows window manager ctwm is known not to work, use CDE or fvwm.
At Ames, the Solaris build is done for you and is located at
/home/serengeti/id0/taylor/released_<version_num>
Linux --
Mandrake version 7.1 or better
RedHat version 6.2 or better
GNU gcc version >= 3.2.2 (not 2.96 or 3.0)
Specify "--enable-shared" (which by default is NOT enabled)
when building gcc.
GNU as >= 2.9.1 (assembler); GNU ld >= 2.9.5
http://www.gnu.org/software/gcc/gcc.html
CVS
ssh
Java Development Kit - JDK 1.4 (actually Oliver & L2 Tools use this)
http://www.java.sun.com/j2se/1.4/
X windows window manager ctwm is known not to work; use fvwm, or KDE.
All Linux hosts must build L2/L2 Tools/Stanley.
Checking Out Stanley VJMPL, Livingstone,L2 Tools, & Oliver Source Files
You must be inside Ames to checkout files from CVS. Otherwise
source "tar balls" are available from Will Taylor.
Solaris 5.8 --
% setenv CVSROOT <user_name>@ids:/home/cvs/ISG-Repository
% setenv CVS_RSH /opt/ssh/bin/ssh
Linux --
% setenv CVSROOT <user_name>@ids.arc.nasa.gov:/home/cvs/ISG-Repository
% setenv CVS_RSH /usr/bin/ssh
% cd <your-root-dir>
To checkout Stanley and tcl/Tk & CORBA support:
% cvs checkout stanley-support-unix (gcc2.95.2/3) # a CVS "module"
% cvs checkout stanley-support-unix-gcc3.2 (gcc3.2.2) # a CVS "module"
% cvs checkout -r L2_2_7_8_2 stanley-vjmpl # a CVS "module"
To checkout C++-Livingstone
% cvs checkout xml-solaris-gcc # a CVS "module"
% cvs checkout -r L2_2_7_8_2 L2 # a CVS "module"
To checkout L2 Tools compiled Java code and data:
% cvs checkout -r L2_2_7_8_2 l2tools-jars # (usually checked out as a part of L2)
% cvs checkout -r L2_2_7_8_2 l2tools-data # (usually checked out as a part of L2)
To checkout Oliver (Stanley II):
% cvs checkout -r L2_2_7_8_2 oliver
Untarring Support, Livingstone, L2 Tools, & Oliver Tar Source Files
Remote (to Ames) users will be e-mailed four gzipped tar files:
support-src-unix-gcc3.2.tar.gz, l2-src_2.7.8.1.tar.gz, l2tools-src_2.7.8.1.tar.gz,
and groundworks-src_2.7.8.1.tar.gz which comprise the source file hierarchy.
They should be unpacked in the same directory to produce:
% cd <your-root-dir>
% ls
l2-regress mba l2-tools support
NOTE: These tar files are built using GNU gtar and GNU gzip.
Unpack them with GNU gunzip and GNU gtar, not unix tar,
or checksum errors may occur. Also CR/LF issues between
unix/linux and windows are handled properly by gunzip/
gtar.
Follow the directions below
(l2-tools/stanley-jmpl/README-STANLEY-VJMPL.txt)
or from our division web server:
http://ic.arc.nasa.gov/projects/L2/doc/starting/stanley-build.html
The support files will not change with new L2/L2 Tools releases,
except for version 2.7.8.1. (MICO-2.3.11, compatible with GNU gcc-3.2.2).
However, with each new release, you will be e-mailed new tar files:
l2-src_<n.m.o>.tar.gz, l2tools-src_<n.m.o>.tar.gz, &
groundworks-src_<n.m.o>.tar.gz.
Discard all the top directories, except for support:
% /bin/rm -rf mba l2-regress l2-tools
Unpack the new tar files and re-build.
NOTE: If you have received this software under the NASA Open Source Agreement,
support-src-unix.tar.gz will be replaced by support-src-unix-no-mico.tar.gz.
See instructions for installing MICO on your system.
Building & Installing Stanley VJMPL (and Livingstone, L2 Tools, & Oliver Too)
To build Stanley:
=================
% cd <your-root-dir>/l2-tools/stanley-jmpl
The first time that Stanley is built, its support applications
(tcl/Tk, itcl, tkTable, mico, and combat) are built.
Solaris --
-------
% ./configure
Linux --
-----
% ./configure
% make # build interpreted Stanley VJMPL
# => stanley-jmpl/bin/stanley-bin
To build C++-Livingstone and L2 Tools/Stanley/Oliver Compatible L2 Shared Library
===================================================================================
% cd <your-root-dir>/mba/cpp
% ./l2_update -t # make sure generated files have the right timestamp
Solaris --
-------
% ./configure --prefix=`pwd` --no-recur --enable-xmpl2l2 --enable-apigen \
--enable-rti --enable-names2ids --enable-l2flight --enable-recovery
Linux --
-----
% ./configure --prefix=`pwd` --enable-xmpl2l2 --enable-apigen \
--enable-rti --enable-names2ids --enable-l2flight --enable-recovery
% make install
L2Test Regression Tests
-----------------------
% cd ../../l2-regress
% touch configure
% ./configure
Run the regression tests:
% ./runtests checkin
To run the recovery tests, you must have built L2 with
--enable-recovery specified in configure
% ./runtests recovery
# executables api_gen, api_scr, l2flight, l2test, names2ids,
# scr2names, and xmpl2l2 will reside in <your-root-dir>/mba/cpp/bin
see <your-root-dir>/mba/cpp/BUILD for further details
L2 Tools & Oliver
-------------------
No build operation is required for L2 Tools or Oliver.
.cshrc & .login Files
The user's login environment requires certain declarations. Here are example
files from a Linux RedHat Enterprise Linux WS release 3 (Taroon Update 4) system.
.cshrc
-----------------------------
#!/bin/tcsh
# Every shell sources .cshrc on startup. Login shells source .login also.
# =======================================================================
# this echo breaks scp from another host to this one
# echo ".cshrc"
# Set default file protection of files created by editors to rw-rw-r-- :
umask 002
setenv HOST_SHORT `hostname | awk -F. '{print $1}' `
# /usr/X11R6/bin not set on remote login
if ($PATH !~ *X11R6*) then
set path=( $path /usr/X11R6/bin )
endif
# /sbin contains ldconfig needed when building mico
if ($PATH !~ *sbin*) then
set path=( $path /sbin )
endif
# .login is not called automatically by Linux
# if (! ${?JAVA_HOME}) then
# call it only for new top-level xterm
### call it all the time to get up to date CLASSPATH without having to
### source ~/.login or logout/login
source $HOME/.login
# echo ".login"
# endif
----------------------------------------------------------------------
.login
------------------------------
#!/bin/tcsh
# echo ".login"
# .login
# it is called by cshrc
# what it sets is applied to all shells/windows opened on the host r/login'ed to
# whereas cshrc is called for each shell started, and by certain unix functions
setenv FONTPATH /usr/X11R6/lib/X11/fonts/misc
setenv MANPATH /usr/man:/usr/local/man:/usr/X11R6/man:/usr/share/man
setenv LD_LIBRARY_PATH /usr/X11R6/lib:/usr/lib:/usr/local/lib
setenv JAVA_HOME /usr/java/j2sdk1.4.2_05
# default to native threads - required by Tcl
setenv THREADS_FLAG native
setenv CC gcc # configure uses path to find proper version
setenv CXX g++ # configure uses path to find proper version
setenv TERM xterm
------------------------------------------------------------------------------------
Back to Main Page