README.COMPILE This document contains information on how to install MissionLab version 4.0. It is identical to the information included in the MissionLab Manual ([MissionLab home]/doc/mlab_manual.ps). Please go through the following steps to compile and install MissionLab on your system: 1. Ensure you have the required software. We have compiled MissionLab with the following operating system and support software. It will probably compile with later releases, but minor changes might be necessary. - RedHat Linux 6.0 or higher - GNU gcc 2.91.66 (egcs 1.1.2) - GNU flex 2.5.4 - GNU bison 1.27 - X11R5 or X11R6 - perl 4 or 5 - tcsh or csh - RedHat Motif 2.0 or LessTif 0.88.x 2. Obtain the MissionLab distribution (if you haven't yet). You can download the latest distribution of MissionLab (mlab4.0.tar.gz) from our web page: http://www.cc.gatech.edu/aimosaic/robot-lab/research/MissionLab/ Note: Supporting Software is included with the MissionLab distribution. You are not required to take any special steps regarding this software, but we list it here to credit the developers and point out copyright restrictions: - IPT - A version of IPT is part of the MissionLab source tree. IPT is an interprocess communication system developed at CMU. Also see the file README.IPT. This release of the MissionLab was developed with version 8.4 of IPT. If you wish, you can ftp the package from: ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/data/anonftp/user/jayg/ (get ipt-8-4.tar.gz and IPTManual.ps.gz). Due to copyright restrictions, IPT MAY NOT BE USED FOR COMMERCIAL PURPOSES. - CThreads - A version of CThreads is now part of the MissionLab source tree. It should compile directly on Linux (or SunOS). CThreads is a lightweight process threads package from Georgia Tech which operates under Linux, SunOS and many other OSs. If you wish, you can ftp the package from: ftp://ftp.cc.gatech.edu pub/software/cthreads/ithreads distribution.tar.gz - sphigs - Sphigs and srgp are used for the 3D display option. They are included in the MissionLab source tree. Sphigs can be found at ftp://ftp.cs.brown.edu. 3. Delete any old versions of MissionLab in your source tree. Old versions may have files incompatible with the new version. 4. Unpack the MissionLab distribution. Make a directory for MissionLab and copy the distribution (mlab-4.0.tar.gz) there. This directory will be referred to as the "MissionLab home" directory. Uncompress and untar the distribution as follows: cd mission (or wherever your MissionLab home is) tar -xvzf mlab-4.0.tar.gz 5. Edit a configuration file. Edit [your MissionLab home]/src/make.include to point to the correct places for your system. The makefiles in the src directories reference these files, so changing them once should fix all the makefiles. The following are key places in the make.include to look for: - Set the MLAB HOME variable to point to your home directory for MissionLab. This should include the full directory path. - Set XDIR to point to the X directory on your system. This is usually either /usr/local/X11R5 or /usr/local/X11R6. - If the program will run on ONLY one type of machine and one windowing environment, set the MLAB STATIC flag to be empty. This will force MissionLab to use shared libraries. Static linking has the advantage of enabling a compiled version of MissionLab to run on similar systems with slightly differing runtime libraries (e.g. openwindows vs X11R5). Some distributions of linux only include shared libraries, so static linking won't work. - If you are using different versions of gcc, you will probably need to edit EXTRA INCS to fix the references to the gcc include directories. - If you have trouble compiling any of the telop code (in src/telop), you can disable telop by commenting out several lines in the makefiles in the [your MissionLab home]/src/robot and [your MissionLab home]/src/mlab directories (look for TELOP). 6. Compile: Compile MissionLab with the following commands: tcsh (or csh) - Make sure you are using C-shell cd src make veryclean - To ensure all old stuff is cleaned out. ./configure.cthreads - To configure Cthreads, you only need to run this once. make depend - This may generate numerous warnings that can be safely ignored. make all - This will begin the compile of the entire system. 7. Set up your user environment. - Add [your MissionLab home]/bin into your execution path. It is not necessary to move the executable files to the bin directory because there are symbolic links from the bin directory to the executable files. - Add "." into your execution path. 8. Setup the CfgEdit environment (optional). If you are planning to use CfgEdit to create your own robot executables, you may want to setup the environment for CfgEdit at this point. Edit ".cfgeditrc" in [your MissionLab home] /src/cfgedit. In the file, replace all "/net/hr1/robot/mission"s with the full path of your "MissionLab home". At this point, the installation is completed, and you should be able to run the MissionLab system.