DMF - Distributed Multiplatform Framework Copyright (C) Lothar Behrens 2002 This framework was intented to be independend from compiler and vendor frameworks like MFC or Watcom class libraries. Multiplatform stays currently for Windows and Linux. More OS systems are welcome, but I am unable to test it. The part Distributed is currently not integrated, because of my complete rewrite of my work to use COM like dynamic loading of classes. The part of distributed may be implemented with a CORBA compilant system and a wrapper class that is configured local in my system. Generally I write a pure abstract class (interface) and a corresponding cpp file implementing the interface. Loading instances from interfaces is dony by a name of the interface - the identifer of that class it self. The object repository uses a XML file that configures, which implementation is used in the current environment. Please pay attention of the different mangling on each platform. On linux, modify the xml file so that the functor has no prefix (_). Each interface like lb_I_Container for a container is configured pointing to a module (DLL/so) and a functor, that creates the instance. Requirements: Sample installation is at drive D: Windows: At least MSVC 6.0 compiler (only the console tools are needed) The MSVC 6.0 IDE projectfile exists, but doesn't yet support directly the making of the GUI sample. But the rest was tested earlier. or the Watcom 10.6 or the latest Openwatcom compiler is needed. I use watcom and therefore, this compiler is tested at most time. The wxWidgets source code. Tested version is 2.4.2. Post installation: Download the compilers of your choice. Install it into a Develop\Tools directory. (eg. D:\lbDMF\Develop\tools\watcom) Download the stable wxWidgets source distribution (at least 2.4.2). Install it to a Develop\wxwin directory. (eg. D:\lbDMF\Develop\wxwin\wx) A database is needed by the sample applications. Tested are MySQL, PostgreSQL, Microsoft SQL Server 2000, Sybase SQL Anywhere 5.x. The latest tests were done with MySQL and XAMPP for Windows. Feel free to use the other database vendors, but note: There are not yet SQL scripts for all databases. The following steps are not documented, nor tested as well. I use a running version :-) Download xampp for windows or http://www.apachefriends.org/en/xampp-windows.html#641 download the database only from the same site as the ODBC drivers below. Download ODBC drivers for MySQL http://dev.mysql.com/downloads/connector/odbc/3.51.html Post setup: If you start the lbDMF Develop link on the desktop, you get opened a text file with a hint text. This simply means to configure the base directory. In this sample installation scenario, simply change the lines set DEVLW=<driveletter> to DEVLW=D: Start a normal MSDOS console (cmd) and type these lines: set WXWIN=D:\lbDMF\Develop\wxwin\wx D: cd %WXWIN%\src\msw copy %WXWIN%\include\wx\msw\setup.h %WXWIN%\include\wx wmake -f makefile.wat all This should start compiling the wxWidgets code. If you have done this, you can restart the lbDMF Develop link and a simple console window starts. Type make To be able to run the sample applications, you need to create at least one database. Do this with the tools, provided from the database vendors. The first database, needed should be named lbdmf and a correct ODBC configuration should be set up. NOTE: The database login function is used with hardcoded ODBC DSN name and also user with password. The functions could be found by a search for ->connect( Create at least an use to have rights to change data. Unix tools like make (Mingw or the like), a version is also included in the binary distribution Batchfiles are provided to setup the env variables, subst a drive Q: pointing to the actual development tree (subst q: c:\). Then q:\ has the following tree: q:\develop\projects\CPP\... Linux: An actual G++ compiler and all the tools to compile, mkmk - a makefile creation tool to build makefiles that matches to my make environment, the source is included, so you can bootstrap it. uncompress the file to your home directory, create /libdev/lib (as root) for the so modules and give rigths to you to copy the so's to it (my choice for development :-), place the CPP directory to /home/<user>/develop/Projects env variables for the bootstrapping: MODULELIB=lbModule.so LBXMLFUNCTOR=getlbDOMConfigInstance LBMODULEFUNCTOR=getlb_ModuleInstance DEVROOT=/home/<user>/develop LD_LIBRARY_PATH=/libdev/lib: OSTYPE=linux Vendor libraries, that are used in my code: XML4C C++ XML library: (Currently obsolete) Download the matching XML4C distribution for your OS from http://www.alphaWorks.ibm.com/aw.nsf/download/xml4c place the extracted tree to /home/<user>/develop/Projects/CPP/vendor/XML4C, please attent, that the directory name must match to xml4c-src3_5_1 build it and install it as usual. GTK is needed. I have tested it with the GTK developer package from CD (SuSE 9.1) wxWidgets is needed. Download the latest version as a source tarball (2.4.2) Make and install it. Install unixODBC and configure a postgreSQL database pointing to 'lbDMF' Execute the script ... Vendor programs, that I have adopted for my need: mkmk Build: Goto /home/<user>/develop/Projects/CPP/vendor/dosdir, call make.sh goto /home/<user>/develop/Projects/CPP/vendor/mkmk, call make.sh copy mkmk to ~/bin Hint: The mkmk tool was orginally written by Luis Crespo. His publication is at: http://www.cubic.org/~submissive/sourcerer/mkmk.htm