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 */