1
v1 Copyright 2001-2006 Components4Developers
http://www.components4developers.com
The portable C client library
kbmMW supports a number of native clients under the codename ‘Spider’.
One of then is a pure C based client which allows just about any environment to access a
kbmMW based application server.
The application server must have a traditional TCP/IP server transport defined which use
STANDARD streamformat, no compression, no encryption and with VerifyTransfer set to
true.
This document will show how to compile the C client library and how to use it.
2
v1 Copyright 2001-2006 Components4Developers
http://www.components4developers.com
Compiling the C library
For Win32
The Win32 library is in the form of a lib file.. The lib file is usually delivered with the
kbmMW C client install, but in case it needs recompilation the following steps must be
followed.
Prerequisites:
- The kbmMW C client library souce.
http://www.components4developers.com
- Bloodshed C++ development environment (4.9.9.2 – v5 beta 9.2 or newer)
http://www.bloodshed.net
Installation of prerequisites:
• Create a directory in which you extract the kbmMW C client library files. e.g:
C:\work.
• Install Bloodshed C++ development environment or Windows Studio .Net with C++
environment according to their installation instructions.
Open the file makefile.win32 in notepad or any other text editor. In the beginning of the file
you will find the following lines:
Compilation of the library:
# set compile variables for tools and environment
# use gnu compiler
CC = e:\Dev-CPP\bin\gcc
AR = e:\Dev-CPP\bin\ar
RANLIB = e:\Dev-CPP\bin\ranlib
# use full warnings
CFLAGS = -Wall -O2
Modify the CC, AR and RANLIB lines to reflect the correct paths to the compiler, archiver
and ranlib executables which are part of the Bloodshed installation. Equally optionally modify
the CFLAGS line to contain the optimizations etc. you require by the C compiler.
Save the modifications.
3
v1 Copyright 2001-2006 Components4Developers
http://www.components4developers.com
Then open buildwin32.bat in a text editor. It contains the following lines:
set PATH=%PATH%;e:\dev-cpp\bin
e:\dev-cpp\bin\make -f makefile.win32
Modify the e:\dev-cpp\bin path to match the path for your Bloodshed installation. Save the
modifications.
Now everything should be ready for compilation of the client library.
To compile, open a command/DOS window and run: buildwin32.bat
After it has compiled, a library file will have been created. Use this library file when linking
your own applications with the kbmMW C library.
Compiling and running the demo application:
Open the file makefile.win32 from the sample directory.
The first few lines looks similar to this:
# Project: TestSample
# Demo project for kbmMW C client library.
# set compile variables for tools and environment
# use gnu compiler
CC = e:\Dev-CPP\bin\gcc
LIBS=..\libkbmMWClient.lib e:\Dev-CPP\lib\libwsock32.a e:\Dev-CPP\lib\libmsvcrt.a
INCS = -I"include" -I..
OBJS = main.o
EXE = TestSample.exe
Modify e:\dev-cpp paths to the correct path matching your Bloodshed Dev/C++ installation.
Optionally modify the CFLAGS entry with required optimizations. Save your changes.
Next open buildwin32.bat and modify the e:\dev-cpp paths to match your Bloodshed
installation. Save your changes.
Open a command/DOS window and run buildwin32.bat.
Now an executable should be available. To run it, first start a kbmMW based demo
application server and let it listen for requests (default on port 3000 using STANDARD and no
compression or encryption).
Then run TestSample.exe. It will call the app server 1000 times asking for inventory.
4
v1 Copyright 2001-2006 Components4Developers
http://www.components4developers.com
For non Win32 (Linux/Unix and others)
The Linux/Unix library is in the form of an archive file (.a). To generate the archive the
following steps must be followed.
Prerequisites:
- The kbmMW C client library souce.
http://www.components4developers.com
- A Berkley Socket API compliant sockets library for TCP/IP communication.
- A standard ANSI C compliant C compiler (for example GNU C)
http://directory.fsf.org/devel/compilers/gcc.html
• Create a directory in which you extract the kbmMW C client library files.
e.g: /home/work.
Installation of prerequisites:
Open the file makefile.unix in notepad or any other text editor. In the beginning of the file
you will find the following lines:
Compilation of the library:
# set compile variables for tools and environment
# use gnu compiler
CC = gcc
AR = ar
RANLIB = ranlib
# use full warnings
CFLAGS = -Wall -O2
LIBRARY=libkbmMWClient.a
Modify the CC, AR and RANLIB lines to reflect the correct paths to the compiler, archiver
and ranlib executables if needed. Usually on a development machine, these are already in the
searchpath. Equally optionally modify the CFLAGS line to contain the optimizations etc. you
require by the C compiler.
Save the modifications.
Now everything should be ready for compilation of the client library.
5
v1 Copyright 2001-2006 Components4Developers
http://www.components4developers.com
To compile, open a terminal and in the kbmMW C client source directory, run: make –f
makefile.unix
After it has compiled, a library file will have been created. Use this library file when linking
your own applications with the kbmMW C library.
Compiling and running the demo application:
Open the file makefile.unix from the sample directory.
The first few lines looks similar to this:
# Project: TestSample
# Demo project for kbmMW C client library.
CPP = g++
CC = gcc
RES =
OBJ = main.o $(RES)
LIBS = -L"lib" ../kbmMWClient.a
INCS = -I"include" -I..
BIN = TestSample
CFLAGS = $(INCS) -fexpensive-optimizations -O3 -march=pentium4
RM = rm –f
Modify CC, LIBS and INCS to reflect the directories in which the relevant compiler, libraries
and include files exists. Optionally modify the CFLAGS entry with required optimizations.
Save your changes.
Open a terminal window and in the sample directory, run: make –f makefile.unix
Now an executable should be available. To run it, first start a kbmMW based demo
application server and let it listen for requests (default on port 3000 using STANDARD and no
compression or encryption).
Then run ./TestSample. It will call the app server 1000 times asking for inventory.