This is release 2.3 of GLU, a set of BDD packages and low-level utilities. If you downloaded this to compile it with VIS, stop here -- see the README file in the VIS distribution for build and installation instructions. --------------------------------------------------------------------------- To build GLU, you will need * An ANSI C compiler (gcc will do, as will several versions of cc) * GNU's make utility * GNU's gzip utility * Approximately 20 MB of free disk for the build * Approximately 10 MB of free disk space for the installation --------------------------------------------------------------------------- * Useful Addresses For the most recent version of GLU: ftp://vlsi.colorado.edu/pub/vis/ The VIS home page: http://vlsi.colorado.edu/~vis/ For the most recent version of the GNU tools: http://www.gnu.org --------------------------------------------------------------------------- This is the list of architecture/operating system/compiler combinations we have tested. (For installation with compilers marked with (*) please refer to the Platform Specific Instructions.) * Intel ia32 / Linux / gcc, g++ * Intel x86_64 / Linux / gcc, g++, icc(*) * Intel ia32/x86_64 / Windows XP with Cygwin 1.5.16-1 / gcc, g++(*) * Intel ia32 / Mac OS X / gcc(*) The following platforms are no longer supported, but should still work. * IBM RISC System/6000 / AIX Version 4.3.3 / gcc(*) * Intel ia64 / Linux / gcc * Sun Sparc/ Solaris 2.8 / gcc, g++, cc(*) The following instructions are for the generic build process. Before building the tool please refer to the section "* Platform Specific Instructions". --------------------------------------------------------------------------- To build GLU for a single operating system: * Download the most recent versions of GLU from the address above * Move to where you would like the GLU source to reside and unpack the distribution: % cd /home/vis # for example % gzip -dc /tmp/glu-2.3.tar.gz | tar xf - * Move into the glu-2.3 directory and run configure, which will determine some system-specific parameters and create the Makefile: % cd glu-2.3 % ./configure By default, this will use your system's native compiler. To use gcc, % ./configure --enable-gcc (You may wish to do this because you don't have the native compiler installed or because it is not ANSI.) Note: For some platforms where VIS is not supported for the native compiler, the default compiler is set to gcc. You can also compile glu with g++. To do so, % ./configure --enable-gcc=g++ Note: The Makefile by default uses the "-g" option for compilation. The resultant executables may be much larger than those generated without using the "-g" option. Using the "-g" option however, provides debugging capabilities. Note: The following is of interest only to people developing code within vis. For full debugging support, specify --with-comp-mode=debug. This will turn off optimization, and turn on the assertions (sanity checks) in the code. Similarly, --with-comp-mode=purify and --with-comp-mode=quantify will link vis with IBM Rational's Purify or Quantify tool. * Build the GLU system by running GNU's gmake utility: % gmake You may not have GNU make installed on your system under the name 'gmake' -- try make. If this fails, you probably need the latest version of GNU's make program -- download it from the address above. * (Optional) Test the build by invoking % gmake check This make take some time on slower machines. * Install the GLU library and its headers: % gmake install # optional By default, this will put binaries, libraries, headers, and help files in /usr/local/bin, /usr/local/lib, /usr/local/include, and /usr/local/share respectively. To choose a different location, provide a default prefix when you invoke configure, e.g., to install in /projects/glu/bin, etc., use % ./configure --prefix=/projects/glu when configuring GLU. --------------------------------------------------------------------------- To install GLU on multiple operating systems off the same source tree, see the file "INSTALL" in this directory. --------------------------------------------------------------------------- * Platform Specific Instructions Note: some instructions apply to platforms we no longer support. ** Little-endian machines: vis-cal will occasionally fail when compiled with --with-comp-mode=debug on little-endian machines like the Alphas and the Intel ix86 CPUs. ** x86_64 machines: Compilation is possible in both 64 and 32-bit modes. For 32-bit compilation with gcc, make sure the appropriate libraries are installed. On Ubuntu, for instance, you need the multilib-g++ package. Configure with --enable-gcc="gcc -m32". With the Intel compiler (icc), the choice between 64 and 32-bit modes is made when the compiler variables are initialized. Once that is done, configure with --enable-gcc=icc. ** Mac OS X: For correct operation of the CMU BDD package, uncomment the definition of USE_MALLOC_FREE at line 126 of src/mem/memint.h. ** Solaris: If Sun's C compiler is not installed on your system, use gcc (./configure --enable-gcc). Warnings about redefined symbol are harmless, so are the warnings that say "end-of-loop code not reached". The target check-cmu (which is executed as part of "make check") fails with Solaris's native compiler unless -dalign is removed from CFLAGS. Although vis-cmu executes correctly even if compiled with -dalign, if you plan to extensively use vis-cmu (especially develop new code that uses MTBDDs) you should not compile with -dalign. The sun cc compiler (Workshop 6 update 1) on ix86 appears to have a bug in the optimization routines. The -xO4 an -xO5 compiler options will make vis crash. As a safety precaution, we have changed the optimization flag to be -xO3 for all Sun platforms that use the cc compiler. You can try higher optimization flags on your machine. In general, it is hard to determine cc options that will give optimal results on every platform, so it may pay off to play around with the optimization options. ** MS Windows with Cygwin: You need Red Hat's Cygwin environment (freely available from http://www.cygwin.com) to build GLU and VIS. With Cygwin the configuration script automatically selects gcc. ** AIX: The configuration script automatically selects gcc. The cal package occasionally produces incorrect result if compiled with optimization turned on. If you plan to use the cal BDD package with AIX, you should configure glu with --with-comp-mode=debug. ** DEC Alpha: Warnings about MIN and MAX are harmless. Warnings in the cuBdd package related to floating point are also harmless. The cc compiler will use 32-bit pointers by default. To use 64-bit pointers, invoke configure as follows: % ./configure --enable-64 The gcc compiler will always use 64-bit pointers.