You are on page 1of 67

FWH

FiveWin for Harbour / xHarbour

© FiveTech Software 2003/4


www.fivetechsoft.com

Harbour documentation
© The Harbour Project
www.harbour-project.org
Harbour FWH

CONTENTS

CONTENTS.........................................................- 1 -
What is FiveWin for Harbour ?...........................- 4 -
Installing FiveWin for Harbour..........................- 6 -
Using FiveWin for Harbour................................- 7 -
Guidelines for Harbour users.............................- 8 -
Important recommendations:......................................................................- 10 -
Guidelines for Clipper and FiveWin users........- 12 -
Adapting your C source code:......................................................................- 15 -
Using Borland Custom Controls (Bwcc32.dll):...............................................- 16 -
Using Advantage local RDD with Harbour:......- 17 -
Legal Stuff.......................................................- 20 -
Copyright...................................................................................................- 20 -
Licence......................................................................................................- 20 -
Warranty...................................................................................................- 20 -
Trademarks................................................................................................- 21 -
About Harbour.................................................- 22 -
What is Harbour?.......................................................................................- 22 -
Why develop Harbour?................................................................................- 23 -
Who is developing Harbour?........................................................................- 23 -
Who owns Harbour?...................................................................................- 23 -
So who do I blame when it all goes wrong?.................................................- 24 -
How did Harbour get started?.....................................................................- 24 -
What is "free software"?.............................................................................- 25 -
So is Harbour in the public domain?.............................................................- 25 -

1
Harbour FWH

What is the GPL?........................................................................................- 26 -


Why was the GPL chosen as the licence for Harbour?...................................- 26 -
What is the Harbour exception?...................................................................- 27 -
So why don't you use the LGPL?..................................................................- 29 -
Will my applications be affected by the GPL?................................................- 30 -
Helping develop Harbour.................................- 32 -
How do I get started?.................................................................................- 32 -
What C compiler should I use?....................................................................- 32 -
What other tools do I need?........................................................................- 34 -
Where can I find the source?......................................................................- 36 -
What is CVS and how do I use it?................................................................- 38 -
How do I build Harbour?.............................................................................- 40 -
What needs working on?.............................................................................- 40 -
Are there any development guidelines?........................................................- 41 -
Is it ok to extend the language with some spiffy new feature?......................- 42 -
So what's with all these language extensions then?......................................- 43 -
I can't code C, how can I help development?...............................................- 43 -
I've got loads of Clipper code I can donate, what shall I do?.........................- 44 -
I can't submit Clipper code either, can I still help anyway?............................- 44 -
The Harbour mailing lists.................................- 45 -
Is there a developer's mailing list?...............................................................- 45 -
Is there a user's mailing list?.......................................................................- 45 -
Is there a general discussion mailing list?.....................................................- 46 -
How do I remove myself from the mailing lists?...........................................- 46 -
Are the lists archived anywhere?.................................................................- 49 -
Are there any newsgroups for Harbour?.......................................................- 49 -
Installing Harbour...........................................- 51 -
Where can I get pre-built binaries?..............................................................- 51 -
Pointers and links............................................- 53 -
Harbour related links..................................................................................- 53 -
Articles about Harbour................................................................................- 54 -
Free (in either sense of the word) development tool links.............................- 54 -
Articles about Harbour................................................................................- 54 -
7.3 Free (in either sense of the word) development tool links........................- 54 -
Clipper related links....................................................................................- 55 -

2
Harbour FWH

Free software related links..........................................................................- 55 -


7.6 Other handy links.................................................................................- 56 -
Administrative information..............................- 57 -
Document URL...........................................................................................- 57 -
Downloading this document........................................................................- 58 -
Feedback about the FAQ.............................................................................- 58 -
Document history.......................................................................................- 59 -

3
Harbour FWH

What is FiveWin for Harbour ?

FiveWin for Harbour (FWH) is a set of commands, classes and functions


developed with the objective to obtain the highest power from the Microsoft
Windows environment in conjuntion with Harbour, the open source Clipper
language compatible compiler (http://www.harbour-project.org).

FWH is a library that you may link to your Harbour built application enabling
the use of all these functionalities. FWH includes a version built using
Borland C/C++ 5.5 free compiler available from Borland downloads at
(http://www.borland.com/bcppbuilder/freecompiler) and the same version
also built using Microsoft Visual C++ (MSVC). You may decide which one do
you prefeer to use. They work exactly the same.

FWH has been developed to keep total compatibility with the original FiveWin
Library for CA-Clipper. FiveTech offers real compatibility between 16 and 32
bits. Due to this compatibility level both products share the same manual and
most of the samples we provide.

The set of classes of FWH are completely self contained. FWH provides the
needed classes to create MS standard Windows, Dialogboxes, Menus and
Buttonbars with the Microsoft Office style, etc. The reasons why FWH has
developed its own set of GUI classes are as follows:

 Full support of standard Windows resources: FWH allows you to use


standard tools to design DialogBoxes, as Microsoft Visual Studio,
Borland Resource Workshop, offering you the capability of use visual
design in the same way as C and C++ professional programmers do.
Designing your dialogboxes in this way allows you to keep a total

4
Harbour FWH

independency between the graphic interface design in respect to your


applications source code. You will be able to easily modify your
dialogboxes without the need to alter or modify its related source
code.

 FWH uses Borland C/C++ 5.5 own import libraries to access multiple
Windows APIs so there is no need for a WinApi.lib (FiveWin for
Clipper) equivalent. The same applies for MSVC.

Simple and easy to use: The FiveWin++ commands and class sets have
been specially designed to offer a great ease of use and require a minimum
learning curve. FiveWin has always been very popular for its power and easy
of use.

These reasons show the enormous importance of using FWH to port your
existing Clipper and FiveWin apps to 32 bits. FWH will give you total control
over the Microsoft Windows environment, a must for any professional
programming company that will allow them to deliver Windows applications
that offer modern and updated management solutions.

5
Harbour FWH

Installing FiveWin for Harbour

FWH is designed to be used with Harbour (or xHarbour), the open source
Clipper language compatible compiler available from

www.harbour-project.org.

Though you may download latest build from that site, we strongly
recommend to use the one we provide as it has been tested and it is already
built containing its binaries files (harbour.exe) ready to be used.

Just click on the provided Harbour installtion icon and it will be automatically
installed.

6
Harbour FWH

Using FiveWin for Harbour

Once you have installed Harbour, FWH and Borland C/C++ free compiler,
simply go to c:\FWH\SAMPLES directory and review BuildH.bat defined paths
to be sure they match with your Harbour and Borland installation selected
paths.

Then type: BuildH.bat tutor01 (use BuildHM.bat for MSVC).

This should call Harbour.exe to compile tutor01.prg and call bcc32.exe to


generate the required OBJ, call brc32.exe to generate the resources RES file
if exists and finally call ilink32.exe to build the EXE.

This whole process is performed in an automatic way from BuildH.bat.

A first Hello World! Windows small dialog should shown on the screen.

If not, please review the paths inside BuildH.bat again to asure they are the
ones you have selected for your Harbour and Borland compiler installation.

We do recommend to continue testing the different samples we provide on


that directory.

To adapt your FiveWin and Clipper make files, simply do the needed
modifications inside them as shown inside SAMPLES\BuildH.bat file.

7
Harbour FWH

Guidelines for Harbour users

FWH is contained into two libraries: FiveH.lib and FiveHC.lib. (Notice that
FiveHM.lib and FiveHCM.lib are the MSVC versions).

Besides these, FWH provides an extensive set of header files (.CH extension)
that implements all required xBase commands to create and manage all the
different Windows objects.

In our samples directory ' \samples', we provide the file 'BuildH.bat'


(BuildHM.bat for MSVC). This file shows the correct way to compile and link
the applications developed with Harbour and FWH.

BuildH.bat:
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\harbour\harbour
set bcdir=c:\bcc55\bin

%hdir%\bin\b32\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 > clip.log


@type clip.log

IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

8
Harbour FWH

echo -O2 -e%1.exe -I%hdir%\include -tW %1.c > b32.bc


%bcdir%\bcc32 -M -c @b32.bc

:ENDCOMPILE

IF EXIST %1.rc %bcdir%\brc32 -r %1

echo c0w32.obj + > b32.bc

echo %1.obj, + >> b32.bc

echo %1.exe, + >> b32.bc

echo %1.map, + >> b32.bc


echo ..\lib\FiveH.lib ..\lib\FiveHC.lib + >> b32.bc

echo %hdir%\lib\b32\rtl.lib + >> b32.bc

echo %hdir%\lib\b32\vm.lib + >> b32.bc

echo %hdir%\lib\b32\gtwin.lib + >> b32.bc

echo %hdir%\lib\b32\lang.lib + >> b32.bc

echo %hdir%\lib\b32\macro.lib + >> b32.bc

echo %hdir%\lib\b32\rdd.lib + >> b32.bc


echo %hdir%\lib\b32\dbfntx.lib + >> b32.bc

echo %hdir%\lib\b32\debug.lib + >> b32.bc

echo %hdir%\lib\b32\common.lib + >> b32.bc

echo %hdir%\lib\b32\pp.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc

echo %bcdir%\lib\import32.lib, >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc

%bcdir%\ilink32 -aa -Tpe @b32.bc

IF ERRORLEVEL 1 GOTO LINKERROR

ECHO * Application successfully built

ECHO

:LINKERROR

%1

9
Harbour FWH

rem if exist meminfo.txt notepad meminfo.txt

rem PAUSE * Linking errors *

GOTO EXIT

:SINTAX

ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG

ECHO {-- Don't specify .PRG extension

GOTO EXIT

:NOEXIST

ECHO Not exist the specified PRG


:EXIT

Please notice the use of Borland bcc32.exe (Borland C/C++ compiler), after
calling the Harbour compiler, to generate the apropiate OBJ file to be linked
with Borland free ilink32.exe.

Important recommendations:

Please notice that Borland C/C++ 5.5 resources compiler (brc32.exe)


requires to be called previously to call ilink32.exe, as the resultant RES file
has to be provided to ilink32.exe. BuildH.bat clearly shows its use.

Do not use the Borland Resource WorkShop to save your 32 bit DLLs, it may
corrupt them. Save your resources as '.RC' (ASCII) files, and then use the
DLL\rc2dll2.bat utility to generate your 32 bits DLL:

10
Harbour FWH

Rc2dll32.bat <RCFile>  screens32.dll. Simply rename screen32.dll with


the name you want.

If you keep all your resources in a DLL, it will be very easy to save them as
an '. RC' file directly from the Resource Workshop, then use that '.RC' to link
directly into your '.EXE', in case you want to store the resources inside the
EXE, or use rc2dll32.bat to generate your 32 bits resources DLL.

11
Harbour FWH

Guidelines for Clipper and FiveWin


users

All that is needed to rebuild you application in 32 bit form is to replace


Clipper.exe and Blinker.exe calls with their 32 bit equivalents Harbour.exe,
bcc32.exe and ilink32.exe as done from SAMPLES\BuildH.bat.

The FiveWin.ch header file automatically detects Harbour use and proceeds
to perform the needed conversions.

The Harbour.exe compiler keeps compatibility with most of Clipper.exe flags.

The compatibility level of FiveWin source code with the new FWH is
practically 100%. Review the fifth item in this documentation where we
explain the steps to follow in detail.

if A%1 == A GOTO :SINTAX

if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\harbour\harbour

set bcdir=c:\bcc55\bin

12
Harbour FWH

%hdir%\bin\b32\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 >


clip.log

@type clip.log

IF ERRORLEVEL 1 PAUSE

IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include -tW %1.c > b32.bc

%bcdir%\bcc32 -M -c @b32.bc

:ENDCOMPILE

IF EXIST %1.rc %bcdir%\brc32 -r %1

echo c0w32.obj + > b32.bc

echo %1.obj, + >> b32.bc

echo %1.exe, + >> b32.bc

echo %1.map, + >> b32.bc

echo ..\lib\FiveH.lib ..\lib\FiveHC.lib + >> b32.bc

echo %hdir%\lib\b32\rtl.lib + >> b32.bc

echo %hdir%\lib\b32\vm.lib + >> b32.bc

echo %hdir%\lib\b32\gtwin.lib + >> b32.bc

13
Harbour FWH

echo %hdir%\lib\b32\lang.lib + >> b32.bc

echo %hdir%\lib\b32\macro.lib + >> b32.bc

echo %hdir%\lib\b32\rdd.lib + >> b32.bc

echo %hdir%\lib\b32\dbfntx.lib + >> b32.bc

echo %hdir%\lib\b32\debug.lib + >> b32.bc

echo %hdir%\lib\b32\common.lib + >> b32.bc

echo %hdir%\lib\b32\pp.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc

echo %bcdir%\lib\import32.lib, >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc

%bcdir%\ilink32 -aa -Tpe @b32.bc

IF ERRORLEVEL 1 GOTO LINKERROR

ECHO * Application successfully built

ECHO

:LINKERROR

%1

rem if exist meminfo.txt notepad meminfo.txt

rem PAUSE * Linking errors *

14
Harbour FWH

GOTO EXIT

:SINTAX

ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG

ECHO {-- Don't specify .PRG extension

GOTO EXIT

:NOEXIST

ECHO Not exist the specified PRG

:EXIT

Adapting your C source code:

Harbour requires some minor changes on your own developed C files.

We do provide an utility named TOOLS\Clp2Harb.exe that automatically


performs those changes. Clp2Harb.exe is a Harbour small application and its
source code is provided.

Clp2Harb.exe must be called prior to compile your C files:

Clp2Harb.exe <YourFile.c> temp\<YourFile.c>

15
Harbour FWH

Clp2harb.exe creates an output file with the name supplied as second


parameter with the changes already implemented. Later on you call Borland
bcc32.exe with the following syntax:

bcc32 -c TEMP\<YourFile.c>

Using Borland Custom Controls (Bwcc32.dll):

Instead of using the function LoadLibray(“Bwcc.dll”) like in Fivewin 16 bits,


you must do the following:

BWCCRegister( GetResources() )

And place this at the bottom of your main PRG:

DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD


PASCAL LIB "BWCC32.DLL"

16
Harbour FWH

Using Advantage local RDD with


Harbour:

Actually you can use Advantage client kit for 32 bits with Harbour to access remote
or locally DBF files and their related indexes.

The remote access is based on the famous Advantage Xbase server which is also
available to Clipper (16 bits) users, but the local driver is new to all Clipper users
since it does not exist on 16 bits.

The local driver acts as a standard RDD against DBF files, so you can use it to
develope your own applications with Harbour. The Advantage RDD suports CDX and
NTX formats.

The Advantage local driver DLLs are present on a free software published by
Extended Systems on their Web site and Fivewin for Harbour includes the necessary
libraries to access these DLLs.

You may find the Advantage DLLs at the Extended Systems website located at
www.extendsys.com, developers resources section. Once there, you will need to
register yourself, then you will have access to them.

Then go the download area and select the most recent release.

This software includes all the needed libraries which are:


 ACE23.DLL: The 32-bit Advantage Client Engine.

17
Harbour FWH

 AXCWS32.DLL: The Advantage 32-bit communication layer for


client/server access.

 ADSLOC32.DLL: The 32-bit Advantage Local Server.

 EXTEND.CHR: OEM collation sequences. This file is needed if OEM


character sets are to be used with Advantage Local Server.

 ANSI.CHR: ANSI collation sequences. This file may be needed if ANSI


character sets are to be used with Advantage Local Server.

 ADSLOCAL.CFG: The configuration file for Local Server.

All these files should be placed on the \WINDOWS\SYSTEM directory. In case


you have a Advantage Database server then you will only need ACE32.DLL
and AXCWS32.DLL

To use the Advantage RDD from your Harbour applications you just need to
do the following:

Make a reference to file 'ADS.CH' on your PRG files when needed. Include in
the link file the libraries rddads.lib and ace32.lib that came with Fivewin for
Harbour package and request the Advantage RDD at the beginning of your
application.

This is a little sample:

// FiveWin Quick browses feature sample

#include "FiveWin.ch"
#include "ads.ch"

REQUEST _ADS

18
Harbour FWH

//-------------------------------------------------------------//
function Main()

rddRegister( "ADS", 1 )

rddsetdefault( "ADS" )

SET SERVER LOCAL


SET FILETYPE TO CDX

USE Clientes // Open any DBF...

OrdSetFocus("DIRECCION") // Second Tag on Clientes.cdx


go top

Browse() // Quick browse!!!

USE

return nil

//--------------------------------------------------------------//

We highly recommend to use the Advantage remote Xbase Server from


Extended Systems.
==============================================================

The following documentation is provided for your information only and it has
been developed by the Harbour Project development team. We do
recommend its reading.

19
Harbour FWH

Legal Stuff

Copyright

This document as a whole is copyrighted (c) 1999, 2000, 2001, 2002 Dave
Pearson. Some portions of the document may be copyright other individual
authors.

Licence

This document should be considered as free software, distributed under the


terms of the GNU General Public Licence, version 2. For details see the file
COPYING.

Warranty

This document is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY

20
Harbour FWH

or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public


License for more details.

Trademarks

This document may make reference to various trademarks, these trademarks


are acknowledged and are only used for reference purposes.

21
Harbour FWH

About Harbour

What is Harbour?

Harbour is a free software compiler for the xBase superset language often
referred to as Clipper (the language that is implemented by the compiler CA-
Clipper).

Harbour's chosen base implementation is, for the moment, the 5.2e version
of CA-Clipper.

This isn't to say that the additions found in 5.3 won't make it into Harbour, it
simply reflects the fact that many Clipper programmers see 5.2e as the "last
best" implementation of Clipper.

If the 5.3 extensions to the language are important to you please feel free to
contribute to the project.

22
Harbour FWH

Why develop Harbour?

There are probably more reasons for developing Harbour than there are
Harbour developers. To gain a better understanding of why some free
software gets developed you might want to have a read of The Cathedral
and the Bazaar.

Who is developing Harbour?

Many people. There are a small handful of people who could be called the
"core development team" but the actual set of people who are contributing
to the project is constantly in flux.

Anyone can join the "development team" and, if you've got something to
offer the project, you'll be more than welcome.

Anyone wondering who the core developers are should pop over to the
Harbour project web site and look at the crew list.

Who owns Harbour?

Nobody owns Harbour but many people hold the copyright on portions of
Harbour.

23
Harbour FWH

So who do I blame when it all goes wrong?

Harbour is free software and comes with no warranty. The warranty


statement is that which is provided by the GPL:

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details.

How did Harbour get started?

The idea of a free software Clipper compiler has been floating around for a
long time and the subject has often cropped up in discussion on
comp.lang.clipper.

Actual work to get something developed started early in 1999 when Antonio
Linares started a thread to discuss some ideas about developing a Clipper
grammar using Lex and Yacc.

The rest, as they say, is history (that history might form the basis of another
document should I ever get the time to compile it).

24
Harbour FWH

What is "free software"?

In general terms free software is one phrase for describing software that
comes with certain freedoms, the free doesn't speak about the price, it
speaks about your freedoms to use the software.

A common suggestion is that you think "free speech" instead of "free beer".

See

http://www.gnu.org/philosophy/free-sw.html

for the Free Software Foundation's definition of "free software".

A related term is OpenSource, you can find out more about the idea of
OpenSource at

http://www.opensource.org/.

You might also want to note that the FSF don't consider OpenSource and
Free Software to be the same thing, see

http://www.gnu.org/philosophy/free-software-for-freedom.html

for more details.

So is Harbour in the public domain?

No, Harbour isn't in the public domain.

25
Harbour FWH

Most parts of Harbour are copyrighted works and you should respect those
copyrights as you would any other copyright.

With a small number of exceptions each of the Harbour authors have placed
their code under Harbour's chosen licence, currently that licence is the GPL
and/or the GPL with Harbour exception.

Note, however, that some files that are part of harbour have been placed in
the public domain.

What is the GPL?

The GPL is the licence of the GNU system, it is a free software licence. You
might also hear it referred to as the Copyleft.

The GPL is currently the licence under which parts of Harbour are released,
other parts of Harbour are under the GPL plus the Harbour exception.

Why was the GPL chosen as the licence for


Harbour?

That's really a question best asked of each of the Harbour copyright holders.

A simple answer would be that the GPL is seen as one of the more
restrictive free software licences and, for that reason more than any other, it
appeared to give the maximum amount of freedom and at the same time the
correct degree of control over use and distribution.

26
Harbour FWH

What is the Harbour exception?

There is one small wrinkle regarding the use of the GPL as the licence for
Harbour.

Harbour comes in a number of parts, these can best be described as the


compiler (including pre-processor), the virtual machine and the run-time
library.

The GPL dictates that anyone distributing binary versions of GPLd code must
make an offer of providing the source and that the code linked against the
GPLd code must also fall under the GPL. Failure to do so is a breach of
licence.

In Harbour terms this means different things depending on which portion of


Harbour you are considering.

The compiler itself can live under the GPL, it isn't part of the run-time and
so poses no problem.

This isn't true for the HVM and RTL because they get linked into your
application and so would require that your code be distributed under a
compatible licence.

While the Harbour developers would like to see you develop free software
they have decided to let you make this choice.

To solve this problem the developers have employed the "Harbour


Exception".

This idea comes from the GPL exception used by guile. In effect, the
exception states that you must observe the GPL except when the code in

27
Harbour FWH

question is being used as the HVM and RTL of an application compiled with
Harbour.
The wording of the exception currently reads:

The exception is that, if you link the Harbour libraries with other files to
produce an executable, this does not by itself cause the resulting executable
to be covered by the GNU General Public License.

Your use of that executable is in no way restricted on account of linking the


Harbour library code into it.

This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License.

This exception applies only to the code released by the Harbour Project
under the name Harbour.

If you copy code from other Harbour Project or Free Software Foundation
releases into a copy of Harbour, as the General Public License permits, the
exception does not apply to the code that you add in this way. To avoid
misleading anyone as to the status of such modified files, you must delete
this exception notice from them.

If you write modifications of your own for Harbour, it is your choice whether
to permit this exception to apply to your modifications.

If you do not wish that, delete this exception notice.

Please note that the original wording of the exception was based on an
earlier version of the guile exception.

That version of the exception was less verbose and less clear. The wording
of that version read:

28
Harbour FWH

The exception is that if you link the Harbour Runtime Library (HRL) and/or
the Harbour Virtual Machine (HVM) with other files to produce an executable,
this does not by itself cause the resulting executable to be covered by the
GNU General Public License.

Your use of that executable is in no way restricted on account of linking the


RTL and/or HVM code into it.

The Harbour sources are being converted over to the new exception as each
copyright holder makes the change.

The intention is that every item of source that uses the Harbour exception
will clearly use the more verbose version.

So why don't you use the LGPL?

Given the above it might be reasonable to ask why the Harbour developers
didn't elect to use the LGPL instead.

The reason simply comes down to the requirements of the LGPL and what
can be reasonably asked of anyone who wishes to make use of Harbour.

The LGPL requires that any binary distribution of the LGPLd code (in other
words, an application compiled with Harbour and linked against the HVM and
RTL) should be distributed in a method that allows the user to re-link the
application against different and/or later copies of the code under the LGPL.

This is an unreasonable and unworkable requirement as far as the Harbour


developers are concerned.

29
Harbour FWH

For the most part it would be fine on platforms where an application can be
linked against a dynamic version of the HVM and RTL, but any platform that
doesn't support dynamic linking (PC/MS/DR/Open/Free-DOS for example)
would be effectively shut out of Harbour usage.

The Harbour developers consider this to be a reduction of freedom and this


isn't acceptable for free software.

Will my applications be affected by the GPL?

No, the Harbour exception seeks to ensure that, when you build an
application with Harbour, compiling with the Harbour compiler and linking
against the HVM and RTL, your rights to licence your own code are not in
any way affected.

Harbour's licence is there to try and protect the freedom offered by the
Harbour developers.

Harbour's licence isn't there to try and force you to choose a specific licence.

Be assured that it isn't the intention of the Harbour developers that your
applications will have to be released as free software.

Supporting free software would be the right thing to do but the Harbour
developers have decided not to insist on this;

we think it is more useful in this situation to set up Harbour's license so that


it does not make any conditions on the status of your work that was built
with and against Harbour.

As always, don't take anyone else's word for this stuff,

30
Harbour FWH

when in doubt, read the licence.

If you're still in doubt pay someone who knows what they are doing to read

the licence for you. Hopefully you do this with licences for your other
development tools, Harbour is no different, it has a licence that you need to
understand.

31
Harbour FWH

Helping develop Harbour

How do I get started?

The first thing you should do is join the developer's mailing list and read the
mail for a few days to get a feel for what is going on.

You might also want to take a look at the archives too.

What C compiler should I use?

What C compiler do you want to use?

The Harbour developers consider GNU GCC to be the supported compiler of


the Harbour project, use of the GCC port for your chosen platform is
encouraged.

However, should you wish to use a different C compiler your contribution to


make it work is more than welcome.

32
Harbour FWH

Currently the following C compiler and platform combinations are supported


by someone in the development team:

Microsoft Windows

GCC ( CYGWIN)
GCC ( MINGW32)

 oBorland C/C++ 4/5/Builder (their free compiler works)


 Microsoft Visual C++ 10/11/12
 IBM Visual Age for C++

DOS 32bit

 GCC ( DJGPP)

Watcom C/C++

 DOS 16bit
 Borland C/C++ 3.1
GNU/Linux

 GCC (various versions).

 OS/2

 GCC ( EMX)

IBM C++

 Macintosh
 MPW

Instructions on how to build Harbour with the above compilers should reside
in the doc directory of the Harbour source tree.

33
Harbour FWH

If such documentation is missing please consider asking about it on the


development mailing list and, once you've got the information, formatting it
and placing it in the doc directory to help others who may wish to ask the
same question.

What other tools do I need?

To build Harbour you'll need the following tools:

A C compiler.

Please see the FAQ section entitled What C compiler should I use? for more
details on choosing a C compiler.

A make utility.

Most platform/compiler combinations within Harbour make use of GNU make,


some developers use other make utilities, you'll need to speak to them if you
want to ignore the GNU make files.

You should be able to find GNU make at:

Microsoft Windows http://www.steve.org.uk/Software/make/


DOS
ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/v2gnu/mak379b.zip

GNU/Linux Most (if not all) GNU/Linux distributions come with GNU
make. If you can't find the make utility on your system you
should look on your install CDs and/or the ftp site for your
distribution.

34
Harbour FWH

OS/2
ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/devtools/gnumake.zip
Macintosh

TODO: Provide link

A copy of flex:

Windows

See the harbour download page.

DOS

The DJGPP distribution of GNU tools for DOS includes a port of flex.
GNU/Linux

Most GNU/Linux distributions come with a copy of flex. If you don't have it
installed you should install it from your distribution media.

OS/2

TODO: Provide link

Macintosh

TODO: Provide link

A copy of bison:

Windows

See the harbour download page.

35
Harbour FWH

DOS

The DJGPP distribution of GNU tools for DOS includes a port of bison.

GNU/Linux Most GNU/Linux distributions come with a copy of bison. If you


don't have it installed you should install it from your distribution media. OS/2

TODO: Provide link

Macintosh

TODO: Provide link

A CVS client for your chosen platform.

Please see the FAQ section entitled What is CVS and how do I use it? for
more details on getting a CVS client for your environment.

Where can I find the source?

There are three methods of getting the source for harbour, which method
you use will depend on how up-to-date you feel you need to be.

 The unstable snapshot

An archive of the entire CVS source is made available on a daily basis from
via the SourceForge CVS server. Download

http://cvs.sourceforge.net/cvstarballs/Harbour-project-cvsroot.tar.gz.
Please be aware that this is an unstable snapshot. Using this source could
make all sorts of horrible things happen, it might not even compile. You have
been warned.

36
Harbour FWH

Also note that the above is a backup of the entire CVS archive, this includes
records of all the source changes ever made.

Less frequently a snapshot of the source (not a CVS backup) is made


available on the Harbour project web site. If you just want the source
and not a backup copy of the entire CVS archive this is what you
should download.

The stable snapshot


Once in a while a stable snapshot of the Harbour source is made
available from the download page of the Harbour project web site.
These snapshots are referred to as "releases" and are considered
stable in that the source will compile and there are no known
showstoppers in the compiler, virtual machine or run-time library.
If you like to play with alpha quality software but want to feel safe
doing so then a stable release is for you.

Direct CVS access

The best and most direct method of getting Harbour source is from
the CVS server.

This is where the Harbour developers work on the source for Harbour
(actually, they all work on their own machines, this server gives them,
in effect, a virtual shared directory).

If you intend to work with Harbour built from the CVS itself you should
really consider subscribing to the developer's mailing list. Please note
that if you do want to help develop Harbour then the last option is the
best option (and, in the long term, the only useful option for all
concerned).

37
Harbour FWH

What is CVS and how do I use it?

Before proceeding you should probably have a good read of the introduction
to CVS by Jim Blandy. Reading this document should save you a lot of
confusion later on.

To use the CVS server you first need to get a copy of the CVS client software
for your operating system:

 Microsoft Windows See http://www.cyclic.com/cvs/windows.html for


more details.

 DOS 16bit/32bit See the DOS section at


http://www.cyclic.com/cvs/other.html.

 GNU/Linux Many GNU/Linux distributions come with the cvs client


packaged as part of the distribution.

If you don't have it installed check your install CDs or check the ftp
site for the distribution in question.

 OS/2
http://www.cyclic.com/cvs/os2.html o
ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/devtools/cvs110.zip

 Macintosh See
http://www.cyclic.com/cvs/mac.html for more details.

 Other If you are building Harbour with an operating system not listed
then please contact the FAQ maintainer with full details so that this
list can be updated.
Once you have got your CVS client installed you can gain anonymous access
to the Harbour CVS server. Depending on platform, the first thing you need

38
Harbour FWH

to do is set the CVSROOT environment variable to:


:pserver:anonymous@cvs.harbour-project.sourceforge.net:/cvsroot/harbour-
project

In addition to the above some environments might require extra information.


For example, the DOS, Windows and OS/2 CVS clients need to be given two
extra environment variables, HOMEDRIVE and HOMEPATH.

These two environment variables tell the CVS client where the source will live
locally. For example, if your Harbour development directory is at

S:\FREESOFT\HARBOUR you'd set:


SET HOMEDRIVE=S
SET HOMEPATH=\FREESOFT\HARBOUR\

Users of the Windows client have reported that the HOMEPATH environment
variable must start with and finish with a directory separator. Users of the
DOS client have reported that the HOMEDRIVE environment variable must end
with a colon.

Ensure that your harbour directory is created and change into it. Then run:
cvs login and press enter when prompted for a password. Now run: cvs
extract -P harbour

to get a copy of the Harbour CVS repository (users of the DOS client have
reported that it doesn't have the extract command and that the checkout
command should be used instead, I'm also told that the cvs client on
GNU/Linux requires that you use checkout).

Note: The CVS commands and directories are case sensitive: harbour must
be in all lower case (also note that on SourceForge Harbour is known as
"harbour-project").

39
Harbour FWH

Later, when you want to get changes from the CVS, you can do one of two
things:

Repeat the extract command from your Harbour directory.


From your Harbour directory run 'cvs update'.

If you have problems after reading the above please consider reading the
CVS introduction and also the documentation for the CVS client you've
installed. If, after reading both those documents, you are still having
problems you should drop a polite message into the developer's mailing list
detailing your platform, environment, all the steps you performed and the
exact nature of the problem.

How do I build Harbour?

The method used to build Harbour may differ from platform to platform and
even from tool set to tool set. Please have a good read of the files in the doc
directory of the Harbour source.

What needs working on?

See TODO in the root directory of the harbour sources.

If you're looking to get stuck into some Harbour development you'd do well
to subscribe to the developer's mailing list, hang out there for a few days to
get a feel for what is going on and then either start contributing bug fixes

40
Harbour FWH

(always a good way of getting started) or simply announce your intention to


work on an entry on the TODO list.

Are there any development guidelines?

Not as such no. That said, if you are going to cut some code for Harbour you
might want to consider the following random observations:

 Harbour is written in both C and itself. As much as possible we stick


with ANSI C (any non ANSI code should be guarded with pre-
processor directives).

 Too many comments are better than too few comments.

 An ounce of testing can save a ton of debugging. Please ensure that,


when you change code, you attempt to compile and use Harbour
before submitting changes.

 English is the nearest we've got to a common language. Where


possible please code in, comment in and document in English.

 Please don't make use of code you don't have the right to use. For
example, don't go copying CA-Clipper header files to make Harbour
header files.

Have fun.

41
Harbour FWH

Is it ok to extend the language with some spiffy


new feature?

As a rule, no. As stated earlier Harbour is designed, as much as possible, to


be a CA-Clipper 5.2e compatible Clipper compiler (with some 5.3 bits thrown
in when it makes sense)

. As such, until such a time as we're all done on the compatibility front, the
Harbour developers would prefer to keep the language as "pure" as possible.

That said, if you've got an idea for something you think should be added to
the language please feel free to make your case on the developer's mailing
list.

Please note that emails along the lines of "I want feature X because I'd like
to have it" don't cut much ice.

Emails to that effect that actually offer a working patch might cut a little ice.

Preferably, you'll come to the list with a well thought out and documented
case for the addition of a new language extension and you'll be willing to
discuss the proposal.

Also, don't be upset if it is rejected, this is free software after all, if you really
feel that the extension is required you can maintain a patch in parallel or, if
you really must (but we'd prefer if you didn't), you could maintain a forked
distribution of Harbour.

42
Harbour FWH

So what's with all these language extensions then?

Hey, come on, there aren't that many!

Seriously, ok, hands up, you've got us bang to rights. Harbour does include
some extensions to "standard" Clipper but you'll notice that these extensions
are, on the whole, either replacements for "must have" 3rd party add-ons
that people used with CA-Clipper or they are a feature that is native to other
Clipper compiler implementations.

I can't code C, how can I help development?

How about doing some Clipper (the language) coding?

Parts of Harbour have been and can be written in itself. Why not look at
what needs doing in the run-time library and seeing what could be coded
using normal Clipper code?

Don't worry about speed for the moment, chances are the functions you're
thinking about are not speed critical, even if they are someone can come
along and, using your implementation as the base design, re-code it in C for
extra speed (if re-coding will speed it up).

43
Harbour FWH

I've got loads of Clipper code I can donate, what


shall I do?

Harbour isn't a project to create a repository of free Clipper code so, unless
your code directly implements a core Clipper run-time library function it
probably isn't a lot of use to Harbour. However, don't let your code go to
waste, why not consider starting a non-compiler specific but cross-platform
ree software Clipper library that will benefit programmers using any of the Clipper compiler
implementations?

I can't submit Clipper code either, can I still help


anyway?

You could help out any number of ways.

Documentation is one area where volunteers are needed (it's a dirty job but
someone has to do it).

Perhaps you could help maintain the TODO list? How about creating and
maintaining binary snapshots of each of the releases?

Simply put, if you really want to help Harbour development, you'll find a way.

44
Harbour FWH

The Harbour mailing lists

Is there a developer's mailing list?

Yes, the list lives at harbour@lists.harbour-project.org.

To subscribe to the Harbour development mailing list simply send an email to

harbour-request@lists.harbour-project.org

and in the email say "subscribe". Alternatively you can subscribe via the
World Wide Web at

http://www.matrixlist.com/mailman/listinfo/harbour/.

Is there a user's mailing list?

Yes, the list lives at

harbourusers@lists.harbour-project.org.

45
Harbour FWH

To subscribe to the Harbour user's mailing list simply send an email to

harbourusers-request@lists.harbour-project.org

and in the email say "subscribe".

Alternatively you can subscribe via the World Wide Web at

http://www.matrixlist.com/mailman/listinfo/harbourusers/.

Is there a general discussion mailing list?

Yes, the list lives at

harbourtalk@lists.harbour-project.org.

To subscribe to the Harbour discussion mailing list simply send an email to

harbourtalk-request@lists.harbour-project.org

and in the email say "subscribe". Alternatively you can subscribe via the
World Wide Web at

http://www.matrixlist.com/mailman/listinfo/harbourtalk/.

How do I remove myself from the mailing lists?

Every email that comes from the Harbour mailing lists contains instructions
for unsubscribing.

46
Harbour FWH

The information is in the header of the email.

For those people with MUAs that don't allow them to read such vital
information here are the headers at the time of writing:
Harbour

List-Unsubscribe:

http://www.matrixlist.com/mailman/listinfo/harbour,mailto:harbour-
request@lists.harbour-project.org?subject=unsubscribe
harbourusers

List-Unsubscribe:
http://www.matrixlist.com/mailman/listinfo/harbourusers,
mailto:harbourusers-request@lists.harbour-project.org?
subject=unsubscribe
Harbourtalk

List-Unsubscribe:
http://www.matrixlist.com/mailman/listinfo/harbourtalk,
mailto:harbourtalk-request@lists.harbour-project.org?
subject=unsubscribe

No matter what mailing list you are on it is always a good idea to never
subscribe unless you know how to unsubscribe.

This can be as simple as keeping the subscription confirmation message that


many lists send out (they often include instructions on how to unsubscribe).

Are there any rules on the lists?

There are no rules as such but you might want to consider the following
guidelines:

47
Harbour FWH

 Try to stay on topic. The developer's list is for Harbour design and
development issues, the user's list is for Harbour usage discussion and
the discussion list is for general Harbour discussion.

 Try not to mail binaries. Sometimes it is necessary on the


development list, if so, try to keep the size down, the developer's list
is very busy.

 Stick to plain text formatted email, turn off any HTML "features",
content is far more important than form in the Harbour lists.

 Stick to English. This isn't a UK/US/AU-centric thing, it just so happens


that English is more widely comprehended than any other language
available on the lists. If you use English you'll be read by the
maximum number of people.

 Don't use the subject as the message. Single line messages where the
message is in the subject don't carry a lot of information. Be verbose,
you'll stand a better chance of being understood.

 Do use the subject to outline a message. A descriptive subject is more


likely to catch the eye of the people whose eye you wanted to catch.

The above isn't an exhaustive list of guidelines, neither are any of the above
actually "enforced" (although you might find one or two people politely
suggesting you consider abiding by them).

Generally speaking the rules on the Harbour lists are those that apply to
good email composition in general.

48
Harbour FWH

Are the lists archived anywhere?

You can access the developer's list at

http://www.matrixlist.com/pipermail/harbour/,

the user's list at

http://www.matrixlist.com/pipermail/harbourusers/

and the discussion list at

http://www.matrixlist.com/pipermail/harbourtalk/.

Are there any newsgroups for Harbour?

No, there are no newsgroups specific to Harbour. However, Harbour is a


Clipper compatible compiler which means that Harbour is an on-topic subject
for the Usenet group comp.lang.clipper.

 number of binary builds of the latest stable snapshot.


 David G. Holm is maintaing a repository of binary builds of stable (and
sometimes, in parallel, unstable) releases at http://www.jsd-
llc.com/Harbour-Project/.

49
Harbour FWH

 Andi Jahja is maintaining unstable binary distributions aimed at people


working with Borland C++ and Microsoft Visual C++. You can
download his distributions at

http://harbour-interim.harbour-id.net/

Andi updates these distributions on an ad-hoc basis, usually making a


new release when something significant has changed within Harbour's
CVS.

If you can't find binaries for your environment via the above links then this
means that someone isn't contributing for that environment, perhaps you'd
care to step in and fill that gap?

50
Harbour FWH

Installing Harbour

Where can I get pre-built binaries?

While Harbour is still in development the preferred method of getting a


Harbour binary is to download the source and build it yourself because this
aids the development effort.

However, the Harbour developers also appreciate the efforts of people who
don't want to develop Harbour itself but do want to test it and report bugs.
To this end some people maintain Harbour binaries that are ready to be
installed.

Please keep in mind that the following may not be the very latest cut of
Harbour (Harbour changes by the hour while in this early phase of
development) and that some platforms might be better supported than
others. If you see that a platform isn't supported or is out of date please
consider stepping in and making available binaries for that platform.

 The downloads page on the Harbour project's web site contains a


number of binary builds of the latest stable snapshot.

51
Harbour FWH

 David G. Holm is maintaing a repository of binary builds of stable (and


sometimes, in parallel, unstable) releases at http://www.jsd-
llc.com/Harbour-Project/.
 Andi Jahja is maintaining unstable binary distributions aimed at people
working with Borland C++ and Microsoft Visual C++. You can
download his distributions at

http://harbour-interim.harbour-id.net/.

Andi updates these distributions on an ad-hoc basis, usually making a


new release when something significant has changed within Harbour's
CVS.

If you can't find binaries for your environment via the above links then this
means that someone isn't contributing for that environment, perhaps you'd
care to step in and fill that gap?

52
Harbour FWH

Pointers and links

The following is a random collection of pointers and links that deal with
subjects connected to Harbour and the development of Harbour. The links
appear in no particular order and no one link is in any way an endorsement
of the target site by the Harbour development team.

Harbour related links

 The Harbour home page

 Harbour development mailing list archive ,

 Harbour user mailing list archive

 Harbour discussion mailing list archive

 David G. Holm's Harbour Project page (includes source and binary


archives of recent Harbour builds)

53
Harbour FWH

Articles about Harbour

 A gentle introduction to an open-source implementation of the Clipper


language

Free (in either sense of the word) development tool


links

Articles about Harbour

 A gentle introduction to an open-source implementation of the Clipper


language

7.3 Free (in either sense of the word) development


tool links

GCC
DJGPP - GCC for DOS
CYGWIN - GCC for MS-Windows
EMX - GCC for OS/2
Apple MPW tools
GNU make

54
Harbour FWH

GNU make for DOS


GNU make for OS/2
Borland's free C/C++ compiler

Clipper related links

 comp.lang.clipper
 The Oasis
 Other Clipper compiler implementations

o x2c - Summer '87 compatible compiler o FlagShip - Clipper 5.x


compatible Un*x targeting compiler o Xbase++ - Clipper 5.x
compatible Windows and OS/2 targeting compiler o Clip - Free
Software Clipper compatible compiler

 Xbase - Free C++ library for handling DBF files.

Free software related links

The Free Software Foundation

The GNU Project

OpenSource

The Cathedral and the Bazaar

Homesteading the Noosphere

The Magic Cauldron

55
Harbour FWH

Copyleft

FSF's definition of free software

The GPL

The Lesser GPL

Reasons for not using the LGPL

Free software/OpenSource licence list

OpenSources

SourceForge

7.6 Other handy links

 comp.lang.c FAQ

 CVS o Introduction to CVS by Jim Blandy

o CVS Bubbles o CVS--Concurrent Versions System

56
Harbour FWH

Administrative information

Document URL.

The primary location of this document is

http://www.harbour-project.org/faq/.

There is every chance that you might be reading this document from another
location, this is perfectly fine. However, keep in mind that only the above
URL can be relied upon to be the most up-to-date copy.

Alejandro de Garate has translated portions of this document for inclusion in


his Spanish harbour web site.

Please note that I can't vouch for the correctness of the content because I
don't speak Spanish

.dongmingwangh asrans lated this FAQ into Chinese.

See

http://www.xbase.8u8.com/html/xbase/harbour/harbour-faq/harbour.html.

57
Harbour FWH

Once again, please note that I can't vouch for the correctness of the
translation.

Downloading this document.

You can download this document as either a zip file or a gziped tar archive.

Please note that these archives contain the SGML source, the HTML version,
the PostScript version, the GNU info version and the plain text version of the
FAQ.

Feedback about the FAQ.

Feedback about this FAQ is always welcome. Comments, fixes, additions,


subtractions or questions about the document should be sent to

harbour-faq@davep.org.

Please note that questions about Harbour should be directed to one of the
Harbour mailing lists (development questions to the developer's mailing list
and other questions to the Harbour user's mailing list) and/or the Usenet
group comp.lang.clipper.

Let me repeat that, the harbour-faq email address isn't for asking questions
about installing or using Harbour, if you feel the need to send such questions
to that address you've probably not read this document or you've totally
missed the point of the content.

Either way, there is little chance of me being able to help you by that point.

58
Harbour FWH

Document history

Revision 1.39
2003/04/16 14:10:23
Changed the "primary location" for this document.

Revision 1.38
2003/02/10 10:28:49
Updated the links for Mingw and CygWin.

Revision 1.37
2002/10/31 14:27:07
Added pointer to Windows port GNU make as provided by Gerardo Perez.

Revision 1.36
2002/10/03 08:25:08
Improved the consistency of terms regarding the HVM and RTL. Re-wrote
section 2.13, it was very out of date. Added a pointer to the Chinese
translation of the FAQ

Revision 1.35
2001/12/18 08:13:03
Removed the text in FAQ 2.5 that said that the wording of the warranty
might change at some point in the future. Now that the licence details are
settled this isn't an issue.Added FreeBSD to the list of known supported
platforms in FAQ 6.7. Gave (hopefully) useful URLs to each platform listed in
the above list. Minor text corrections.

Revision 1.34
2001/12/14 17:52:27

59
Harbour FWH

Fixed a minor spelling mistake.

Revision 1.33
2001/12/14 17:48:26
Updated the link to Andi's binary distribution site.

Revision 1.32
2001/11/29 13:21:02
Updated the link to Andi's binary distributionsO. Updated FAQ 3.7 to point to
the new name for the file.

Revision 1.30
2001/11/12 16:23:36
distributions.

Revision 1.29
2001/09/24 09:07:18
Added a pointer to Clip in the list of other Clipper compiler
implementations.

Revision 1.28
2001/08/21 10:21:20
Changed question 3.7 to reflect the fact that there is now a TODO list.

Revision 1.27
2001/07/05 10:15:39
Replaced the (non-working since Deja died) Deja link to Antonio's initial
comp.lang.clipper post with a link to the article in Google Groups' archive.

Revision 1.26
2001/05/04 10:03:10

60
Harbour FWH

The CVS server has had the Harbour-project renamed to harbour-project.


Changed all CVS references to take this into account.

Revision 1.25
2001/04/26 10:11:19
Updated the copyright details of this document.

Revision 1.24
2001/04/26 10:10:17
Updated some of the entries regarding licence choices and the Harbour
exception. The exception has changed slightly and the GPL is here to stay.

Revision 1.23
2001/02/27 18:13:12
Attila Feher pointed out that the pointers to the DJGPP port of GNU make on
ftp.cdrom.com had decayed. Fixed.

Revision 1.22
2001/01/20 08:52:48
Updated CVS information, the Blandy document has moved and Alex Schaft
pointed out a problem with following the anonymous CVS example from a
GNU/Linux box.

Revision1.21
2000/12/19 13:09:55
Changed the www.hagbard.demon.co.uk links to www.davep.org links.

61
Harbour FWH

Revision 1.20
2000/10/12 13:35:19
Changed all mailing list links from eGroups to harbour's own list server.

Revision 1.19
2000/08/25 15:46:56
Correct the CVS tutorial links.Added a pointer to the Harbour User's mailing
list archives.Added a pointer to my Harbour page.

Revision 1.18
2000/06/06 12:22:45
Added details about the Harbour user's mailing list.Added "Are there any
newsgroups for Harbour?".

Revision 1.17
2000/05/24 17:23:56
Changed all the OneList links to eGroups links.

Revision 1.16
2000/05/22 09:52:16
Added a pointer to Borland's free (of cost) compiler.Changed some of the
details about source snapshots.Added a section for pointers to articles about
Harbour.

Revision 1.15
2000/02/17 09:16:53
Removed a link to Matthew's that I missed in the last version.

Revision 1.14
2000/02/17 09:13:12
Removed the pointer to Matthew Collins' snapshot page while he's unable to
maintain it. Expanded the answer to question 6.4 to reflect the fact that
harbour development is coming along apace.

62
Harbour FWH

Added a pointer to the Spanish language pages that contain a translation of


parts of this document.Fixed random spelling mistakes

Revision 1.13
2000/01/27 10:00:57
Added "Is Harbour a Windows development tool?".Added "What platforms
are supported by Harbour?". Removed the pointers to Andi Jahja's harbour
snapshot and binary FAQ distribution while he isn't in a position to support
them.

Revision 1.12
2000/01/17 12:42:46
Brian Hays pointed out that the DOS CVS client and section 3.5 didn't fully
agree. Fixed.

Revision 1.11
2000/01/10 16:55:43
Fixed one or two language bugs.Improved some of the language regarding
the GPL (thanks to RMS for his inputon this subject).Noted that this
document is now available from Harbour's SourceForge pages.

Revision 1.10
1999/12/20 18:56:52
Changed the Clipper compiler implementation list in section 7.3 so that it
better outlines what level of the language each compiler implements.
Updated the URL for The Oasis. The FAQ is now available as a PostScript file.
Changed the email addresses to point to davep.org instead of hagbard.
Changed the details of the CVS server now that we've moved to
SourceForge.

Revision 1.9
1999/11/18 17:10:36

63
Harbour FWH

Added details of Andi's unstable snapshot.Where approptiate, parts of the


main document have been linked to the Clipper implementation list in section
7.3. Changed section 6.5 so that it mentions the 3rd party support list.
Revision 1.8
1999/11/16 16:35:41
Corrected the notes about David's and Matthew's web sites in section 7.1, I'd
moved David's to Matthew's and forgot to add one for Matthew.

Revision 1.7
1999/11/16 16:31:52
Added a warning about using non-free licenced copyrighted code to the
development guidelines in section 3.8. Changed the wording in section 4.2 to
suggest thet harbour will have a users mailing list "post-alpha" instead of
"post-beta". Added details about Matthew Collins' unstable snapshot to
section 3.4. Hunted down and fixed a couple more `htmlurl' tags that should
have been `url' tags.Added details of Andi Jahja's alternative(WinTel
oriented)FAQ formats.One or two general tidy-ups.

Revision 1.6
1999/10/10 08:02:41
The HTML produced from arbour.sgml is now passed thru a perl script which
adds some extra colour and formatting information to make the FAQ better
fit the colour scheme of the harbour web site (if you didn't notice the
problem your browser is probably dictating how you view information).

Revision 1.5
1999/10/09 15:11:07
Removed the split of DOS 16/32 bit in the make details part of section
3.3.Changed the `htmlurl' tags into `url' tags in section 3.3, this means that
the URLs actually show up in the plain text version of the FAQ.Changed the C
compiler entry in 3.3 so that it reads better in both the HTML and plain text
versions of the FAQ.Changed the CVS entry in 3.3 so that it reads better in
both the HTML and plain text versions of the FAQ.The heading for the CVS

64
Harbour FWH

links in section 7.5 read "RCS" when it should have read "CVS". Fixed.Placed
the Clipper compiler implementations listed in section 7.3 into their own sub-
list.

Revision 1.4
1999/10/06 05:44:16
Rewrote section 3.4 to reflect the fact that three different methods of getting
the Harbour source now exist.

Revision 1.3
1999/10/02 13:44:15
Updated the information about the downloading of binary archives from the
Harbour web site.Fixed one or two spelling mistakes and grammatical errors.

Revision 1.2
1999/10/02 07:47:06
Fixed some formatting bugs and spelling mistakes. Added details of David
Holm's Harbour site.Noted in the CVS client setup advice that OS/2 requires
the same environment variables as Windows. Made a move to fill the gaps in
the development tool pointer list (your contributions are still needed
people!).

Revision 1.1
1999/10/01 13:36:23
Initial revision

65

You might also like