Skip to content

lollisoft/lbdmf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
		    DMF - Distributed Multiplatform Framework
		     Copyright (C)  Lothar Behrens 2000-2025

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.

There is one main tool that helps me to build the source code on all platforms. The
tool is mkmk. It enables me to define a directory or more with a bunch of files to
add into a makefile that it basically writes in some parts. On Windows I currently
provide a precompiled version. On other platforms it will be build at the very
beginning.

Hint: The mkmk tool was orginally written by Luis Crespo. His publication is at:
http://www.cubic.org/~submissive/sourcerer/mkmk.htm		

Development started at 05.03.2000 according to the checkins I have tried to preserve
while creating a migration from CVS to GitHub. See the following link where it started:

https://github.com/lollisoft/lbdmf/commits?since=1999-01-01&until=2001-12-31&after=6a40475cb952e5540f858869a3ea657a8a800a5a+209

First commit was at https://github.com/lollisoft/lbdmf/commit/03d12150d4abcf8af7daaf8a0545bb9298308d45

Requirements:

Typically the installation is on drive C:

Windows:
********

	I work primarily with MinGW C++ compiler on Windows. There is a part of the project
	that can compile with the Watcom 11 compiler and most probably with the current
	Open Watcom compiler. The Microsoft Visual C++ compiler is mostly not tested at the
	current and most older releases. Therefore you need to stick to MinGW or - for some
	networking part of code you may use Watcom compiler and the corresponding watcom
	project file at the root folder (lbdmf.wpj).

	You most easily can download the source code setup executable. It has an option to pull
	prerequisites like the MinGW compiler and wxWidgets. Basically the source code installer
	therefore pulls the binary build tools in vc version precompiled, the 7Z tool to unpack
	the MinGW zip archive (either the 32Bit or 64Bit version) depending on which checkbox you
	tick. It also loads the wxWidgets 3.2.2.0 code installer and starts building that library.
	After building that, it installs the dll's to the expected place within the source code
	location.
	
	If you have let the installer build wxWidgets, or you had that done in a prior version and
	the wxWidgets library is at least somewhere with in 3.x you could start opening my main 'IDE'.
	The plain command prompt with the lbDMF Develop icon and type make. I have tested the 3.2.2.0
	version.

	The mkmk tool will actually be delivered as binary installer. The main src installer can
	pull that tool as a pre requisite if the corresponding build wxWidgets checkbox is ticked.
	If you want to build the complete code including mkmk, you need to go to the vendor
	folder where the mkmk tool has it's code folder and therein is a msvc project. The msvc
	project is in vendor/mkmk/mkmk/mkmk.dsw, The other folder named vcprj is probably a prior
	trial. But that manual approach is not well tested, as the binary tools also contains some
	tools needed while building the code.

Post installation:

	The most convienient way to get started is the source code installer and tick either building
	wxWidgets with MinGW32 or MinGW64. It does all prerequisite installations and build wxWidgets.
	
	Actually I primarly use SqLite and neglected the ODBC and SQL Server or SQL Anywhere stuff. Using
	that will require again some testing and work to get things up to date.

Post setup:

	If you start the lbDMF Develop link on the desktop, you get opened a text file with
	a hint text. This is somewhat old and you can ignore that and close the text editor if you
	have installed the source code to the default location C:\lbDMF.
	
	Restart the lbDMF Develop console and start building using the make command. If the build
	has been succeeded, you type make install and then type wxWrapper.
	
	These are therefore your commands to get the application building and started:
	
	make
	make install
	wxWrapper

	These are the commands to clean and remake (needed in some cases instead of a plain make):
	
	make distclean
	make clean
	make
	make install
	wxWrapper

Linux:
******

Prerequisites:

The complete build has been tested on a 64Bit OpenSuSE Tumbleweed installation.

You need a compiler. I have installed gcc-c++-14-2.2.x86_64
You need wxWidgets. I have installed wxGTK3-3_2-devel-3.2.6-2.3.x86_64
You need XSLT. I have installed libxslt-devel-1.1.42-1.1.x86_64
You need flex. I have installed it via zypper install flex
You need bison. I have installed it via zypper install bison

Then you need git. I have installed git-core-2.48.1-1.1.x86_64
I need cvs as I do a migration path. You will need git to pull from my github repository.

So going with four commands on openSuSE you would get most of it fast:

sudo zypper install gcc-c++ flex bison wxGTK3-3_2-devel make git-core unixODBC unixODBC-devel libxslt-devel
mkdir -p develop/Projects
cd develop/Projects/
git clone https://github.com/lollisoft/lbdmf.git

Then you could do:
cd lbdmf/BaseDevelopment
make

You need some basic .bashrc settings to get started to build the source code from the source
repositoy. Here is my setup that generally seems to work on openSuSE Tumbleweed:

CVS_RSH=ssh
MODULELIB=lbModule.so
LBXMLFUNCTOR=getlbDOMConfigInstance
LBMODULEFUNCTOR=getlb_ModuleInstance
DEVROOT=~/develop
LD_LIBRARY_PATH=~/lib:
PLUGIN_DIR=~/plugins
OSTYPE=linux
PATH="/usr/local/bin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:~/bin:$HOME/bin:/usr/local/bin:/usr/brlcad/bin:/opt/local/bin"

# On older OSX
# #DEVELOPER_TOOLS_PATH=/Developer/Tools
# #export DEVELOPER_TOOLS_PATH
# # On newer OSX

OSVERSION=`uname -r`
export OSVERSION
OSPLATFORM=`uname -p`
export OSPLATFORM

export CVS_RSH
export MODULELIB
export LBXMLFUNCTOR
export LBMODULEFUNCTOR
export DEVROOT
export LD_LIBRARY_PATH
export OSTYPE
export PATH
export PLUGIN_DIR
REPO_NAME=lbdmf
export REPO_NAME

Mac OS X:
*********

TBD