# Copyright 1993-1999, by the Cecil Project # Department of Computer Science and Engineering, University of Washington # See the $VORTEX_HOME/notes/LICENSE file for license information. To install the Vortex distribution, follow these steps. To run Vortex on multiple architectures, read the note at the end. See the README file in this directory for architecture/OS/front-end- specific notes. You need CYGWIN32 tools for Windows NT. 1) Create a directory for the installation - $VORTEX_BASELINE You will need 50-150 MB of disk space, depending on your architecture and selection of front-ends. In our notes, $VORTEX_BASELINE stands for the the chosen directory. 2) Download the tar files from the release web page or the FTP directory: http://www.cs.washington.edu/research/projects/cecil/www/Release ftp://hobbes.cs.washingtion.edu/pub/cecil You need to download the following files corresponding to your architecture/OS: - one file with the common components (Vortex-Vortex*.gz) - one file per each front-end you are interested in (e.g., Vortex-Cecil*.gz) 3) Unpack and untar the downloaded files in $VORTEX_BASELINE; check file permissions For example: cd $VORTEX_BASELINE; gunzip -c TAR-FILE.gz | tar xBpf - Note: the files in the distribution come user- and group-writable, which is suitable for shared group projects. If this is inappropriate for you, you may want to run `chmod' or `chgrp' recursively on the distribution before proceeding. For example, to disable group-write: chmod -R g-w $VORTEX_BASELINE; umask 022 4) Edit $VORTEX_BASELINE/bin/shell/vortex.cshrc to configure your installation Change setenv VORTEX_BASELINE /projects/cecil/vortex-root/vortex to be setenv VORTEX_BASELINE (By default, the VORTEX_HOME environment variable will be set from VORTEX_BASELINE. If invididual users desire their own copy of the Vortex tree (as when working on Vortex under CVS), then VORTEX_HOME can be set manually to each user's copy. All Vortex scripts and programs use VORTEX_HOME as the root of the current copy of Vortex.) You may also need to change setenv VORTEX_MAKE gmake setenv VORTEX_SH /bin/sh setenv VORTEX_CSH /bin/csh setenv VORTEX_TCSH /usr/local/bin/tcsh setenv VORTEX_PERL /usr/local/bin/perl to be wherever your local version of GNU make, a sh-like shell, a csh-like shell, a tcsh-like shell, and perl are. (If you don't have tcsh, set VORTEX_TCSH to the value of VORTEX_CSH instead, delete the 'if (-l $f) ...' test in $VORTEX_BASELINE/bin/shell/MakeScriptWrappers, and see the note below about the pm* scripts. If you don't have perl, then don't define this variable; you won't be able to run some support scripts, e.g. those for processing Vortex execution profiles.) 5) You may need to edit some of: (*) $VORTEX_BASELINE/runtime/makefiles/ArchConfig.$VORTEX_ARCH $VORTEX_BASELINE/runtime/makefiles/ArchConfig.default $VORTEX_BASELINE/runtime/makefiles/VortexConfig.$VORTEX_ARCH $VORTEX_BASELINE/runtime/makefiles/VortexConfig.default to redefine ARCH_CC, ARCH_CPLUSPLUS, and ARCH_AS if the default executable names 'gcc', 'g++', and 'as' are inappropriate for your site. You should only change the path/name of the compiler/assembler, not the additional -D command line arguments that are being passed to it. You also may need to adjust the list of libraries to link with (VORTEX_LINK_LIBS in VortexConfig.default) for different versions of gcc/g++. (*) $VORTEX_ARCH is the name denoting your architecture/OS - it is part of the name of the tar files that you download, and is also printed by $VORTEX_BASELINE/bin/shell/vortex-arch. 6) Do any front-end- or target-specific manual configuring: . If installing the C++ front-end, then you need to read the setup notes in the $VORTEX_BASELINE/C++/README file for some manual changes you need to make to adjust some compilation scripts to your local environment before proceeding to the next step (or at least expect errors when trying to set up the C++ front-end, which you can ignore while working on other Vortex front-ends until you want to work on getting the C++ front-end working). . If installing the ParcPlace Smalltalk front-end, then you need to read the $VORTEX_BASELINE/Smalltalk/parcplace/README file. (You need not do this before running the rest of the installation procedures, but you do before trying to compile any Smalltalk programs.) . If installing on Linux, see the $VORTEX_BASELINE/notes/README file for some hand-patches that may be needed. Try doing the next step without making the hand changes, but be prepared for compilation errors that may cause you to make the changes and rerun the next step. 7) Execute $VORTEX_CSH -f $VORTEX_BASELINE/bin/shell/SETUP where $VORTEX_CSH is whatever you defined it to be in vortex.cshrc. SETUP will compile Vortex tools and libraries as necessary; this will take some time. If there are any problems, correct them and rerun SETUP again. If you want to force SETUP to run again on a given front-end, give it as an argument (use "Vortex" for the common components of the distribution). For example: $VORTEX_CSH -f $VORTEX_BASELINE/bin/shell/SETUP Vortex Cecil You can compare your output against the sample output in $VORTEX_BASELINE/notes/SETUP..sample-output. Certain differences are expected, such as dates, times, sizes, path names (especially $VORTEX_HOME), and architecture-specific names and compiler flags. Also, different sets of runtime libraries are compiled for different architectures. If you don't get the paths to your csh, perl, etc., right the first time, you will need to go to $VORTEX_BASELINE/{,*/}bin/shell/$VORTEX_ARCH and manually remove the wrappers that SETUP creates there, before re-running SETUP. If you get C/C++ compilation errors during SETUP, be sure to consult the Architecture/OS notes in the README file in this directory to see if there are any known hand-patches that may fix the errors, for your OS and C/C++ compiler dialect. (Known patches exist for some versions of the Linux configuration, for instance.) 8) If you want to enable parallel phase 2 compiles using pm, you need to edit the files $VORTEX_BASELINE/bin/shell/compileMachineNames and $VORTEX_BASELINE/bin/shell/linkMachineName to change the lists of UW-specific compute servers into lists of machines at your installation. Also, the scripts for parallel compiles, pm and pmwait (found in $VORTEX_BASELINE/bin/shell), are both currently written to use tcsh. If your site does not have tcsh, you can use csh instead (e.g., by defining VORTEX_TCSH to be $VORTEX_CSH), but you may have to always give pm/pmwait an explicit -d command line argument specifiying the directory in which the parallel compiles should be run. Also, `pm' assumes that your default shell is csh-like, and that your .cshrc contains something like "source vortex.cshrc". AFTER you finish the installation, you can start compiling/running with Vortex sample or your own programs, as described in the README files for each front-end. For Cecil programs, you can follow instructions in QUICK-START-CECIL, QUICK-START-VORTEX, or in the Vortex user manual. -------------- --- NOTES --- -------------- We use gcc/g++ (either 2.6.3 or 2.7.2.1) and gmake (either 3.71, 3.74, or 3.75) to compile the C++ files produced by Vortex. Both gcc/g++ and gmake are available from ftp://prep.ai.mit.edu/pub/gnu. You may be able to use other compilers and make implementations successfully, however we recommend using gcc/g++ and gmake. It is possible to run Vortex on several different architectures using a single shared directory tree. To set up a multi-architecture shared tree, the above instructions are modified as follows: (1) Download and untar, in the same directory, the desired front-end tar files *for each architecture*. (2) When modifying vortex.cshrc during the set-up process above, you may need to make the settings architecture-dependent, in a manner similar to how $VORTEX_BASELINE/bin/shell/vortex-arch works. (3) Run SETUP *on a machine of each architecture*. If you often use Vortex's utilities from your shell prompt, you may find it convenient to include the definitions in $VORTEX_BASELINE/bin/shell/vortex.cshrc in your shell environment, for example, by source'ing this file from your .cshrc. If you are interested in porting Vortex to a new architecture/OS combination, please contact us.