Future Lab - GPL Software for Windows 32-bit

This package contains the full source code, executable code and documentation for all current Future Lab GPL applications for Windows 32bit. This version is designated 1.36-2006.09.17 which is a package version. The change log will completely describe the new or changed material. Each application also has its own version. Currently, all Future Lab GPL applications and servers can be compiled for 32bit Windows.

This package is built using the native gcc 3.2 (mingw special 20020817-1) compiler under Windows.

# System Requirements

You must have enough disk space for the decompressed contents of this package which is about 6.84MB currently.

You must be running a Windows 32-bit OS. This includes any version of the following:

- Windows 95
- Windows 98
- Windows Me
- Windows 2000
- Windows Server 2003
- Windows NT
- Windows XP
- Windows Vista

In order to run the client/server applications, you must also have the TCP/IP protocol defined and operational.

Since all of the enclosed software is extremely compact and not at all bloated, the memory requirements are minimal. To keep the size of this package down, the C++ applications are included only in source code form.

If you want to re-compile this GPL code, you will need a 32-bit Windows ANSI C/C++ compiler. Re-compiling the source code is completely discussed below.

This GPL code is very generic. You may also use the compiler of your choice providing the compiler is full ANSI C/C++ complaint and the full WinSock V1.1 (at minimum) API and library is present. Make sure you understand the code structure and the module dependencies.

# Decompressing the Package

The Windows 32-bit package is distributed in WinZip and 7Zip format. To unZip the package, you will need to have a Zip program installed. All files in this package use the 8.3 naming convention except for the HTML documentation which uses the '.html' extension (for compatibility with Unix).

To decompress the package:

- create a top level directory, name it as you wish
- extract the package into the directory you just created

# Package Structure

This package contains all the source code, executable programs, and documentation. The directory structure of the package is as follows:

- gpl.txt - GPL license file
- readme.html - this file
- apps - executable programs
- code - source code tree
  - apps - GPL application code
  - batch - Windows batch files
  - clib - GPL library code
  - dbeng - Bbuuzzb database API code
  - include - header files
  - socloc - socloc API code
- css - CSS Level 1 stylesheet for documentation
- docs - documentation tree
  - apps - GPL C application docs
  - cpp - GPL C++ docs
    - apps - GPL C++ application docs
    - library - GPL C++ library docs
  - dbeng - Bbuuzzb database API docs
  - library - GPL library docs
  - script - Unix script docs
  - socloc - socloc API docs
  - tcl - tcl docs
- images - image files for documentation

Two extra directories have been added to the package that are used to support the enclosed documentation. The css directory contains a cascading stylesheet (CSS Level 1) which gives the included HTML documentation the same look and feel as the Future Lab website. The images directory holds any graphic images used in the presentation of the HTML documentation.

The Windows compile/link batch files using gcc have been placed into the batch directory.

# Recompiling the Source Code

In order to recompile the source code included in this package, you will need to have a Windows 32-bit ANSI C/C++ compiler installed. Create a top level directory. Copy all of the directories underneath the code directory from the package to your new directory.

The exact method of compilation will depend on whether the compiler is command line or IDE based. If the compiler is command line based, you can use the batch files supplied with this package or build a series of batch/command files to perform the compilation and linking. If you decide to use the batch files supplied in this package, make sure you edit the main configuration batch file start-mingw.bat. Before compiling anything, start a command prompt and execute this batch file which will set a series of environment variables that the compiler will use.

Edit the main include file stdhead.h and make sure the correct platform is selected via the appropriate define. Also make sure the define MULTIUSER is defined or not defined as appropriate. You also may supply the appropriate defines using compiler options.

# Running the Applications, A Quick Start

Most of the single user applications can be run immediately by using the start/run option within Windows. All of the applications are text console-based and can also be run from a command prompt. Many of the applications have one or more configuration files that need to be read. You should execute all of the Future Lab GPL applications from within the same directory where they are stored. You should also store all configuration files within this same directory. Here is a list of all Future Lab GPL applications and their runtime requirements:

## datagen

This application only has a single user form and does not require any configuration files. This application can be placed into any directory and may be run from any directory. Refer to the datagen application doc for more information.

## datimec

This is the multi user client application that interfaces with the timesync server. This application requires at least one socloc server to be running and needs to be executed in a directory that also contains the socloc startup file. Refer to the datimec application doc for more information.

## db

This application is the single user command line interface to the Bbuuzzb database engine. This application needs to be executed in a directory that also contains the Bbuuzzb database configuration file. Refer to the db application doc for more information.

## dbm

This application is the multi user command line interface to the Bbuuzzb database server. In order to run this application, the Bbuuzzb database server must be running.

This application needs to be executed in a directory that also contains a socloc startup file and the Bbuuzzb configuration file. Refer to the dbm application doc for more information.

## dbgen

This application is the single user random data generator for the Bbuuzzb database engine. This application needs to be executed in a directory that also contains the Bbuuzzb database configuration file. Refer to the dbgen application doc for more information.

## dbgenm

This application is the multi user random data generator for the Bbuuzzb database server. In order to run this application, the Bbuuzzb database server must be running.

This application needs to be executed in a directory that also contains a socloc startup file and the Bbuuzzb configuration file. Refer to the dbgenm application doc for more information.

## dbsrv

This application is the Bbuuzzb database server. In order to run this server, the system log server and at least one socloc server must first be running.

This application needs to be executed in a directory that also contains the socloc startup file and the Bbuuzzb configuration file. Refer to the dbsrv application doc for more information.

## dbstresm

This application is the multi user database stress program. It sends operational commands to the Bbuuzzb database server. In order to run this application, the Bbuuzzb database server and at least one socloc server must be running.

This application needs to be executed in a directory that also contains the socloc startup file and the Bbuuzzb configuration file. Refer to the dbstresm application doc for more information.

## dbstress

This application is the single user database stress program. It sends operational commands to the Bbuuzzb database engine. This application needs to be executed in a directory that also contains the Bbuuzzb database configuration file. Refer to the dbstress application doc for more information.

## dumsockc

This is the multi user client socket application that interfaces with the dumsocks and socloc server. This application requires at least one socloc server to be running and needs to be executed in a directory that also contains the socloc startup file. Refer to the dumsockc application doc for more information.

## dumsocks

This application is a dumb socket server which accepts a very limited number of commands. The server is intended to be used for testing along with the dumsockc client application. This application requires at least one socloc server to be running and needs to be executed in a directory that also contains the socloc startup file. Refer to the dumsocks application doc for more information.

## iresolve

This application requires an operational TCP stack. This application can be placed into any directory and may be run from any directory. Refer to the iresolve application doc for more information.

## sockc

This application is the multi user socket client that interfaces to socloc as well as just about any socket server. Use this application as a socket control console for all other socket servers. This application requires at least one socloc server to be running and needs to be executed in a directory that also contains the socloc startup file. Refer to the sockc application doc for more information.

## socloc

This socket server application serves as an information depot for all other socket servers. Socket client applications can connect to socket servers by obtaining server details from a socloc server. Multiple socloc servers can be running to provide redundancy. Multiple socket servers of the same type (identified by service name) can also be running. The socloc APIs provide automatic fail over protection for client applications interfacing with socloc servers. Automatic fail over protection is easy to accomplish with socket servers.

## sys_log

This program is the system log server. This application needs to be executed in a directory that also contains the socloc startup file. Refer to the sys_log application doc for more information.

## testcs

This test socket client C++ application has no special requirements (other than an operational TCP/IP stack). The source code should be modified with the host name and port number of the socket server to be contacted.

## testss

This test socket server C++ application has no special requirements (other than an operational TCP/IP stack). The source code should be modified with the port number that the socket server will listen to.

## timesync

This application is the time synchronization server. In order to run this server, the socloc server must first be running. Refer to the timesync application doc for more information.

## fxpstres

This application only has a single user form and does not require and configuration files. This application can be placed into any directory and may be run from any directory. Refer to the fxpstres application doc for more information.

## dos2unix

This application only has a single user form and does not require and configuration files. This application can be placed into any directory and may be run from any directory. Refer to the dos2unix application doc for more information.

## iex

This application is the single user ASCII import program into the Bbuuzzb database engine. This application needs to be executed in a directory that also contains the Bbuuzzb database configuration file. Refer to the iex application doc for more information.

## iexm

This application is the multi user ASCII import program into the Bbuuzzb database server. In order to run this application, the Bbuuzzb database server must be running.

This application needs to be executed in a directory that also contains a socloc startup file and the Bbuuzzb configuration file. Refer to the iexm application doc for more information.

## rmtree

This application will delete an entire directory tree from a disk. Refer to the rmtree application doc for more information.

## daymvdel

This application will move or delete files or entire directory trees based on file age in days. This application requires a task list file before the program can be run. Refer to the daymvdel application doc for more information.

## ialive

This application will test an Internet connection with single user support for storing the results in a Bbuuzzb table. This application needs to be executed in a directory that also contains a Bbuuzzb configuration file. Refer to the ialive application doc for more information.

## ialivem

This application will test an Internet connection with client/server support for storing the results in a Bbuuzzb table. In order to run this application, the Bbuuzzb database server must be running. This application needs to be executed in a directory that also contains a socloc startup file. Refer to the ialivem application doc for more information.

## sched

This application will track your personal schedule of events including budget. This is a single user Bbuuzzb database application. This application needs to be executed in a directory that also contains a Bbuuzzb configuration file. Refer to the sched applicaton doc for more information.

## schedm

This application will track your personal schedule of events including budget. This is a client/server Bbuuzzb application. This application needs to be executed in a directory that also contains a socloc startup file. Refer to the schedm application doc for more information.

# Documentation Guide

Here is a complete guide to the included package documentation. Note that I have tried to make sure that most links function properly. You will find that all links that refer to the Future Lab GPL software function. Links that refer to other parts of the Future Lab web site will not function properly from this readme file. In that case, please refer to the actual Future Lab web site.

- Software change log
- C software overview
- C++ software overview
- Bbuuzzb database engine and API guide
- Socloc overview
- Socloc API guide
- GPL library guide
- Linux/Unix/QNX shell script guide
- Tcl software overview

Goto Top | Contact Author | Future Lab Web Site | Feedback

Copyright © 1999-2006 Future Lab, Last Updated Sep 17, 2006