<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Build procedure for MSVC compiler</TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <H2>VisualStudio build Notes</H2> <hr/> Last Update: May 27 2006<br> Author: Blas Rodriguez Somoza <a href="">blas@puertareal.com</a><br> <h3>0.-Introduction</h3> <blockquote> <p>There are two VisualStudio builds, msvc6 and msvc7. The msvc7 build is the official build of FB in win32.</p> <p>Under the directory where you put Firebird2 sources you will see the following directories</p> <ul> <li>builds</li> <ul> <li>mac_os_x (Mac os X build scripts)</li> <li>posix (Posix build scripts)</li> <li>win32 (Msvc build scripts)</li> <li>.....</li> </ul> <li>doc</li> <ul> <li>sql.extensions</li> </ul> <li>src</li> <ul> <li>....</li> </ul> <li>lang_helpers</li> <ul> <li>....</li> </ul> <li>examples</li> <ul> <li>....</li> </ul> </ul> <p>After you build Firebird you also will see the following temporary directories</p> <ul> <li>gen (cpp files generated from epp, exe and fdb's.)</li> <li>temp (compiler temporary)</li> <li>output (build output)</li> </ul> </blockquote> <h3>1.-TODO</h3> <blockquote> </blockquote> <h3>2.-Prerrequisites</h3> <blockquote> <p>To prepare the standard msvc build of FB you need:</p> <ul> <li>Microsoft VisualStudio 6 or 7.</li> <li>sed unix utility</li> </ul> <p>If you intend to prepare an installable build, you will need innosetup.</p> <p>To download the utilities use the following links</p> <ul> <li>My Inno setup extensions 3.0.6.2 <a href="http://www.wintax.nl/isx/">http://www.wintax.nl/isx/</a></li> <li>Sed <a href="http://gnuwin32.sourceforge.net/">http://gnuwin32.sourceforge.net/</a></li> </ul> </blockquote> <h3>2.-Installing the utilities</h3> <blockquote> <h4>2.1.-Visual Studio</h4> <ol> <li>Install VisualStudio 6/7</li> <li>If you use VisualStudio 6, before building Firebird and its tools, you need to apply some patches from the following site<br> <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a> </li> </ol> <h4>2.2.-Sed</h4> <h4>2.3.-Inno setup</h4> </blockquote> <h3>4.- Building</h3> <blockquote> <h4>4.1.-Standard build</h4> <ol> <li>Open a command line window.</li> <li>Go to the firebird2\builds\win32 directory.</li> <li>Run the following batches in order (your version of VisualStudio is detected automatically)</li> <ol> <li>make_icu.bat [DEBUG] [CLEAN]</li> <li>make_boot.bat [DEBUG] [CLEAN]</li> <li>make_all.bat [DEBUG] [CLEAN]</li> </ol> </ol> <ul> <p>After the build finish, an output directory with the binaries is created below your firebird2 directory.</p> <li>To make a clean build from scratch after making changes to the code use the clean_all.bat script</li> </ul> <h4>4.2.-Parser rebuild</h4> <p>If you change parser.y you will need to rebuild parser.cpp, to do so use parse.bat</p> <h4>4.3.-Examples build</h4> <p>The examples build prepare two databases that will be needed to compile the examples in a distribution. If you intend to prepare a distribution then run the examples batch before:</p> <ol> <li>make_examples.bat</li> </ol> <h4>4.4.-Installer build</h4> <p>Remember, you need sed and innosetup in the path to build the installer</p> <ul> <li>Open a command line window.</li> <li>Go to the firebird2\builds\install\arch-specific\win32 directory.</li> <li>The batch to build the installer is<br> BuildExecutableInstall.bat [DEBUG] [CS]<br> Where DEBUG means if the build is a debug one or not and CS means classic server installer.</li> <li>After you start the batch, you will get a InnoSetup window. To build the install exe select the option compile, and a new exe will appear in builds/win32/install_image </ul> <h4>4.5.-Building samples</h4> <p>After the standard build is finished, an output directory with the same structure as the installed FB directory is created.</p> <p>If you want to build the examples just cd to firebird2\output\examples\build_win32 and run run_all.bat</p> <p>Run_all.bat calls four other bats to make the example sets. Any example set can be build independently with its make_XXX script.</p> <p>The example sets are:</p> <ul> <li>api (API Interface)</li> <li>dyn (embedded dynamic SQL)</li> <li>stat (embedded static SQL)</li> <li>udf (User defined functions)</li> </ul> </blockquote> </BODY> </HTML>