/lbdmf_oldCVSBranch

Primary LanguageC++OtherNOASSERTION

		    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