The Harbour Project map

866 views
Skip to first unread message

Antonio Linares

unread,
Jul 31, 2019, 6:40:54 AM7/31/19
to Harbour Users
To all Harbour users,

Eric Lendvai (https://harbour.wiki/) and I, are working together on the Harbour Project map:


This map wants to explain the design of the Harbour Project and allows to easily review all its source, in a very organized way
quickly identifying the different APIs, used data structures, functions, classes... all of it.

You are welcome to join us on this effort that should bring the most complete overview of the Harbour Project to be used by
current users and future generations of developers.

We await for your comments and suggestions,

best regards

Antonio Linares
Harbour Project Founder
and mod_harbour designer

JoséQuintas

unread,
Jul 31, 2019, 11:11:46 AM7/31/19
to harbou...@googlegroups.com
This already exists on Harbour.

Why to do the same thing on wiki, if could be updated on Harbour?

Are you looking existing one?

I do not understand why people like to do things outside Harbour, duplicating what exists on Harbour, besides update on it.

José M. C. Quintas
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/ffb6bbda-66f9-40a8-a8a3-2cdf2b59a4f4%40googlegroups.com.

Antonio Linares

unread,
Jul 31, 2019, 11:26:54 AM7/31/19
to Harbour Users
Jose,

Where is it the one that you say ?

You received this message because you are subscribed to a topic in the Google Groups "Harbour Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/harbour-users/i9ivaIWxsI8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/79935558-4872-8654-868c-06671fccb8be%40gmail.com.


--
Antonio Linares
www.fivetechsoft.com

JoséQuintas

unread,
Jul 31, 2019, 11:41:22 AM7/31/19
to harbou...@googlegroups.com

Francesco Perillo

unread,
Jul 31, 2019, 11:46:26 AM7/31/19
to harbou...@googlegroups.com
More than browsing harbour core source code, I'd like to implement something like the PHP documentation system:
where we can put all the function references, add samples and, more important, add comments so that the knowledge base can stay in one place.



Francesco Perillo

unread,
Jul 31, 2019, 11:47:06 AM7/31/19
to harbou...@googlegroups.com
the PHP doc site is written in PHP and should be available in php source code...

JoséQuintas

unread,
Jul 31, 2019, 12:36:38 PM7/31/19
to harbou...@googlegroups.com

All Harbour documentation is inside github project, anybody can update, anybody can download, anybody can insert on a IDE, or create an off-line application using the documentation.

Harbour reference is updated automatically after each commit.

May be I am wrong, and wiki will be allways updated.

José M. C. Quintas

Clippero

unread,
Aug 2, 2019, 9:17:59 AM8/2/19
to Harbour Users
In https://github.com/Petewg/harbour-core I find functions that I cannot find in https://harbour.github.io/doc/harbour.html

Example:

hb_cSTR()



Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbou...@googlegroups.com.
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to a topic in the Google Groups "Harbour Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/harbour-users/i9ivaIWxsI8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to harbou...@googlegroups.com.


--
Antonio Linares
www.fivetechsoft.com
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbou...@googlegroups.com.
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbou...@googlegroups.com.
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbou...@googlegroups.com.

JoséQuintas

unread,
Aug 2, 2019, 9:52:50 AM8/2/19
to harbou...@googlegroups.com

All data come from txt files, txt files are like database with records.

These files already exists since too many years ago, Viktor make use of them.

The only thing to do is update the files, and/or create new ones, for new functions/librarys

https://github.com/vszakats/harbour-core/tree/master/doc/en

And is not limited to english, gtwvw have two languages:

https://github.com/vszakats/harbour-core/tree/master/contrib/gtwvw/doc/en

https://github.com/vszakats/harbour-core/tree/master/contrib/gtwvw/doc/pt_BR

An extra explanation here:

Harbour tools are available for all, they are not exclusive of Harbour !!!

If create these files for fivewin, hmg3, hmg extended, oohg, and others, they will be available on docs too !!!

hbmk2 -find

tips on hbmk2

automatic translation to another languages

automatic creation of distribution pack on github

and many other features

This includes use of hbmk2 on XHarbour, and all features becomes available to xHarbour too  !!!!

No more BATS to Xharbour or to libraries !!!!

Seems nobody understand that this is possible, that all configuration to do this is inside Harbour git download.

Documentation is one of the features available, but there are more features than this one.


José M. C. Quintas

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/7ca04bbc-c425-4142-85a4-6cc95f722fae%40googlegroups.com.

Mel Smith

unread,
Aug 2, 2019, 2:06:07 PM8/2/19
to Harbour Users
Hi Jose:

You said:

>This includes use of hbmk2 on XHarbour, and all features becomes available to xHarbour too  !!!!

>No more BATS to Xharbour or to libraries !!!!

>Seems nobody understand that this is possible, that all configuration to do this is inside Harbour git download.


Great !!!

I have complete installations of Harbour and xHarbour on my development machine, and most *all* the various compilers too

So, how do I  create an xHarbour app using only Harbour's HBMK2.EXE, plus my  xHarbour  installation ?

Could you please show a short example here of an xharbour app being compiled using hbmk2.exe.

Thanks !

-Mel

JoséQuintas

unread,
Aug 2, 2019, 3:14:40 PM8/2/19
to harbou...@googlegroups.com

Important:

SET HB_INSTALL_PREFIX=folder of harbour or xharbour

need a copy of HBMK2.EXE on xharbour\bin folder

on xHarbour need to add -xhb to parameters. this not not the library (-lxhb) and not the hbc (xhb.hbc)

mingw libraries default is libxxx.a, I see some libraries using .lib to mingw.


A sample way is a list of prg files: (remember SET HB_INSTALL_PREFIX and hbmk2.exe on xharbour\bin folder)

on Harbour: hbmk2 *.prg

on XHarbour: hbmk2 -xhb *.prg


because will be first time of xHarbour, and xHarbour use different folders, automatic mode will not work, then you can use another feature: a hbmk.hbc on xharbour\bin folder (after tests, if you want, you can reorganize xharbour files to a automatic mode)

This will be the "global" default, to all projects, xharbour\bin\hbmk.hbc and harbour\bin\hbmk.hbc

libpaths=(if not automatic)

incpaths=(if not automatic)

libs=(if not automatic)

headers=(ch files to be used, if not automatic)

On the project hbp file you can add specific parameters too:

{xhb}any to xharbour

{!xhb}any to harbour


On command line, if not automatic, or not found HB_COMPILER, or specific use, you can add compiler definition:  -comp=mingw

With these ones you can make a test.

For a full use, there are many others features to automatize each part of the project/group of projects

José M. C. Quintas

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Daniele Campagna

unread,
Aug 2, 2019, 3:47:57 PM8/2/19
to harbou...@googlegroups.com

What's wrong with xHarbour's hbmake? hbmake -e is handy and works great for me.

Dan
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Aug 2, 2019, 5:35:41 PM8/2/19
to Harbour Users
Hi Jose:


On Friday, August 2, 2019 at 1:14:40 PM UTC-6, JoséQuintas wrote:

Important:

SET HB_INSTALL_PREFIX=folder of harbour or xharbour

need a copy of HBMK2.EXE on xharbour\bin folder

on xHarbour need to add -xhb to parameters. this not not the library (-lxhb) and not the hbc (xhb.hbc)

mingw libraries default is libxxx.a, I see some libraries using .lib to mingw.


A sample way is a list of prg files: (remember SET HB_INSTALL_PREFIX and hbmk2.exe on xharbour\bin folder)

on Harbour: hbmk2 *.prg

on XHarbour: hbmk2 -xhb *.prg


because will be first time of xHarbour, and xHarbour use different folders, automatic mode will not work, then you can use another feature: a hbmk.hbc on xharbour\bin folder (after tests, if you want, you can reorganize xharbour files to a automatic mode)

This will be the "global" default, to all projects, xharbour\bin\hbmk.hbc and harbour\bin\hbmk.hbc

libpaths=(if not automatic)

incpaths=(if not automatic)

libs=(if not automatic)

headers=(ch files to be used, if not automatic)

On the project hbp file you can add specific parameters too:

{xhb}any to xharbour

{!xhb}any to harbour


On command line, if not automatic, or not found HB_COMPILER, or specific use, you can add compiler definition:  -comp=mingw

With these ones you can make a test.

For a full use, there are many others features to automatize each part of the project/group of projects

José M. C. Quintas


I'll work on this tomorrow..
Thanks !

-Mel
 

Mel Smith

unread,
Aug 2, 2019, 5:37:31 PM8/2/19
to Harbour Users


On Friday, August 2, 2019 at 1:47:57 PM UTC-6, DanCa wrote:

What's wrong with xHarbour's hbmake? hbmake -e is handy and works great for me.

Dan


Hi Dan:

 Just another tool for my toolbox :) 

-Mel

JoséQuintas

unread,
Aug 2, 2019, 7:01:36 PM8/2/19
to harbou...@googlegroups.com

What about this?

hbmk2 test

C:/Users/jmcqu/AppData/Local/Temp/hbmk_k8pttu.dir/test.o:test.c:(.data+0x58): undefined reference to `HB_FUN_WIN_OLECREATEOBJECT'
C:/Users/jmcqu/AppData/Local/Temp/hbmk_k8pttu.dir/test.o:test.c:(.data+0x68): undefined reference to `HB_FUN_BT_REGIONCOMBINE'
c

hbmk2: Hint: Install package bostaurus and input file 'bostaurus.hbc' for
       missing Harbour function(s): bt_regioncombine()
hbmk2: Hint: Install package hmg3_core and input file
       'addons\hmg3\hmg3_core.hbc' for missing Harbour function(s):
       bt_regioncombine()
hbmk2: Hint: Install package oohg_bostaurus and input file
       'addons\oohg\oohg_bostaurus.hbc' for missing Harbour function(s):
       bt_regioncombine()
hbmk2: Hint: Add input file 'hbwin.hbc' for missing Harbour function(s):
       win_oleCreateObject()

win_OleCreateObject() is part of hbwin

bt_regioncombine() can be of bostaurus, HMG 3, OOHG

Only another feature on compile/link, not limited to Harbour functions.

(I create the libraries using hbmk2 and the feature hbx)


José M. C. Quintas

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Aug 3, 2019, 11:07:21 PM8/3/19
to Harbour Users
Hi Jose:

   I have successfully used hbmk2.exe on an xHarbour source app (a simple one).  The Harbour.exe was built using BCC 7.4.

   The app built correctly and ran perfectly.
 
   My batch file for building single source file apps is shown below.

   I normally use lengthy .BC files to contain commands and source inputs, and librarys as input for building.

   Is there available a program to convert .BC files to .HBC files ?

   OR, can you provide a sample .HBC file showing a multi-source input with extra librarys ?

   OR,  is there an .HBC creating/building app available for use ?

Thanks for the guidance !

-Mel


***** bldxh74.bat *****
cd \cgi
del xhblog.txt
SET MWSPATH=%PATH%
SET HB_INSTALL_PREFIX=C:\XHARBOUR
SET PATH=\BORLAND\BCC74\BIN;\BORLAND\BCC74\LIB;\XHARBOUR\BIN\;\XHARBOUR\LIB;
c:\xharbour\bin\hbmk2 -xhb -workdir=c:\cgi\app -oc:\cgi\tst.exe c:\cgi\source\%1.prg > C:\cgi\xhblog.txt 2>&1
:FINISH
SET HB_INSTALL_PREFIX=
SET PATH=%MWSPATH%
**********

Mel Smith

unread,
Aug 3, 2019, 11:27:46 PM8/3/19
to Harbour Users
Hi Jose:
Hi Jose:

   I have modified my build batch file to accommodate multi source input files. (Please see below)

   Instead of actual source input files I use a response file (i.e., @c:\dir\myapp.rsp) which contains the names of all needed input source files.

   This works correctly.

    Now, what else should I  (or can I) place in these response .rsp files please ?
 
Thanks again !

-Mel
 

***** bldxh74.bat *****
cd \cgi
del xhblog.txt
SET MWSPATH=%PATH%
SET HB_INSTALL_PREFIX=C:\XHARBOUR
SET PATH=\BORLAND\BCC74\BIN;\BORLAND\BCC74\LIB;\XHARBOUR\BIN\;\XHARBOUR\LIB;
c:\xharbour\bin\hbmk2 -xhb -workdir=c:\cgi\app -oc:\cgi\tst @c:\cgi\%1.rsp > C:\cgi\xhblog.txt 2>&1

JoséQuintas

unread,
Aug 4, 2019, 2:24:42 AM8/4/19
to harbou...@googlegroups.com

You can create a HBP file with all the command line parameters, and/or a list of prg, c, rc files

HBP - to project

HBC - to a group/library definition

\xharbour\bin\hbmk.hbc - a global definition to all projects

hbmk.hbc on folder - to a folder definition

library.hbc on a library folder - to a library definition

Examples:

You can create a hbc file to hwgui, other to hmg, other to oohg, and on project you add a line: hwgui.hbc as example

You can create a xharbour\bin\hbmk.hbc to define compress, work directory, basic default libraries to all projects

on HBP you include only specific part of the project: prg, c, rc, icon

an option is hbmk2 *.prg -omyapp

full help: hbmk2 -longhelp

Today I made some tests using more features of hbmk2 over XHarbour.

Create a intermediary bat, to do not need allways add -xhb, without lost the feature of -find

---hbmk2.bat---

@echo off
if "%1" == "-find" goto :find
xhbmk2 -xhb %*
goto :fim
:find
xhbmk2 %*
:fim

I made a test with XHarbour, using few options of hbmk2, and write here, site uses portuguese-brasilian but it have a icon to translate to english on the top of the page.

http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=23156

José M. C. Quintas

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Aug 4, 2019, 11:00:21 AM8/4/19
to Harbour Users
Hi Jose:

   I translated your link to English,  but my ignorance is un-translatable  :((

   So, I don't know what do do next *simply* to take commands from a .BC file and place them in a .HBC File.

   I guess I need to understand more about .HBC, .HBP, .HBX files.  Where are the descriptions of these files shown please and where and when are they used  ?

-Mel


Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbou...@googlegroups.com.

JoséQuintas

unread,
Aug 4, 2019, 4:21:43 PM8/4/19
to harbou...@googlegroups.com

At momment only a quick reference when use:  hbmk2 -longhelp


To test hmk2:

1) test on command line

hbmk2 file1.prg file2.prg file3.prg file4.c file5.rc file6.ico -w3 -es2 -m -n -omyexe.exe

Using this option, you solve any compilation


2) To reduce the command line

create an hbp file, and insert parameters on it. may be one per line, 2, 3, several, all

Using this option, you solve any compilation


3) If you use a library

project1.hbp test1.prg -lfivewin.lib -Lfivewin/lib -ifivewin.ch -Ifivewin/include -gui

project2.hbp test2.prg -lfivewin.lib -Lfivewin/lib -ifivewin.ch -Ifivewin/include -gui

project3.hbp test3.prg -lfivewin.lib -Lfivewin/lib -ifivewin.ch -Ifivewin/include -gui

Same parameters to fivewin, 5 parameters on all projects.

Better to use a hbc:  fivewin.hbc libpaths=fivewin/lib incpaths=fivewin/include libs=fivewin headers=fivewin.ch gui=yes

Now, on projects you can use:

project1.hbp test1.prg fivewin.hbc

project2.hbp test2.prg fivewin.hbc

project3.hbp test3.prg fivewin.hbc

Using this option you reduce your hbp content, and organize libraries


4) hbx is a special file, is a output when linking a library, optional use

this file is used to find function names (hbmk2 -find name), when linking hbmk2 uses the name to help about what to link, to use hbmk2 function to adjust case of function names, to make the library available as DLL

Using this option you will have additional features


a quick creation of a hbp file:

dir *.prg /b > myapp.hbp

dir *.c /b >> myapp.hbp

dir *.rc /b >> myapp.hbc


First step is to use hbmk2 and hbp file

Next step is to know about each feature, and test what you can use to make the work easy/better.


José M. C. Quintas


Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/acc79037-37b8-4156-b473-b4d87fb44232%40googlegroups.com.

JoséQuintas

unread,
Aug 4, 2019, 7:38:26 PM8/4/19
to harbou...@googlegroups.com

hbmk2 is using the feature of po files, it is available on hbmk2.

Change language and see result:

SET HB_LANG=XX

HBMK2

Available EL, EN, ES, ES_419, FR, GL, HU, IT, pt_BR

https://github.com/vszakats/harbour-core/tree/master/utils/hbmk2/po

José M. C. Quintas


Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/acc79037-37b8-4156-b473-b4d87fb44232%40googlegroups.com.

JoséQuintas

unread,
Aug 5, 2019, 5:25:13 AM8/5/19
to harbou...@googlegroups.com

update a info:

SET HBMK_OPTIONS=-xhb

SET HB_INSTALL_PREFIX=\xharbour\bin

Using this setup hbmk2 uses external harbour.exe defined on HB_INSTALL_PREFIX

default is: hbmk2 do not needs harbour.exe

José M. C. Quintas

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/acc79037-37b8-4156-b473-b4d87fb44232%40googlegroups.com.

José Quintas

unread,
Aug 5, 2019, 5:32:03 AM8/5/19
to Harbour Users
My mistake: HB_INSTALL_PREFIX is \xharbour and not \xharbour\bin

José M. C. Quintas

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-users+unsubscribe@googlegroups.com.

Luigi Ferraris

unread,
Aug 5, 2019, 6:37:59 AM8/5/19
to Harbour Users
Hi friends,
first of all: please, stay tuned on post subject's :-) else can be considered a help request.

@Antonio I think it would be a superlative job, but I fear it is reserved for a few people: the developers.
Your proposal is shareable and users can have benefits but I think this kind of documentation it's very, very specialized.

@Josè, I'm in agreement with you: only one place is better, but

1) https://github.com/vszakats... with great respect to Viktor but links you show are to a forked project :-) not official Harbour site

2) developers are few and (I think) they prefer write code to maintain/solve problems.
On th other hand, reading sources many times you find comments, but other times you don't find anything both on source and changelog;
sometimes comments are specific for developers sometimes for end users
So, I'm in agreement with @fperillo but maintainers/developers need to define the strategy to keep documentation: format, where, etc.
Keeping in mind documentation is for... developers or end users, as example:
a) writing (structured) comments on source and having a tool to extract description and create html (and perhaps a pdf)?
b) writing external (structured) text file and having a tool to extract description and create html (and perhaps a pdf)?
c) writing comments on source (for developers) and a text for end users and than a tool?
ecc., ecc.

3) is there someone want help developers/maintainers following their directives? This is an Open Source project

A side note, not a polemic with anyone: as @Clippero point out, try to find on https://harbour.github.io/doc/harbour.html#harbour-extensions
info related to hb_ColorIndex or hb_NtoColor or hb_VfExists or reserved method/var name related to classes implementation.

Best regards
Luigi Ferraris

Mel Smith

unread,
Aug 5, 2019, 4:13:33 PM8/5/19
to Harbour Users
Hi Jose:

   Thank you very much for these detailed instructions and examples. I am reading and studying hbmk2 --longhelp, and am learning more each day.

   ( btw, I *did* try to use: hbmk2 -hbmake=c:\cgi\myapp.bc   but the result contained only the first of two input .prg files, and ignored the second. Also, all the librarys specified were ignored. So, I guess this -hbmake option is not helpful)

   
   But, with your guidance below, I will build more .hbp project files and try to implement hbmk2 in all my future builds.

   Thanks again !

-Mel

JoséQuintas

unread,
Aug 5, 2019, 6:16:09 PM8/5/19
to harbou...@googlegroups.com

Good to know.

I found document about hbmk2.

https://github.com/vszakats/harbour-core/tree/master/utils/hbmk2/doc

Click on the file of your prefered language.

José M. C. Quintas


Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/7b9d8c85-814b-4537-94e0-6e5bf223456e%40googlegroups.com.

Mel Smith

unread,
Aug 5, 2019, 8:15:28 PM8/5/19
to Harbour Users
Hi Jose:

You said earlier

>To test hmk2:

>1) test on command line

>hbmk2 file1.prg file2.prg file3.prg file4.c file5.rc file6.ico -w3 -es2 -m -n -omyexe.exe

>Using this option, you solve any compilation

However, my build failed when  I placed -w3 -es2 -m -n in the .HBP File or on the Command line in my batch file ??

These options are *harbour* options and not hbmk2 options.

So, how do I pass 'harbour' options thru the hbmk2 executable so that Harbour accesses them please ?

(and do I really need them  ?)

Thanks.

-Mel


Message has been deleted

Mel Smith

unread,
Aug 6, 2019, 12:49:41 PM8/6/19
to Harbour Users

Hi Jose:

   I have completed my tests and have built a more complex app successfully. Thank you for your help

   I show below my actual and most current build batch file for building apps in my multi-app c:\CGI\ directory

   This directory has approx 10 xHarbour separate apps, of which the biggest is the CGI app which serves the users here and at xHarbour with downloads (i.e., WHO.PRG).

   The WHO.PRG is a cgi app which is called by the Apache 2.2 server to service download calls.   WHO accesses (read and write) databases, access html templates, builds and modifies html pages, builds, creates Javascript  and CSS code.  And does security checks on accesses to the whosaway.com page.  It gets activated by Apache, and reads and writes only with Apache.

   And my Apache server also handles two other of my web sites concurrently.

   Anyway, altho I have rebuilt my WHO app successfully,  I have not yet deployed the new 'WHO' executable to my server machine.  Will try doing that over the next few days after some further checks.

Your help is very much appreciated !

-Mel

***** who.hbp file *****
#who.hbp
#=====
#
-strip
-info
-trace
-static
-st

/n
/m
/a
/v

-workdir=c:\who\app\
-rebuildall
-owho

-L\borland\bcc74\lib;\xharbour\lib
-L\xharbour\lib -lct
-L\xharbour\lib -ltip

\who\source\who.prg
\who\source\whoproc.PRG
\who\source\whoutils.prg
\who\source\errorsys.prg

***** end of who.hbp *****

***** bldxh74.bat (batch file for building several apps in CGI folder) *****
cd \who
del xhblog.txt
SET MWSPATH=%PATH%
SET HB_INSTALL_PREFIX=C:\XHARBOUR
SET PATH=\BORLAND\BCC74\BIN;\BORLAND\BCC74\LIB;\XHARBOUR\BIN\;\XHARBOUR\LIB;
c:\xharbour\bin\hbmk2 -xhb %1.hbp > C:\who\%1log.txt 2>&1
:FINISH
SET HB_INSTALL_PREFIX=
SET PATH=%MWSPATH%
***** end of bldxh74.bat *****



Jayadev U

unread,
Aug 6, 2019, 1:11:30 PM8/6/19
to harbou...@googlegroups.com

Hi Mel,

 

Please include the following lines in your .hbp file:

 

-prgflag=/a /m /n /w2 /es0 /b

 

You may change the values as you prefer.

 

Warm regards,

 

Jayadev

--

--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Aug 6, 2019, 2:18:39 PM8/6/19
to Harbour Users
Hi Jayadev:

Please include the following lines in your .hbp file:

 

-prgflag=/a /m /n /w2 /es0 /b


   Yes, this option worked correctly too.   Thank you !
   (but strangely, the definition says -prgflag accepts only a *single* option. Yet, those several options are accepted correctly and passed thru to harbour!)

   I wonder if there is an option to force ilink32.exe to use a working directory that *I* can name (rather than the default one)???

-Mel


 

 

 

JoséQuintas

unread,
Aug 6, 2019, 4:35:07 PM8/6/19
to harbou...@googlegroups.com

Path for libraries? / hbmk2 already on path / SET HBMK_OPTIONS=-xhb

***** bldxh74.bat (batch file for building several apps in CGI folder) *****

cd \who
del xhblog.txt
SET MWSPATH=%PATH%
SET HB_INSTALL_PREFIX=C:\XHARBOUR
SET HBMK_OPTIONS=-xhb
SET PATH=\BORLAND\BCC74\BIN;\XHARBOUR\BIN

hbmk2 -xhb %1.hbp > C:\who\%1log.txt 2>&1
:FINISH
SET HB_INSTALL_PREFIX=
SET HB_OPTIONS=

SET PATH=%MWSPATH%
***** end of bldxh74.bat *****



***** who.hbp file *****
#who.hbp
#=====
#
-strip
-static
-st
/n /m /a /v
-workdir=c:\who\app\
-lct
-ltip
-q

-owho


\who\source\who.prg
\who\source\whoproc.PRG
\who\source\whoutils.prg
\who\source\errorsys.prg

***** end of who.hbp *****

note: why send trash to application? could be c:\temp
but remember to delete folder when changing project, to do not mix files with same name
-workdir=c:\temp

note: these paths are default
-L\borland\bcc74\lib
-L\xharbour\lib

note: these parameters may be needed only when "debuging" hbmk2 commands
-info
-trace

note
-q: quiet mode, show errors only
-inc: incremental build

when needed, you can add parameters on command line

hbmk2 who.hbp -rebuild /b -info -trace


Think this:

If you work with xharbour only, you can create a single file, or setup on windows:

---setxhb.bat---

SET HBMK_OPTIONS=-xhb

SET HB_INSTALL_PREFIX=c:\xharbour\bin

SET PATH=c:\xharbour\bin;c:\borland\bcc74\bin


After this, you go to each folder and type:

hbmk2 *.hbp

No more bats to compile, only a batch to setup xharbour


José M. C. Quintas

Mel Smith

unread,
Aug 6, 2019, 5:35:49 PM8/6/19
to Harbour Users
Hi Jose:

   Thank you for your further notes.
   I will look at them nore closely tomorrow.

-Mel
No, I like keeping the work/temporary files within this APP directory. But, I realize it is named incorrectly and should be named c:\cgi\temp. And will change its name immediately :))

-Mel

Jayadev U

unread,
Aug 7, 2019, 1:43:54 PM8/7/19
to harbou...@googlegroups.com

   I wonder if there is an option to force ilink32.exe to use a working directory that *I* can name (rather than the default one)???

 

[Jayadev]

Please use in your hbp file:

-workdir=e:\projectwip\VyapariS\

 

Warm regards,

 

Jayadev

 

 

 

 

 

 

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Aug 7, 2019, 2:20:53 PM8/7/19
to Harbour Users
Hi Jayadev:


On Wednesday, August 7, 2019 at 11:43:54 AM UTC-6, Jayadev wrote:

   I wonder if there is an option to force ilink32.exe to use a working directory that *I* can name (rather than the default one)???

 

[Jayadev]

Please use in your hbp file:

-workdir=e:\projectwip\VyapariS\



Please note that I *already do use* -workdir in my .hbp file.

*and* that work directory is used by all the Harbour / BCC32 commands.

HOWEVER,  the ilink32.exe   does *not* use this directory specification (c:\who\temp) . See below:

***** ending fragment of the build log ****
bcc32.exe -c -q -CP437 -d -O2 -OS -Ov -Oc -Oi -6  -tWM -w -Q -w-sig- -nc:\who\temp\ -I\BORLAND\BCC74\Include -I\BORLAND\BCC74\Include\dinkumware -I\BORLAND\BCC74\Include\windows\crtl -I\BORLAND\BCC74\Include\windows\sdk -IC:\XHARBOUR\include c:\who\temp\who.c c:\who\temp\whoproc.c c:\who\temp\whoutils.c c:\who\temp\errorsys.c
c:\who\temp\who.c:
c:\who\temp\whoproc.c:
c:\who\temp\whoutils.c:
c:\who\temp\errorsys.c:
hbmk2: Linking... whoinit.exe
hbmk2: Linker command:

***** NOTE THE NEXT LINE ****

ilink32.exe @C:\Users\SYNTEL~1\AppData\Local\Temp\h1nlnv.lnk

**** Do you see where ilink32 is getting its info *****


hbmk2: Linker script:
-Gn -Tpe -L\BORLAND\BCC74\Lib;\BORLAND\BCC74\Lib\PSDK;C:\XHARBOUR\lib;\borland\bcc74\lib;\xharbour\lib;\xharbour\lib;\xharbour\lib  -ap c0x32.obj c:\who\temp\who.obj c:\who\temp\whoproc.obj c:\who\temp\whoutils.obj c:\who\temp\errorsys.obj, whoinit.exe, nul, ct.lib tip.lib debug.lib vm.lib rtl.lib lang.lib codepage.lib gtcgi.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib gtgui.lib rdd.lib usrrdd.lib dbfntx.lib dbfcdx.lib dbfnsx.lib dbffpt.lib rdd.lib hsx.lib hbsix.lib macro.lib pp.lib common.lib winmm.lib kernel32.lib user32.lib gdi32.lib advapi32.lib ws2_32.lib iphlpapi.lib winspool.lib comctl32.lib comdlg32.lib shell32.lib uuid.lib ole32.lib oleaut32.lib mpr.lib mapi32.lib imm32.lib msimg32.lib wininet.lib pcrepos.lib zlib.lib   cw32mt.lib import32.lib, ,
Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.

It is NOT important -- only annoying.

-Mel
 

JoséQuintas

unread,
Aug 7, 2019, 6:31:18 PM8/7/19
to harbou...@googlegroups.com

You need caution, but you can use one single folder.

set workdir=c:\temp

Caution is about more than one project using same file names.


I call a EXE before HBMK2: it checks if current folder is different than before, and delete all from c:\temp

   IF ! Upper( cLastPath ) == Upper( hb_cwd() )
      DeleteContent( "c:\temp", .F. )

In this way, no trash on folders, but incremental compilation will be available only on current project.


José M. C. Quintas

Mel Smith

unread,
Aug 8, 2019, 10:08:27 AM8/8/19
to Harbour Users
Hi Jose:


On Wednesday, August 7, 2019 at 4:31:18 PM UTC-6, JoséQuintas wrote:

You need caution, but you can use one single folder.

set workdir=c:\temp

Caution is about more than one project using same file names.


I call a EXE before HBMK2: it checks if current folder is different than before, and delete all from c:\temp

   IF ! Upper( cLastPath ) == Upper( hb_cwd() )
      DeleteContent( "c:\temp", .F. )

In this way, no trash on folders, but incremental compilation will be available only on current project.


I always use REBUILDALL (rather than -inc) for my projects, so I don't have those potential problems

-Mel
  
Reply all
Reply to author
Forward
0 new messages