This file provides instruction on the installation of 
the Windows port of the CU Decision Diagram Package CUDD v.2.3.1 
and the use of this port with MSVC++ 6.0 console-application projects 


The original version of CUDD is distributed and supported by 
Fabio Somenzi <Fabio@Colorado.EDU>, http://vlsi.colorado.edu/~fabio/
who bears no responsibility for this port.


INSTALLATION OF CUDD LIBRARY:

(1) Download the file "cudd231.zip" to your computer
    from http://www.ee.pdx.edu/~alanmi/research/softports.htm

(2) Unzip the file into the directory, which will become the home directory
    of the CUDD static library

(3) Open "cudd.dsw" in Microsoft Visual C++ 6.0 (File -> Open Workspace...)

(4) Compile both debug and release versions of the library by selecting
    the approapriate configuration in Build -> Set Active Configuration
    and executing command Build -> Rebuild All
    Compilation of the release version takes approxiamately 12 seconds 
    on a 933MHz Pentium III PC.	The list of 15 warnings produced by 
    compiling the release version is in the file "port_compiler_warnings.txt".

(5) If you use a special location on your computer to store the libraries,
    you may need to manually copy the resulting libraries from the Debug 
    and Release directories of the CUDD home directory to the special location.


LINKING YOUR PROJECT TO CUDD LIBRARY:

(1) Create an empty project of type "Console Application".    

(2) Add the code of your application to this project. It is assumed
    that your application involves manipulation of {A,B,Z}DDs using
    the functionality of the CUDD package.

(3) Add "<your_library_path>/cudd/include" to 
    Project -> Settings -> C/C++ -> Additional include directories
    in both debug and release version of your project

(4) Add "<your_library_path>/cudd/Debug/cudd.lib" to
    Project -> Settings -> Link -> Object/library modules
    in the debug version of your application

(5) Add "<your_library_path>/cudd/Release/cudd.lib" to
    Project -> Settings -> Link -> Object/library modules
    in the release version of your application

(6) Depending on your project, you may need to define 
    "__STDC__" in Project -> Settings -> C/C++ -> Preprocessor definitions

(7) Compile and link the debug/release versions of your application.


This way of using CUDD on Windows has been extensively tested since June 2000. 
The Windows projects used about 75% of functionality of CUDD - including 
the basic manipulation of {A,B,Z}DDs, dynamic variable reordering, printing, 
visualization of graphs via DOT files, etc. - and no problems have been observed.


If you would like to repeat the process of porting CUDD 2.3.1. to Windows
starting from the code available at: ftp://vlsi.colorado.edu/pub/cudd-2.3.1.tar.gz
follow the steps described in the file "port_code_changes.txt".


Good luck!

Alan Mishchenko
Portland State University
Electrical and Computer Engineering
<alanmi@ee.pdx.edu>

May 19, 2001

This file can be found at http://www.ee.pdx.edu/~alanmi/research/softports.htm

