INSTALL

Go to the documentation of this file.
00001 /*!\page WINDOWS_INSTALL Microsoft C++ INSTALL
00002 
00003 <h2>
00004 Lexer / Parser
00005 </h2>
00006 
00007 You need to create the lexers / parsers for the supported input languages
00008 manually from the lex / yacc specifications.
00009 
00010 Note: This needs to be done once before the first built,
00011 and then each time the lexer / parser specifications are changed.
00012 That is, if you either change the source yourself, or update the CVC3 source.
00013 
00014 There are two tested ways to create the lexers / parsers:
00015 
00016 <h3>
00017 Cygwin
00018 </h3>
00019 
00020 If you have <a href="http://www.cygwin.com">cygwin</a> installed,
00021 you can compile CVC3 as described in \ref INSTALL.
00022 The created lexer / parser files can then be used in the MS C++ built as well.
00023 
00024 You actually need only to do
00025 
00026 <pre>
00027   ./configure
00028 </pre>
00029 
00030 in the root directory, and then in src/parser
00031 
00032 <pre>
00033   make
00034 </pre>
00035 
00036 
00037 <h3>
00038 Windows versions of lex / yacc
00039 Cygwin
00040 </h3>
00041 
00042 Otherwise, you need to get windows versions of lex / yacc.
00043 You can get flex and bison binaries (using the setup packages is recommend) from
00044 
00045 http://gnuwin32.sourceforge.net/packages/flex.htm
00046 
00047 http://gnuwin32.sourceforge.net/packages/bison.htm
00048 
00049 Make sure that flex and bison are in your path.
00050 How to change the environment variable 'path' in Windows is described at
00051 
00052 http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true
00053 
00054 Then execute
00055 
00056 <pre>
00057   make_parser.bat
00058 </pre>
00059 
00060 in
00061 
00062 <pre>
00063   src/parser/
00064 </pre>
00065 
00066 to create the lexer / parser.
00067 
00068 The script should output no error messages,
00069 potentially except for warnings about shift/reduce conflicts,
00070 and create the following files (in src/parser):
00071 
00072 <pre>
00073   lexLisp.cpp
00074   lexPL.cpp
00075   lexsmtlib.cpp
00076   parseLisp.cpp
00077   parsePL.cpp
00078   parsesmtlib.cpp
00079   parseLisp_defs.h
00080   parsePL_defs.h
00081   parsesmtlib_defs.h
00082 </pre>
00083 
00084 This has been tested with flex 2.5.4, bison 2.1 and bison 2.3.
00085 
00086 
00087 <h2>
00088 Installation
00089 </h2>
00090 
00091 The Microsoft C++ port has been developed in Visual Studion 2005,
00092 and the source is organized in Visual Studio projects.
00093 
00094 
00095 <h3>
00096 Projects
00097 </h3>
00098 
00099 The sourse code is organized into the following projects
00100 (each exists in a Debug and a Release version):
00101 
00102 1) C++
00103 
00104 - cvc3lib
00105 
00106   CVC3 as a C++ library.
00107 
00108 - cvc3
00109 
00110   a standalone command line version of CVC3, using cvc3lib.
00111 
00112 - cvc3test
00113 
00114   regression tests for cvc3lib.
00115 
00116 
00117 2) CLI
00118 
00119 This is a CLI wrapper of CVC3, i.e. it allows to use CVC3 as a library in .NET
00120 
00121 Note: it can currently not be used in implementations of the CLI other than
00122 Microsoft's, as the wrapper is written in Microsoft's C++ extension (C++/CLI),
00123 which is at the moment not supported by e.g. Mono.
00124 
00125 The CLI wrapper mirrors the structure of the C++ projects:
00126 
00127 - cvc3libcli
00128 
00129   CVC3 as a CLI library.
00130   provides C++/CLI wrapper classes of the cvc3lib C++ classes
00131   (written in C++/CLI).
00132 
00133 - cvc3cli
00134 
00135   a standalone command line version of CVC3, using cvc3libcli
00136   (written in C# 2.0).
00137 
00138 - cvc3testcli
00139 
00140   regression tests for cvc3libcli
00141   (written in C# 2.0).
00142 
00143 
00144 
00145 <h3>
00146 Stack Limit
00147 </h3>
00148 
00149 The stack size limit of the cvc3cli binary is not sufficient for complex examples.
00150 This is automatically adjusted during the Visual Studio build process
00151 by calling the file
00152 
00153 <pre>
00154   windows/set_stack_size.bat
00155 </pre>
00156 
00157 Note:
00158 This file needs to set the path to the Visual Studio Tools.
00159 If your setup is different from the one assumed here,
00160 the built of the cvc3cli project might fail.
00161 In that case you need to edit the file set_stack_size.bat accordingly.
00162 
00163 
00164 
00165 <h3>
00166 Building with Visual Studio 2005
00167 </h3>
00168 
00169 Open the solution file (containing all the projects) in Visual Studio:
00170 
00171 <pre>
00172   windows/cvc3.sln
00173 </pre>
00174 
00175 Built the projects you need,
00176 e.g. the cvc3 project to built the CVC3 command line tool.
00177 
00178 All binaries will be put in the folder
00179 
00180 <pre>
00181   windows/release
00182 </pre>
00183 
00184 resp.
00185 
00186 <pre>
00187   windows/debug
00188 </pre>
00189 
00190 
00191 
00192 <h3>
00193 DLL Setup
00194 </h3>
00195 
00196 By default cvclib is statically linked to cvc3.
00197 If you prefer dynamic linkage you need to do the following before the build:
00198 
00199 - set in the cvc3lib properties
00200 
00201   Configuration Properties->General->Configuration Type
00202 
00203   to Dynamic Library
00204 
00205 - uncomment in the header file os.h the line
00206 
00207 <pre>
00208   // #define CVC_DLL_LINKAGE
00209 </pre>
00210 
00211   i.e. change it to
00212 
00213 <pre>
00214   #define CVC_DLL_LINKAGE
00215 </pre>
00216 
00217   this file can be found in the file system at
00218 
00219 <pre>
00220   windows/include/os.h
00221 </pre>
00222 
00223   resp. in the cvc3lib project in the header files folder.
00224 
00225 - remove the files
00226 
00227 <pre>
00228   windows/cvc3lib/Debug/cvc3lib.dll.embed.manifest.res
00229   windows/cvc3lib/Release/cvc3lib.dll.embed.manifest.res
00230 </pre>
00231 
00232   this should not be necessary in general,
00233   but in some cases when executing the cvc3 project (even from Visual Studio)
00234   the error message 'msvcp80d.dll not found' might occur.
00235   Removing these files and doing the build again should fix this
00236   (see http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=15218&SiteID=1).
00237 
00238 
00239 
00240 <h3>
00241 64Bit
00242 </h3>
00243 
00244 Compiling CVC3 for a 64Bit platform has not been tested.
00245 
00246 
00247 <h3>
00248 GMP
00249 </h3>
00250 
00251 GMP is currently not supported, native arithmetic support is used.
00252 See the GMP section in \ref INSTALL for details.
00253 
00254 
00255 <h2>
00256 Deployment
00257 </h2>
00258 
00259 The Visual Studio solution contains two projects
00260 which create installers for the cvc3 and cvc3cli project.
00261 These are called cvc3 and cvc3cli as well.
00262 If your version of Visual Studio supports this,
00263 you can use these projects to create and installers for the cvc3 binaries.
00264 Note that their installation might require administrative rights.
00265 
00266 For details see
00267 
00268 How to: Deploy using a Setup and Deployment Project 
00269 http://msdn2.microsoft.com/en-us/library/ms235317(VS.80).aspx
00270 
00271 
00272 Scenarios for Deployment Examples
00273 http://msdn2.microsoft.com/en-us/library/aa985617(VS.80).aspx
00274 
00275 An alternative is to just take the binaries and libraries 
00276 and install the C-runtime:
00277 
00278 http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
00279 
00280 http://msdn2.microsoft.com/en-us/library/ms235624(VS.80).aspx
00281 
00282 
00283 Note: assemblies are currently not signed, although you might want to do so:
00284 
00285 http://msdn2.microsoft.com/en-us/library/wd40t7ad(VS.80).aspx
00286 
00287 
00288 
00289 <h2>
00290 Documentation
00291 </h2>
00292 
00293 See the Documentation section in \ref INSTALL for details.
00294 
00295 Note: Doxygen documentation is currently not generated for the CLI API.
00296 
00297 <h2>
00298 Getting help
00299 </h2>
00300 
00301 If you find a problem with the instructions in this installation guide,
00302 or have suggestions for improvement,
00303 please send an email to cvc-bugs@cs.nyu.edu resp. cvc-devel@cs.nyu.edu.
00304 
00305 */

Generated on Tue Jul 3 14:33:37 2007 for CVC3 by  doxygen 1.5.1