Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

xHarbour Builder complete sources uploaded!

359 views
Skip to first unread message

Ron Pinkas

unread,
Aug 14, 2023, 2:26:47 PM8/14/23
to
As promised the complete xHarbour.com sources of ALL of our products, scripts, documentation, etc. have been uploaded to the xHarbour.org GitHub repository (including all commit history) into the xHarbourBuilder sub folder.

Enjoy!

Ron

Enrico Maria Giordano

unread,
Aug 14, 2023, 3:15:06 PM8/14/23
to


Il 14/08/2023 20:26, Ron Pinkas ha scritto:

> As promised the complete xHarbour.com sources of ALL of our products, scripts, documentation, etc. have been uploaded to the xHarbour.org GitHub repository (including all commit history) into the xHarbourBuilder sub folder.

Thank you, Ron! Unfortunately, the new version of xHarbour from GitHub
is useless for me as it can't be built. I hope it will be fixed soon. In
the meantime I'll keep using the one from SVN.

--
Enrico Maria Giordano

http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg

Richard Visscher

unread,
Aug 14, 2023, 3:46:32 PM8/14/23
to
Hi Ron and Patrick,

Thanks for releasing the files/sources, i am working on a updated version of xhb.com with pellesc-12 32 and 64 bit also, they will be
available soon also.

regards,
Richard

Op maandag 14 augustus 2023 om 20:26:47 UTC+2 schreef Ron Pinkas:

Ron Pinkas

unread,
Aug 14, 2023, 3:56:53 PM8/14/23
to
On Monday, August 14, 2023 at 2:15:06 PM UTC-5, Enrico Maria Giordano wrote:

> Thank you, Ron! Unfortunately, the new version of xHarbour from GitHub
> is useless for me as it can't be built. I hope it will be fixed soon. In
> the meantime I'll keep using the one from SVN.

Sorry Enrico, I somehow missed that - which O/S and Compiler? What error?

Ron

marcosgambeta

unread,
Aug 14, 2023, 4:57:51 PM8/14/23
to
Ron,

Thank you.

The source code is under which license ?

I found this info:

https://github.com/ronpinkas/xharbour/blob/main/xHarbourBuilder/Free/ReadMe.rtf

"This distribution of xHarbour from http://free.xHarbour.com is made from a combination of free software as well as proprietary software from xHarbour.com Inc.

Special care should be given to making sure that you are absolutely clear on the License that apply to each respective component. Be advised that "xeditw.exe", "xbuild.exe", "xbuildw.exe", "XBScript.dll" and "xHarbour Language Reference Guide.chm" which is part of this distribution are NOT part of the xHarbour project, and are NOT subject to the GPL but are products from xHarbour.com Inc. which grants you the non exclusive right to use these files only in conjunction with xHarbour distributions from free.xHarbur.com. You are STRICTLY PROHIBITED from distributing any of these files to anyone else."

I would like to adapt SQLRDD to work with my fork of Harbour:

https://github.com/marcosgambeta/harbourpp-v1

But I dont want to violate any license. :-)

Enrico Maria Giordano

unread,
Aug 14, 2023, 5:33:09 PM8/14/23
to


Il 14/08/2023 21:56, Ron Pinkas ha scritto:

>> Thank you, Ron! Unfortunately, the new version of xHarbour from GitHub
>> is useless for me as it can't be built. I hope it will be fixed soon. In
>> the meantime I'll keep using the one from SVN.
>
> Sorry Enrico, I somehow missed that - which O/S and Compiler? What error?

Warning W8004 source\pp\ppgen.c 717: 'szUTC' is assigned a value that is
never used in function hb_pp_parseChangelog

Warning W8056 obj\b32\comptool.c 631: Integer arithmetic overflow in
function hb_verCvsID

Warning W8056 obj\b32\hbrc.c 359: Integer arithmetic overflow in
function main
Warning W8056 obj\b32\hbrc.c 360: Integer arithmetic overflow in
function main
Warning W8056 obj\b32\hbrc.c 380: Integer arithmetic overflow in
function main
Warning W8056 obj\b32\hbrc.c 384: Integer arithmetic overflow in
function main

Error harbour.exe.rc 3 0: Too many digits in a number


And this is what I get using this batch for MSC32 (works fine with
xHarbour from SVN):

@ ECHO OFF

SET MSC=e:\msc32\msc
SET XHB=e:\msc32\xharbour

SET __MSC__=1
SET USE_MSVCRT=1

SET CC_DIR=%MSC%

SET CFLAGS=-O1

SET INCLUDE=%MSC%\include\ucrt;%MSC%\include;%MSC%\include\sdk
SET LIB=%MSC%\lib;%MSC%\lib\sdk

SET HB_DIR_OPENSSL=e:\xhbsvn\openssl-win32

SET HB_GUI=1
SET HB_NO_BACKGROUND=1
SET HB_NO_DV_MEMCPY=1
SET HB_NO_FM_DL_ALLOC=1
SET HB_NO_VM_ALL=1

CALL make_vc clean
CALL make_vc core
CALL make_vc contrib

PAUSE


Result:

Removing System and Object Files ...
Removing DLL and Object Files ...
Removing Contrib Libraries and Object Files ...
Done ...

****** End of Job *****
\NVIDIA non atteso.

Ron Pinkas

unread,
Aug 14, 2023, 7:24:37 PM8/14/23
to
Enrico,

> Warning W8004 source\pp\ppgen.c 717: 'szUTC' is assigned a value that is
> never used in function hb_pp_parseChangelog
>
> Warning W8056 obj\b32\comptool.c 631: Integer arithmetic overflow in
> function hb_verCvsID
>
> Warning W8056 obj\b32\hbrc.c 359: Integer arithmetic overflow in
> function main
> Warning W8056 obj\b32\hbrc.c 360: Integer arithmetic overflow in
> function main
> Warning W8056 obj\b32\hbrc.c 380: Integer arithmetic overflow in
> function main
> Warning W8056 obj\b32\hbrc.c 384: Integer arithmetic overflow in
> function main
>
> Error harbour.exe.rc 3 0: Too many digits in a number

Please update and check after:

2023-08-14 18:04 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
* source/pp/ppgen.c
* Fixed compiler warnings caused by the auto generated /include/hbver.h

> And this is what I get using this batch for MSC32 (works fine with
> xHarbour from SVN):
> ...
> Result:
>
> Removing System and Object Files ...
> Removing DLL and Object Files ...
> Removing Contrib Libraries and Object Files ...
> Done ...
>
> ****** End of Job *****

I am not familiar with this, and sadly it does not provide any error info. I simply use make_vc.bat as it has builtin auto detection. Which specific version of Windows and MSC are you using? Can you try to see what is the actual error in the log files?

Ron

Ron Pinkas

unread,
Aug 14, 2023, 8:40:40 PM8/14/23
to
For now I just uploaded the whole GIT as it was in our PRIVATE instance. The intent is to release all our software with the same License as the xHarbour RTL (GPL 2 or later at your choice), which means I will have to modify licenses included and/or add new licenses. Will do ASAP. Code that xHarbour.com did not own, such as the Pelle's C and any other 3rd party of course will remain the same. You are hereby specifically and explicitly given permission to use SQLRDD, Visual xHarbour, xEdit, xBuild, WinAPI, ActiveX, Apollo RDD, IEGui, Update Server, OleServer, RushMore, xBaseScript (ActiveScript), XDO subject to the terms of the GPL Version 2 or later, just as any other xHarbour RTL code.

Ron

Leonardo Machado

unread,
Aug 15, 2023, 8:21:15 AM8/15/23
to
Em segunda-feira, 14 de agosto de 2023 às 15:26:47 UTC-3, Ron Pinkas escreveu:
Very good master.
I'm going to lower my head in these sources and try to compile with my project.

Leonardo Machado

Enrico Maria Giordano

unread,
Aug 15, 2023, 8:24:56 AM8/15/23
to


Il 15/08/2023 01:24, Ron Pinkas ha scritto:

> Please update and check after:
>
> 2023-08-14 18:04 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
> * source/pp/ppgen.c
> * Fixed compiler warnings caused by the auto generated /include/hbver.h

Now I get:

source\compiler\hbmain.c:
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.

Error harbour.exe.rc 3 0: Too many digits in a number


And in the console I get:

Removing System and Object Files ...
Removing DLL and Object Files ...
Removing Contrib Libraries and Object Files ...
Done ...

****** End of Job *****
Creating System Files (ST) ...
Creating Contrib Libraries ...
Impossibile trovare l'etichetta batch specificata - CONTRIBS_ERR
Premere un tasto per continuare . . .


I'm compiling with BCC32 and the following batch:

@ ECHO OFF

CALL bcc32 /paths

SET CC_DIR=%BCC%

SET CFLAGS=-w!-

SET LFLAGS=-L%BCC%\lib;%BCC%\lib\psdk

SET HB_DIR_OPENSSL=e:\xhbsvn\openssl-win32

SET HB_GUI=1
SET HB_NO_BACKGROUND=1
SET HB_NO_DV_MEMCPY=1
SET HB_NO_FM_DL_ALLOC=1
SET HB_NO_VM_ALL=1

CALL make_bc clean
CALL make_bc core
CALL make_bc contrib

PAUSE

Enrico Maria Giordano

unread,
Aug 15, 2023, 8:26:59 AM8/15/23
to


Il 15/08/2023 14:24, Enrico Maria Giordano ha scritto:

> CALL bcc32 /paths

Sorry, this is

SET BCC=e:\bcc32\bcc

Marco Aurélio

unread,
Aug 15, 2023, 8:32:01 AM8/15/23
to
If someone manages to compile with vc22+, please post the steps here

Enrico Maria Giordano

unread,
Aug 15, 2023, 8:34:30 AM8/15/23
to


Il 15/08/2023 01:24, Ron Pinkas ha scritto:

>> And this is what I get using this batch for MSC32 (works fine with
>> xHarbour from SVN):
>> ...
>> Result:
>>
>> Removing System and Object Files ...
>> Removing DLL and Object Files ...
>> Removing Contrib Libraries and Object Files ...
>> Done ...
>>
>> ****** End of Job *****
>
> I am not familiar with this, and sadly it does not provide any error info. I simply use make_vc.bat as it has builtin auto detection. Which specific version of Windows and MSC are you using? Can you try to see what is the actual error in the log files?

Sorry, no logs are generated. The execution of the batch is immediately
stopped and all what I get is this in the console:

Removing System and Object Files ...
Removing DLL and Object Files ...
Removing Contrib Libraries and Object Files ...
Done ...

****** End of Job *****
\NVIDIA non atteso.


I'm using this batch (please note that it is working fine with SVN
versionof xHarbour):

@ ECHO OFF

SET MSC=e:\msc32\msc

SET __MSC__=1
SET USE_MSVCRT=1

SET CC_DIR=%MSC%

SET CFLAGS=-O1

SET INCLUDE=%MSC%\include\ucrt;%MSC%\include;%MSC%\include\sdk
SET LIB=%MSC%\lib;%MSC%\lib\sdk

SET HB_DIR_OPENSSL=e:\xhbsvn\openssl-win32

SET HB_GUI=1
SET HB_NO_BACKGROUND=1
SET HB_NO_DV_MEMCPY=1
SET HB_NO_FM_DL_ALLOC=1
SET HB_NO_VM_ALL=1

CALL make_vc clean
CALL make_vc core
CALL make_vc contrib

PAUSE

Enrico Maria Giordano

unread,
Aug 15, 2023, 8:38:37 AM8/15/23
to


Il 15/08/2023 14:31, Marco Aurélio ha scritto:

> If someone manages to compile with vc22+, please post the steps here

I'm using this compiler and it is working fine with SVN version of
xHarbour, so the problem lies in one of the recent changes.

Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x86

(Date: 20220531)

Marco Aurélio

unread,
Aug 15, 2023, 9:09:43 AM8/15/23
to
Can you compile SQLRDD with VC22+?

Enrico Maria Giordano

unread,
Aug 15, 2023, 9:35:38 AM8/15/23
to


Il 15/08/2023 15:09, Marco Aurélio ha scritto:

> Can you compile SQLRDD with VC22+?

How to do it, exactly?

Ron Pinkas

unread,
Aug 15, 2023, 10:18:30 AM8/15/23
to
If you install (free) VS 2022 using default installer settings (not changing tareget folders) than you should build no problem by just:

cd \xharbour
make_vc clean
make_vc

Works for me perfectly.

Marco Aurélio

unread,
Aug 15, 2023, 10:19:52 AM8/15/23
to
Hi Ron, this will compile libs in xHarbourBuilder folder?

kenny.ooi

unread,
Aug 15, 2023, 10:20:33 AM8/15/23
to
the Borland Resource Compiler only support 2 or 3 digit version code only ,maybe u try to compile with Embarcadero C++ 10.2 ‘Tokyo’ Compiler

Ron Pinkas

unread,
Aug 15, 2023, 10:23:16 AM8/15/23
to
Enrico,

> I'm using this compiler and it is working fine with SVN version of
> xHarbour, so the problem lies in one of the recent changes.
>
> Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x86
> http://www.emagsoftware.it/tbosg

You are using a NON STANDARD Install of VS2022 (Your batch file shows MSC=e:\msc32\msc ). I believe the problem is with latest make_vc.bat not supporting such a configuration. I would strongly recommend a STANDARD INSTALL of VS 2022 and using plain make_vc.bat - works for me perfectly.

Ron

Ron Pinkas

unread,
Aug 15, 2023, 10:29:15 AM8/15/23
to
> > cd \xharbour
> > make_vc clean
> > make_vc
> >
> Hi Ron, this will compile libs in xHarbourBuilder folder?

No. We provided all our sources and build procedures, which obviously were using OUR tools. But since xBuild project files are provided you should be able to easily change xCC to MSVC. Naturally there may be some challenges, but please don't expect us to also support what we just donated free of charge.

Ron

Marco Aurélio

unread,
Aug 15, 2023, 10:34:53 AM8/15/23
to
Hi, Ron, Thanks again for all your efforts and support

Enrico Maria Giordano

unread,
Aug 15, 2023, 10:47:14 AM8/15/23
to


Il 15/08/2023 16:18, Ron Pinkas ha scritto:

> If you install (free) VS 2022 using default installer settings (not changing tareget folders) than you should build no problem by just:
>
> cd \xharbour
> make_vc clean
> make_vc
>
> Works for me perfectly.

Sorry, but you should revert the modification that broke the build
process. Otherwise I can't use the GitHub version of xHarbour.

Enrico Maria Giordano

unread,
Aug 15, 2023, 10:50:29 AM8/15/23
to


Il 15/08/2023 16:23, Ron Pinkas ha scritto:

> You are using a NON STANDARD Install of VS2022 (Your batch file shows MSC=e:\msc32\msc ). I believe the problem is with latest make_vc.bat not supporting such a configuration. I would strongly recommend a STANDARD INSTALL of VS 2022 and using plain make_vc.bat - works for me perfectly.

Please revert make_vc.bat to the SVN version, it is working fine! We
must be free to change the compiler directory!

Ron Pinkas

unread,
Aug 15, 2023, 11:01:50 AM8/15/23
to
Enrico,

> > You are using a NON STANDARD Install of VS2022 (Your batch file shows MSC=e:\msc32\msc ). I believe the problem is with latest make_vc.bat not supporting such a configuration. I would strongly recommend a STANDARD INSTALL of VS 2022 and using plain make_vc.bat - works for me perfectly.

> Please revert make_vc.bat to the SVN version, it is working fine! We
> must be free to change the compiler directory!

make_vc has been cleaned, standardized to provide more consistent support to the many complexities and different tools installed by Microsoft. Support was also added for newer versions of all tools and the O/S itself. So your request to revert seems the wrong approach, instead we should find the exact cause of your issue, by tracing/debugging the build process. You should be able to easily find the actual problem and I will gladly assist in fixing. Luckily a batch file is not that difficult to debug. :)

Ron

Enrico Maria Giordano

unread,
Aug 15, 2023, 11:03:29 AM8/15/23
to


Il 15/08/2023 16:50, Enrico Maria Giordano ha scritto:

> Please revert make_vc.bat to the SVN version, it is working fine! We
> must be free to change the compiler directory!

I just tried using make_vc.bat from the SVN with xHarbour from GitHub
and all went fine. So there is obviously an error to be fixed in
make_vc.bat from GitHub.

Removing System and Object Files ...
Removing DLL and Object Files ...
Removing Contrib Libraries and Object Files ...
Done ...

****** End of Job *****
Creating System Files (ST) ...
Creating System Files (MT) ...
System Files Succesfully Built ...
Copying System Files to BIN and LIB Folders ...
Done ...

****** End of Job *****
Creating Contrib Libraries ...
Contrib Libraries Succesfully Built ...
Copying Contrib Libraries to LIB Folder ...
Done ...

****** End of Job *****

Enrico Maria Giordano

unread,
Aug 15, 2023, 11:06:54 AM8/15/23
to
The BCC32 build is failing even with make_vc.bat from SVN:

source\compiler\hbmain.c:
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.

Error harbour.exe.rc 3 0: Too many digits in a number

** error 20018 ** deleting obj\b32\harbour.exe.res


So there is a bug to fix somewhere else.

Enrico Maria Giordano

unread,
Aug 15, 2023, 11:10:31 AM8/15/23
to


Il 15/08/2023 17:01, Ron Pinkas ha scritto:

>> Please revert make_vc.bat to the SVN version, it is working fine! We
>> must be free to change the compiler directory!
>
> make_vc has been cleaned, standardized to provide more consistent support to the many complexities and different tools installed by Microsoft. Support was also added for newer versions of all tools and the O/S itself. So your request to revert seems the wrong approach, instead we should find the exact cause of your issue,

This is not "my issue", this is a bug YOU introduced. Please fix it. If
you need my help then ask for my help, clearly and gently.

Ron Pinkas

unread,
Aug 15, 2023, 11:19:58 AM8/15/23
to
Enrico,

> This is not "my issue", this is a bug YOU introduced. Please fix it. If
> you need my help then ask for my help, clearly and gently.

Please let's avoid hostility and getting personal. I apologize, did not mean to say the issue is "you" - I said "your issue" as in the issue you encountered. The correct solution is to find the cause, and only you can trace it and provide the details needed to fix it since I do not have such setup available to me. If you do not care for the the new fixes (and possible "bugs") you can of course keep using the SVN.

Ron

Ron Pinkas

unread,
Aug 15, 2023, 11:33:38 AM8/15/23
to
Enrico,

> The BCC32 build is failing even with make_vc.bat from SVN:

I believe you mean make_bc.bat right?

> source\compiler\hbmain.c:
> Borland Resource Compiler Version 5.40
> Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
>
> Error harbour.exe.rc 3 0: Too many digits in a number
> ** error 20018 ** deleting obj\b32\harbour.exe.res
>
> So there is a bug to fix somewhere else.

The bug seems to be with the Borland Resource Compiler not able to compile 'hbver.h' (C99 standard long long number). We were forced to change old version numbers relying on SVN version ID because it is not supported by GIT. This is not something I have any control over. We are forced to switch to someway of relying on what is available with GIT if we want to use GIT.

Ron

Enrico Maria Giordano

unread,
Aug 15, 2023, 11:41:25 AM8/15/23
to
Ok, I'll try to find the problem in make_vc.bat and report back here.

Enrico Maria Giordano

unread,
Aug 15, 2023, 11:46:40 AM8/15/23
to


Il 15/08/2023 17:33, Ron Pinkas ha scritto:

> Enrico,

>
>> The BCC32 build is failing even with make_vc.bat from SVN:
>
> I believe you mean make_bc.bat right?

Yes, make_bc.bat.

>> source\compiler\hbmain.c:
>> Borland Resource Compiler Version 5.40
>> Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
>>
>> Error harbour.exe.rc 3 0: Too many digits in a number
>> ** error 20018 ** deleting obj\b32\harbour.exe.res
>>
>> So there is a bug to fix somewhere else.
>
> The bug seems to be with the Borland Resource Compiler not able to compile 'hbver.h' (C99 standard long long number). We were forced to change old version numbers relying on SVN version ID because it is not supported by GIT. This is not something I have any control over. We are forced to switch to someway of relying on what is available with GIT if we want to use GIT.

hbver.h seems identical (one comment apart) to the old version. What ID
are you referring to?

Ron Pinkas

unread,
Aug 15, 2023, 11:57:49 AM8/15/23
to
> > The bug seems to be with the Borland Resource Compiler not able to compile 'hbver.h' (C99 standard long long number). We were forced to change old version numbers relying on SVN version ID because it is not supported by GIT. This is not something I have any control over. We are forced to switch to someway of relying on what is available with GIT if we want to use GIT.

> hbver.h seems identical (one comment apart) to the old version. What ID
> are you referring to?

Sorry, meant the AUTO GENERATED hbverbld.h - specifically this:

#define HB_VER_GITFAKEID 202308141804LL
#define HB_VER_CVSID 202308141804LL

Ron

Enrico Maria Giordano

unread,
Aug 15, 2023, 12:07:50 PM8/15/23
to


Il 15/08/2023 17:41, Enrico Maria Giordano ha scritto:

> Ok, I'll try to find the problem in make_vc.bat and report back here.

The problem is here:


OLD version

IF EXIST "%CC_DIR%"\vcvarsall.bat CALL "%CC_DIR%"\vcvarsall.bat
set
PATH="%CC_DIR%\bin";%VSCOMMONTOOLS%;"%RC_DIR%";"%BISON_DIR%";%~dp0bin;%PATH%


NEW version

if "%VSINSTALLDIR%"=="" (
IF EXIST "%CC_DIR%"\vcvarsall.bat CALL "%CC_DIR%"\vcvarsall.bat
IF "%VCINSTALLDIR%"=="" (
set
PATH="%CC_DIR%\bin;%VSCOMMONTOOLS%;%RC_DIR%;%BISON_DIR%;%~dp0bin;%PATH%"
)
)


I'm still trying to find the bug...

Enrico Maria Giordano

unread,
Aug 15, 2023, 12:17:53 PM8/15/23
to


Il 15/08/2023 18:07, Enrico Maria Giordano ha scritto:

> I'm still trying to find the bug...

This is working:

IF "%VSINSTALLDIR%"=="" IF EXIST "%CC_DIR%"\vcvarsall.bat CALL
"%CC_DIR%"\vcvarsall.bat
IF "%VSINSTALLDIR%"=="" IF "%VCINSTALLDIR%"=="" set
PATH="%CC_DIR%\bin";%VSCOMMONTOOLS%;"%RC_DIR%";"%BISON_DIR%";%~dp0bin;%PATH%

Can you commit this or change it as you like (and commit)?

Eduardo Motta

unread,
Aug 15, 2023, 12:44:16 PM8/15/23
to
Ron, thank you for your great work in the xHarbour community.

Em segunda-feira, 14 de agosto de 2023 às 15:26:47 UTC-3, Ron Pinkas escreveu:
> As promised the complete xHarbour.com sources of ALL of our products, scripts, documentation, etc. have been uploaded to the xHarbour.org GitHub repository (including all commit history) into the xHarbourBuilder sub folder.
>
> Enjoy!
>
> Ron

Ron Pinkas

unread,
Aug 15, 2023, 1:21:49 PM8/15/23
to
> This is working:
>
> IF "%VSINSTALLDIR%"=="" IF EXIST "%CC_DIR%"\vcvarsall.bat CALL
> "%CC_DIR%"\vcvarsall.bat
> IF "%VSINSTALLDIR%"=="" IF "%VCINSTALLDIR%"=="" set
> PATH="%CC_DIR%\bin";%VSCOMMONTOOLS%;"%RC_DIR%";"%BISON_DIR%";%~dp0bin;%PATH%
> Can you commit this or change it as you like (and commit)?

Cool. Maybe () grouping not supported by the Windows version you have. Please test after:

--------
2023-08-15 12:16 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
* .gitignore
+ *.map

* make_vc.bat
* Removed usage of () to group IF logic
------

Ron

Enrico Maria Giordano

unread,
Aug 15, 2023, 1:37:55 PM8/15/23
to


Il 15/08/2023 19:21, Ron Pinkas ha scritto:

>> This is working:
>>
>> IF "%VSINSTALLDIR%"=="" IF EXIST "%CC_DIR%"\vcvarsall.bat CALL
>> "%CC_DIR%"\vcvarsall.bat
>> IF "%VSINSTALLDIR%"=="" IF "%VCINSTALLDIR%"=="" set
>> PATH="%CC_DIR%\bin";%VSCOMMONTOOLS%;"%RC_DIR%";"%BISON_DIR%";%~dp0bin;%PATH%
>> Can you commit this or change it as you like (and commit)?
>
> Cool. Maybe () grouping not supported by the Windows version you have.

I'm using Windows 11.

> Please test after:
>
> --------
> 2023-08-15 12:16 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
> * .gitignore
> + *.map
>
> * make_vc.bat
> * Removed usage of () to group IF logic
> ------

Now it is working fine, thank you. MSC32 and MSC 64 builds are OK!

Enrico Maria Giordano

unread,
Aug 15, 2023, 1:53:14 PM8/15/23
to


Il 15/08/2023 17:57, Ron Pinkas ha scritto:

>> hbver.h seems identical (one comment apart) to the old version. What ID
>> are you referring to?
>
> Sorry, meant the AUTO GENERATED hbverbld.h - specifically this:
>
> #define HB_VER_GITFAKEID 202308141804LL
> #define HB_VER_CVSID 202308141804LL

Can I see a sample of that .RC file that I can test with BCC resource
compiler?
Message has been deleted

Enrico Maria Giordano

unread,
Aug 15, 2023, 1:55:50 PM8/15/23
to


Il 15/08/2023 19:21, Ron Pinkas ha scritto:

> Cool. Maybe () grouping not supported by the Windows version you have.

Some double-quotes were misplaced too.

Enrico Maria Giordano

unread,
Aug 15, 2023, 1:57:14 PM8/15/23
to


Il 15/08/2023 19:55, Ron Pinkas ha scritto:

>> Can I see a sample of that .RC file that I can test with BCC resource
>> compiler?
>
> Sure, IIRC just look for harbour.rc

There is no harbour.rc in the repository.

Ron Pinkas

unread,
Aug 15, 2023, 2:15:14 PM8/15/23
to
> >> Can I see a sample of that .RC file that I can test with BCC resource
> >> compiler?
> >
> > Sure, IIRC just look for harbour.rc
>
> There is no harbour.rc in the repository.

Sorry I noticed my mistake and deleted the message. The file is actually:

harbour.exe.rc

It is an automatically generated file by a utility called hbrc (xharbour\utils\misc\hbrc.c)

I suspect this issue can be fixed in that source.

Ron

Enrico Maria Giordano

unread,
Aug 15, 2023, 3:30:57 PM8/15/23
to


Il 15/08/2023 20:15, Ron Pinkas ha scritto:

>> There is no harbour.rc in the repository.
>
> Sorry I noticed my mistake and deleted the message. The file is actually:
>
> harbour.exe.rc
>
> It is an automatically generated file by a utility called hbrc (xharbour\utils\misc\hbrc.c)

Ok. Inside it there are:

FILEVERSION 1,2,3,202308151216
PRODUCTVERSION 1,2,3,202308151216

They should be (according to MS docs) four 16bit numbers. So this big
number is wrong.

https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource

> I suspect this issue can be fixed in that source.

Can you guide me to some tests that I can do?

Ron Pinkas

unread,
Aug 15, 2023, 4:06:09 PM8/15/23
to
> > harbour.exe.rc
> >
> > It is an automatically generated file by a utility called hbrc (xharbour\utils\misc\hbrc.c)

> Ok. Inside it there are:
>
> FILEVERSION 1,2,3,202308151216
> PRODUCTVERSION 1,2,3,202308151216
>
> They should be (according to MS docs) four 16bit numbers. So this big
> number is wrong.
>
> https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource
> > I suspect this issue can be fixed in that source.

> Can you guide me to some tests that I can do?

I believe the code can be modified to possibly allocate the FILEVERSION 4 pieces (4x16=64bit) to encode the LL number, and modify the PRODUCTVERSION to omit the LL number (0).

This means the resource will have both the exact Build's Date+Time Stamp as well as the explicit version number specified in the sources.

But truly I never looked into this RC file and have no idea what is even needed for.

Ron

Ron Pinkas

unread,
Aug 15, 2023, 4:54:05 PM8/15/23
to
Maybe something like this:

unsigned long long llvalue = HB_VER_CVSID;
unsigned long dw1 = llvalue >> 32; // Get the first DWORD (the higher 32 bits)
unsigned long dw2 = llvalue & 0xFFFFFFFF; // Get the second DWORD (the lower 32 bits)

unsigned short hiword1 = dw1 >> 16; // Get the high word of dw1
unsigned short loword1 = dw1 & 0xFFFF; // Get the low word of dw1
unsigned short hiword2 = dw2 >> 16; // Get the high word of dw2
unsigned short loword2 = dw2 & 0xFFFF; // Get the low word of dw2

fprintf(h, "FILEVERSION %u,%u,%u,%u\n", hiword1, loword1, hiword2, loword2);

Carlos Vargas

unread,
Aug 15, 2023, 10:19:08 PM8/15/23
to
rebuild sqlrdd for bcc 7.60 ok :-)
using hbmk2.exe from harbour with -xhb parameters, using bison tools.
sqlrdd parser sql. :-)

Ron Pinkas

unread,
Aug 16, 2023, 12:20:14 AM8/16/23
to
I hope to add xBuild to the standard build so anyone can then use the included xbp project files and be able to build all of the tools and librarries.

Ron

Enrico Maria Giordano

unread,
Aug 16, 2023, 4:26:22 AM8/16/23
to


Il 15/08/2023 22:54, Ron Pinkas ha scritto:

> Maybe something like this:
>
> unsigned long long llvalue = HB_VER_CVSID;
> unsigned long dw1 = llvalue >> 32; // Get the first DWORD (the higher 32 bits)
> unsigned long dw2 = llvalue & 0xFFFFFFFF; // Get the second DWORD (the lower 32 bits)
>
> unsigned short hiword1 = dw1 >> 16; // Get the high word of dw1
> unsigned short loword1 = dw1 & 0xFFFF; // Get the low word of dw1
> unsigned short hiword2 = dw2 >> 16; // Get the high word of dw2
> unsigned short loword2 = dw2 & 0xFFFF; // Get the low word of dw2
>
> fprintf(h, "FILEVERSION %u,%u,%u,%u\n", hiword1, loword1, hiword2, loword2);

Perfect! This is working fine. Please commit. BCC32 and BCC54 builds are OK!


int main( int argc, char * argv[] )
{
if( argc >= 7 )
{
FILE * h = fopen( argv[ 1 ], "wb" );

if( h )
{
SYSTEMTIME t;
char * cCompiler = _hb_verCompiler();
char * aMo[] = { "January", "February", "March",
"April", "May", "June", "July", "August", "September", "October",
"November", "December" };
char szParam[ 265 ];

unsigned long long llvalue = HB_VER_CVSID;
unsigned long dw1 = llvalue >> 32; // Get the first DWORD (the
higher 32 bits)
unsigned long dw2 = llvalue & 0xFFFFFFFF; // Get the second DWORD
(the lower 32 bits)

unsigned short hiword1 = dw1 >> 16; // Get the high word of dw1
unsigned short loword1 = dw1 & 0xFFFF; // Get the low word of dw1
unsigned short hiword2 = dw2 >> 16; // Get the high word of dw2
unsigned short loword2 = dw2 & 0xFFFF; // Get the low word of dw2

GetLocalTime( &t );

fprintf( h, "1 VERSIONINFO\n" );

fprintf(h, "FILEVERSION %u,%u,%u,%u\n", hiword1, loword1, hiword2,
loword2);
fprintf(h, "PRODUCTVERSION %u,%u,%u,%u\n", hiword1, loword1,
hiword2, loword2);

// fprintf( h, "FILEVERSION %d,%d,%d,%lld\n",
HB_VER_MAJOR,HB_VER_MINOR,HB_VER_REVISION,HB_VER_CVSID );
// fprintf( h, "PRODUCTVERSION %d,%d,%d,%lld\n",
HB_VER_MAJOR,HB_VER_MINOR,HB_VER_REVISION,HB_VER_CVSID );

reina...@gmail.com

unread,
Aug 16, 2023, 6:14:56 AM8/16/23
to
Enrico,
I just fixed my code here, and compiled fine!

C:\Users\rhfsy\xharbour.git\trunk>make_bc all
Creating System Files (ST) ...
Creating System Files (MT) ...
System Files Succesfully Built ...
Copying System Files to BIN and LIB Folders ...
Done ...

Creating DLL Files ...
DLL Files Succesfully Built ...
Copying DLL Files to BIN Folder ...
Done ...

Creating Contrib Libraries ...
Contrib Libraries Succesfully Built ...
Copying Contrib Libraries to LIB Folder ...
Done ...

Thank you, and thanks Ron!

Reynaldo Henrique.

Enrico Maria Giordano

unread,
Aug 16, 2023, 6:21:09 AM8/16/23
to


Il 16/08/2023 12:14, reina...@gmail.com ha scritto:

> Enrico,
> I just fixed my code here, and compiled fine!

Great!

Eduardo Motta

unread,
Aug 16, 2023, 8:12:15 AM8/16/23
to
Besides downloading bcc what else do I need to configure to compile on windows?

Ron Pinkas

unread,
Aug 16, 2023, 10:18:55 AM8/16/23
to
On Wednesday, August 16, 2023 at 3:26:22 AM UTC-5, Enrico Maria Giordano wrote:
> Il 15/08/2023 22:54, Ron Pinkas ha scritto:
>
> > Maybe something like this:
> >
> > unsigned long long llvalue = HB_VER_CVSID;
> > unsigned long dw1 = llvalue >> 32; // Get the first DWORD (the higher 32 bits)
> > unsigned long dw2 = llvalue & 0xFFFFFFFF; // Get the second DWORD (the lower 32 bits)
> >
> > unsigned short hiword1 = dw1 >> 16; // Get the high word of dw1
> > unsigned short loword1 = dw1 & 0xFFFF; // Get the low word of dw1
> > unsigned short hiword2 = dw2 >> 16; // Get the high word of dw2
> > unsigned short loword2 = dw2 & 0xFFFF; // Get the low word of dw2
> >
> > fprintf(h, "FILEVERSION %u,%u,%u,%u\n", hiword1, loword1, hiword2, loword2);
> Perfect! This is working fine. Please commit. BCC32 and BCC54 builds are OK!

Check after:
2023-08-16 09:17 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
* utils/misc/hbrc.c
* Modified FILEVERSION to be the 4 16bit parts of HB_VER_CVSID
* Modified PRODUCTVERSION 4th part to be 0

Ron Pinkas

unread,
Aug 16, 2023, 10:22:19 AM8/16/23
to
On Wednesday, August 16, 2023 at 7:12:15 AM UTC-5, Eduardo Motta wrote:
> Besides downloading bcc what else do I need to configure to compile on windows?

Probably better to use the free Microsoft VC 2022.

https://visualstudio.microsoft.com/vs/community/

Ron

Enrico Maria Giordano

unread,
Aug 16, 2023, 10:30:00 AM8/16/23
to


Il 16/08/2023 16:18, Ron Pinkas ha scritto:

>> Perfect! This is working fine. Please commit. BCC32 and BCC54 builds are OK!
>
> Check after:
> 2023-08-16 09:17 UTC-0500 Ron Pinkas <ronpinkas/AT/gmail/com>
> * utils/misc/hbrc.c
> * Modified FILEVERSION to be the 4 16bit parts of HB_VER_CVSID
> * Modified PRODUCTVERSION 4th part to be 0

It is working fine, thank you!

Enrico Maria Giordano

unread,
Aug 16, 2023, 10:33:30 AM8/16/23
to


Il 16/08/2023 16:22, Ron Pinkas ha scritto:

>> Besides downloading bcc what else do I need to configure to compile on windows?
>
> Probably better to use the free Microsoft VC 2022.
>
> https://visualstudio.microsoft.com/vs/community/

Yes, I confirm. If correctly used, MSC produced smaller EXEs in less
time. Thanks to Antonio Linares, I have reduced MSC32 and MSC64
installationa with the usual bin, include and lib directory.

Eduardo Motta

unread,
Aug 16, 2023, 10:39:18 AM8/16/23
to
Ron/Enrico

From the moment I clone the xharbour repository what else do I need to do?

Is it possible to describe a step by step?

Enrico Maria Giordano

unread,
Aug 16, 2023, 10:54:56 AM8/16/23
to


Il 16/08/2023 16:39, Eduardo Motta ha scritto:

> Ron/Enrico
>
> From the moment I clone the xharbour repository what else do I need to do?
>
> Is it possible to describe a step by step?

This is what I'm using to build xHarbour for MSC32 from the repository:

@ ECHO OFF

SET MSC=e:\msc32\msc

SET __MSC__=1
SET USE_MSVCRT=1

SET CC_DIR=%MSC%

SET CFLAGS=-O1

SET INCLUDE=%MSC%\include\ucrt;%MSC%\include;%MSC%\include\sdk
SET LIB=%MSC%\lib;%MSC%\lib\sdk

SET HB_DIR_OPENSSL=e:\xhbsvn\openssl-win32

SET HB_GUI=1
SET HB_NO_BACKGROUND=1
SET HB_NO_DV_MEMCPY=1
SET HB_NO_FM_DL_ALLOC=1
SET HB_NO_VM_ALL=1

CALL make_vc clean
CALL make_vc core
CALL make_vc contrib

PAUSE
0 new messages