Building Stanley & Oliver on Unix/Linux

Back to Main Page

Contents


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

 

 

Last updated April 20, 2006. Direct feedback to william.m.taylor@nasa.gov