Microsoft C++ INSTALL

Lexer / Parser

You need to create the lexers / parsers for the supported input languages manually from the lex / yacc specifications.

Note: This needs to be done once before the first built, and then each time the lexer / parser specifications are changed. That is, if you either change the source yourself, or update the CVC3 source.

There are two tested ways to create the lexers / parsers:

Cygwin

If you have cygwin installed, you can compile CVC3 as described in INSTALL. The created lexer / parser files can then be used in the MS C++ built as well.

You actually need only to do

  ./configure

in the root directory, and then in src/parser

  make

Windows versions of lex / yacc Cygwin

Otherwise, you need to get windows versions of lex / yacc. You can get flex and bison binaries (using the setup packages is recommend) from

http://gnuwin32.sourceforge.net/packages/flex.htm

http://gnuwin32.sourceforge.net/packages/bison.htm

Make sure that flex and bison are in your path. How to change the environment variable 'path' in Windows is described at

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true

Then execute

  make_parser.bat

in

  src/parser/

to create the lexer / parser.

The script should output no error messages, potentially except for warnings about shift/reduce conflicts, and create the following files (in src/parser):

  lexLisp.cpp
  lexPL.cpp
  lexsmtlib.cpp
  parseLisp.cpp
  parsePL.cpp
  parsesmtlib.cpp
  parseLisp_defs.h
  parsePL_defs.h
  parsesmtlib_defs.h

This has been tested with flex 2.5.4, bison 2.1 and bison 2.3.

Installation

The Microsoft C++ port has been developed in Visual Studion 2005, and the source is organized in Visual Studio projects.

Projects

The sourse code is organized into the following projects (each exists in a Debug and a Release version):

1) C++

CVC3 as a C++ library.

a standalone command line version of CVC3, using cvc3lib.

regression tests for cvc3lib.

2) CLI

This is a CLI wrapper of CVC3, i.e. it allows to use CVC3 as a library in .NET

Note: it can currently not be used in implementations of the CLI other than Microsoft's, as the wrapper is written in Microsoft's C++ extension (C++/CLI), which is at the moment not supported by e.g. Mono.

The CLI wrapper mirrors the structure of the C++ projects:

CVC3 as a CLI library. provides C++/CLI wrapper classes of the cvc3lib C++ classes (written in C++/CLI).

a standalone command line version of CVC3, using cvc3libcli (written in C# 2.0).

regression tests for cvc3libcli (written in C# 2.0).

Stack Limit

The stack size limit of the cvc3cli binary is not sufficient for complex examples. This is automatically adjusted during the Visual Studio build process by calling the file

  windows/set_stack_size.bat

Note: This file needs to set the path to the Visual Studio Tools. If your setup is different from the one assumed here, the built of the cvc3cli project might fail. In that case you need to edit the file set_stack_size.bat accordingly.

Building with Visual Studio 2005

Open the solution file (containing all the projects) in Visual Studio:

  windows/cvc3.sln

Built the projects you need, e.g. the cvc3 project to built the CVC3 command line tool.

All binaries will be put in the folder

  windows/release

resp.

  windows/debug

DLL Setup

By default cvclib is statically linked to cvc3. If you prefer dynamic linkage you need to do the following before the build:

Configuration Properties->General->Configuration Type

to Dynamic Library

  // define CVC_DLL_LINKAGE

i.e. change it to

  define CVC_DLL_LINKAGE

this file can be found in the file system at

  windows/include/os.h

resp. in the cvc3lib project in the header files folder.

  windows/cvc3lib/Debug/cvc3lib.dll.embed.manifest.res
  windows/cvc3lib/Release/cvc3lib.dll.embed.manifest.res

this should not be necessary in general, but in some cases when executing the cvc3 project (even from Visual Studio) the error message 'msvcp80d.dll not found' might occur. Removing these files and doing the build again should fix this (see http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=15218&SiteID=1).

64Bit

Compiling CVC3 for a 64Bit platform has not been tested.

GMP

GMP is currently not supported, native arithmetic support is used. See the GMP section in INSTALL for details.

Deployment

The Visual Studio solution contains two projects which create installers for the cvc3 and cvc3cli project. These are called cvc3 and cvc3cli as well. If your version of Visual Studio supports this, you can use these projects to create and installers for the cvc3 binaries. Note that their installation might require administrative rights.

For details see

How to: Deploy using a Setup and Deployment Project http://msdn2.microsoft.com/en-us/library/ms235317(VS.80).aspx

Scenarios for Deployment Examples http://msdn2.microsoft.com/en-us/library/aa985617(VS.80).aspx

An alternative is to just take the binaries and libraries and install the C-runtime:

http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en

http://msdn2.microsoft.com/en-us/library/ms235624(VS.80).aspx

Note: assemblies are currently not signed, although you might want to do so:

http://msdn2.microsoft.com/en-us/library/wd40t7ad(VS.80).aspx

Documentation

See the Documentation section in INSTALL for details.

Note: Doxygen documentation is currently not generated for the CLI API.

Getting help

If you find a problem with the instructions in this installation guide, or have suggestions for improvement, please send an email to cvc-bugs@cs.nyu.edu resp. cvc-devel@cs.nyu.edu.


Generated on Tue Jul 3 14:35:21 2007 for CVC3 by  doxygen 1.5.1