My favorites | Sign in
Project Logo
ubx
                
Search
for
Updated Feb 16, 2009 by phil.bo...@webbackplane.com
Labels: Phase-Implementation, Featured
BuildingUbx  

Building UBX

History

Historically, as closed-source software, UBX was developed using Microsoft Visual Studio 2002 (7.0) on Microsoft Windows. Since then, we have shifted to using Microsoft Visual Studio 2003 (7.1) and have experimented with Microsoft Visual Studio 2005 (8). We have project files for all three of these environments available, although only the project files for 7.1 are currently guaranteed to be up-to-date at any point in time. These files are organised in to subdirectories under each project's build directory.

Other libraries

Although UBX currently only builds successfully on Microsoft Windows, it has been developed with cross-platform issues in mind and will eventually be ready for porting to other platforms. A fundamental aspect of this cross-platform architecture involves relying upon certain best-of-breed open source libraries where they provide reliable, multi-platform implementations of required functionality. As such, any attempts to build UBX requires that these libraries are built first. They are:

Verbatim instructions for Microsoft Visual Studio 2003 (7.1)

Limitations

Until the dependency on ATL is fully eliminated, the following instructions will not work for the Express Editions of Visual Studio.

Pre-requisites

  1. Install Microsoft Visual Studio .NET 2003 (specifically, Visual C++);
  2. Install the Platform SDK;
  3. Install the MSXML 4.0 SP2 SDK;
  4. Install the MSXML 6.0 SDK;
  5. Download and build OpenSSL as a static library, ensuring that the runtime libraries are linked statically;
  6. Download and build ZLib as a static library, ensuring that the runtime libraries are linked statically;
  7. Download and build libCurl as a static library, ensuring that support for SSL and ZLib is enabled and that the runtime libraries are linked statically;
  8. Download and build SpiderMonkey 1.5, ensuring that JS_THREADSAFE has been defined and that the runtime libraries are linked statically;
  9. Download and build the unicode configurations of wxWidgets 2.8, ensuring that the runtime libraries are linked statically;
  10. Build unicode configurations of the stc project under contrib in the wxWidgets distribution, ensuring that the runtime libraries are linked statically;
  11. Download CxxTest;
  12. In Visual Studio, go to Tools > Options > Projects > VC ++ Directories.
  13. a. Set your paths for the "Include files" item in the following order:
    • MSXML 6.0 SDK "inc" subdir (e.g. C:\Program Files\MSXML 6.0\inc)
    • Platform SDK "Include" subdir (e.g. C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include)
    • $(VCInstallDir)include
    • $(VCInstallDir)atlmfc\include
    • $(VCInstallDir)PlatformSDK\include\prerelease
    • $(VCInstallDir)PlatformSDK\include
    • $(FrameworkSDKDir)include
    • CxxTest directory (e.g. D:\work\testing\cxxtest-3.10.1)
    • wxWidgets "include/msvc" subdir (e.g. D:\lib\wxWidgets-2.8.10\include\msvc)
    • wxWidgets "include" subdir (e.g. D:\lib\wxWidgets-2.8.10\include)
    • wxWidgets "contrib/include" subdir (e.g. D:\lib\wxWidgets-2.8.10\contrib\include)
    • libCurl "include" subdir (e.g. D:\lib\libcurl-7.19.2\include)
    • SpiderMonkey "js/src" subdir (e.g. D:\lib\SpiderMonkey\js\src)
    b. Set your paths for the "Library files" item in the following order:
    • MSXML 6.0 SDK "lib" subdir (e.g. C:\Program Files\MSXML 6.0\lib)
    • MSXML 4.0 SDK "lib" subdir (e.g. C:\Program Files\MSXML 4.0\lib)
    • $(VCInstallDir)lib
    • $(VCInstallDir)atlmfc\lib
    • $(VCInstallDir)PlatformSDK\lib\prerelease
    • $(VCInstallDir)PlatformSDK\lib
    • $(FrameworkSDKDir)lib
    • wxWidgets "lib/vc_lib" subdir (e.g. D:\lib\wxWidgets-2.8.7\lib\vc_lib)
    • libCurl "lib" subdir (e.g. D:\lib\libcurl-7.18.1\lib)
    • OpenSSL "out32" subdir (e.g. D:\lib\openssl-0.9.8h\out32)
    • ZLib directory (e.g. D:\lib\zlib-1.2.3)
    • SpiderMonkey "js/src/Release" subdir (e.g. D:\lib\SpiderMonkey\js\src\Release)

Get the source

Using a subversion client of your preference, check out a copy of the trunk from our repository on to your local machine.

Environment variables

In order to liberate the Visual Studio project files from any hardcoded include or library paths, they make use of a number of environment variables. You should define these environment variables appropriately for your machine. The majority will be dependent on the location that you have checked out the UBX source files to. The SW_ prefix is historical, based on the previous name of the project, so expect it to change in due course.

  • GECKO_SDK: Indicates the root directory of the Gecko SDK for use with XPCOM projects.
  • SW_COMINCLUDE: Indicates a directory to be used as a repository for MIDL-generated COM header files, to which they shall be copied post-generation and from which they shall be referenced during compilation.
  • SW_LIBPATH: Indicates a directory to be used as a repository for static libraries, to which they shall be copied upon successful compilation and from which they shall be referenced during linking.
  • SW_LIBXPORT: Indicates the root of the 'current' copy of LibXPort; $(SW_LIBXPORT)\include is added to a number of include paths.
  • SW_LIBDOM2: Indicates the root of the 'current' copy of LibDOM2; $(SW_LIBDOM2)\include is added to a number of include paths.
  • SW_LIBMSHTML: Indicates the root of the 'current' copy of LibMSHTML; $(SW_LIBMSHTML)\include is added to a number of include paths.
  • SW_LIBSERIALISE: Indicates the root of the 'current' copy of LibSerialise; $(SW_LIBSERIALISE)\include is added to a number of include paths.
  • SW_LIBRENDER: Indicates the root of the 'current' copy of LibRender; $(SW_LIBRENDER)\include is added to a number of include paths.
  • SW_LIBXPOINTER: Indicates the root of the 'current' copy of LibXPointer; $(SW_LIBXPOINTER)\include is added to a number of include paths.
  • SW_LIBSW: Indicates the root of the 'current' copy of SWViewer; $(SW_LIBSW)\include is added to a number of include paths.
  • SW_DOM2EVENTS: Indicates the root of the 'current' copy of DOM2Events; $(SW_DOM2EVENTS)\src\msw is added to a number of include paths.
  • SW_DOM3IMPLREG: Indicates the root of the 'current' copy of DOM3ImplReg; $(SW_DOM3IMPLREG)\src\msw is added to a number of include paths.

Building

Project files for Microsoft Visual Studio .NET 2003 are stored in each project's build\msw\VC71 sub-directory. Additionally, there is a Visual Studio .NET 2003 solution file that builds all of the projects in the SWViewer\build\msw\VS71 directory. If you have completed all of the pre-requisite steps up to this point, these solutions and project files should build UBX with no errors. If you do get any problems, please report them using the issue tracker.


Comment by ayaz.shah, Jul 03, 2009

Hey Guyz, I am rather a PHP person, I was looking at the possibility to "Shell" a website. what meta data commands are available? You forgot list those. If you do, Please CC it to ayaz.shah at? gmail. com


Sign in to add a comment
Hosted by Google Code