How to build Harbour 32 & 64 bits

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Thu Jan 23, 2014 10:05 pm

How to build Harbour for WinCE using MinGW on Windows:

http://sourceforge.net/projects/cegcc/files/

goce.bat
Code: Select all  Expand view
set path=c:\mingw32ce\arm-mingw32ce\bin\
set HB_ARCHITECTURE=wce
set HB_COMPILER=mingwarm
win-make
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Fri Jan 31, 2014 8:07 pm

Harbour for WinCE using Visual Studio 2012:

We have to install "Windows Mobile 5.0 SDK for Pocket PC" from here:
http://www.microsoft.com/en-us/download/details.aspx?id=42

It refuses to install as it requires some extra tools, but we can force it to install:
Code: Select all  Expand view
msiexec /a "Windows Mobile 5.0 Pocket PC SDK.msi"


goce2012.bat
Code: Select all  Expand view
call "%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_arm
set HB_COMPILER=msvcarm
set HB_USER_CFLAGS=/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
set LIB=%LIB%;"c:\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I"
win-make > build.log
notepad build.log
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Sun Jun 29, 2014 5:43 am

In order to build the most recent Harbour 3.2 this line has to be commented from:

c:\harbour\src\3rd\png\Makefile

#HB_CFLAGS += -DPNG_NO_STDIO

Notice the "#"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Tue Jul 01, 2014 5:02 pm

To build Harbour 64 bits using Visual Studio 2013:

HB_BUILD_MODE can be set as "c" or as "cpp". We use "c"

go64.bat
Code: Select all  Expand view
call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
set HB_BUILD_MODE=c
win-make.exe


To clean a previously built Harbour 64 bits just add "clean" after win-make.exe
Code: Select all  Expand view
call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
set HB_BUILD_MODE=c
win-make.exe clean
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Sun Jan 18, 2015 7:08 am

Harbour for Android (thanks to Pritpal for his help)

@echo off

set QT_PATH=C:\Qt540\5.4\android_armv7
set HB_WITH_QT=%QT_PATH%\include
set HB_QTPATH=%QT_PATH%\bin

set MINGWROOT=C:\Qt540\Tools\mingw491_32

set NDK=C:\qt-android\ndk
set NDKSTL=%NDK%\sources\cxx-stl\gnu-libstdc++\4.8

set LVL=9

set CPU=arm
set CCOMP=4.8

set PLATFORM=android-%LVL%
set HOST_CPU=windows


set SYSROOT=%NDK%\platforms\%PLATFORM%\arch-%CPU%

if "%CPU%" == "arm" set TCHAIN=arm-linux-androideabi
if "%CPU%" == "mips" set TCHAIN=mipsel-linux-android
if "%CPU%" == "x86" set TCHAIN=x86

set HB_PLATFORM=android
set HB_COMPILER=gccarm
set HB_CCPREFIX=%NDK%\toolchains\%TCHAIN%-%CCOMP%\prebuilt\%HOST_CPU%\bin\%TCHAIN%-

echo %HB_CCPREFIX%

set HB_USER_CFLAGS=--sysroot=%SYSROOT% -I%NDKSTL%\include -I%NDKSTL%\libs\armeabi-v7a\include -I%NDK%\platforms\android-9\arch-arm\usr\include
set HB_USER_DFLAGS=--sysroot=%SYSROOT%
set HB_USER_LDFLAGS=--sysroot=%SYSROOT% -lm



:set path=%MINGWROOT%\bin;C:\harbour\bin\win\mingw;%path%
set PATH=C:\harbour\bin\win\mingw;%PATH%

:set HB_INSTALL_PREFIX=C:\harbour
set HB_BUILD_3RDEXT=no
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no

SET HB_WITH_OPENSSL=C:\OpenSSL\include
SET HB_STATIC_OPENSSL=1


if not "%1" == "clean" goto skip_clean
win-make %1
shift
:skip_clean
:win-make install %1 %2 %3 %4 %5 %6 %7 %8 %9 > log-%PLATFORM% 2> log-%PLATFORM%.err

set HBMK2A=%HB_INSTALL_PREFIX%\bin\hbmk2a.bat

echo @echo off> %HBMK2A%
echo.>> %HBMK2A%
echo set SYSROOT=%NDK%\platforms\%PLATFORM%\arch-%CPU%>> %HBMK2A%
echo.>> %HBMK2A%
echo.>> %HBMK2A%
echo set HB_PLATFORM=%HB_PLATFORM%>> %HBMK2A%
echo set HB_COMPILER=%HB_COMPILER%>> %HBMK2A%
echo set HB_CCPREFIX=%HB_CCPREFIX%>> %HBMK2A%
echo set HB_INSTALL_PREFIX=%HB_INSTALL_PREFIX%>> %HBMK2A%
echo.>> %HBMK2A%
echo set HB_USER_CFLAGS=%HB_USER_CFLAGS%>> %HBMK2A%
echo set HB_USER_DFLAGS=%HB_USER_DFLAGS%>> %HBMK2A%
echo set HB_USER_LDFLAGS=%HB_USER_LDFLAGS%>> %HBMK2A%
echo.>> %HBMK2A%
echo hbmk2 -plat=android %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9>> %HBMK2A%
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby JmGarcia » Sun Jan 18, 2015 10:19 pm

Antonio Linares wrote:Harbour for Android

No entiendo... :cry:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Sun Jan 18, 2015 10:58 pm

JM,

Lo he copiado ahí a modo de recordatorio. Me lo han dado así.

Cuando lo pruebe y lo depure, lo volveré a publicar :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Thu Jan 29, 2015 1:54 am

Harbour for iOS (thanks to Pritpal for his help)

iphone.sh
Code: Select all  Expand view
#!/bin/bash

export QTPATH=/Users/$USER/Qt/5.4/ios

export IOS_PLAT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
export IOS_DEFAULT=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export PATH="/Users/$USER/harbour/bin/production:$IOS_PLAT/Developer/usr/bin:$IOS_PLAT/Developer/usr/local/bin:$IOS_PLAT/usr/bin:$IOS_PLAT/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Tools:$IOS_DEFAULT/usr/bin:$IOS_DEFAULT/usr/libexec:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"

export SDK_INCLUDE=$IOS_PLAT/Developer/SDKs/iPhoneOS.sdk/usr/include
export SDK_LIB=$IOS_PLAT/Developer/SDKs/iPhoneOS.sdk/usr/lib
export SDK_LIB_SYSTEM=$IOS_PLAT/Developer/SDKs/iPhoneOS.sdk/usr/lib/system

export HB_BUILD_NAME=-iphone
export __ios__=yes

export HB_HOST_BIN=/Users/$USER/harbour/bin/production

export HB_WITH_PCRE=local
export HB_WITH_ZLIB=local
export HB_WITH_BZIP2=local
export HB_WITH_JPEG=local
export HB_WITH_PNG=local
export HB_WITH_TIFF=local
export HB_WITH_LIBHARU=local
export HB_WITH_SQLITE3=local

export HB_BUILD_DYN=no
export HB_BUILD_PARTS=lib

export HB_USER_CFLAGS=-arch\ armv7\ -arch\ arm64\ -DHB_MAIN_WIN\ -DHB_BUILD_IOS\ -I$SDK_INCLUDE
export HB_USER_DFLAGS=-arch\ armv7\ -arch\ arm64\ -L$SDK_LIB\ -L$SDK_LIB_SYSTEM
export HB_USER_LDFLAGS=-arch\ armv7\ -arch\ arm64\ -L$SDK_LIB\ -L$SDK_LIB_SYSTEM

export HB_STATIC_QT=yes
export HB_QT_MAJOR_VERSION=5
export HB_QTPATH=$QTPATH/bin
export HB_WITH_QT=$QTPATH/include

#export HB_BUILD_3RDEXT=no

export HB_STATIC_OPENSSL=1
export HB_WITH_OPENSSL=/Users/$USER/harbour/openssl-1.0.1k/include

make
 


osx.sh
Code: Select all  Expand view
#!/bin/bash

#  Standard OS X builds
#
#export HB_QTPATH=/usr/local/opt/qt5/bin
#export HB_WITH_QT=/usr/local/opt/qt5/include
#export PATH="/Users/$USER/harbour/bin/darwin/clang:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"


#export QTPATH=/Users/$USER/Qt/5.4/clang_64
export QTPATH=/usr/local/opt/qt5

export IOS_PLAT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
export IOS_DEFAULT=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export PATH="/Users/$USER/harbour/bin/production:$IOS_PLAT/Developer/usr/bin:$IOS_PLAT/Developer/usr/local/bin:$IOS_PLAT/usr/bin:$IOS_PLAT/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Tools:$IOS_DEFAULT/usr/bin:$IOS_DEFAULT/usr/libexec:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"

export SDK_INCLUDE=$IOS_PLAT/Developer/SDKs/MacOSX10.9.sdk/usr/include
export SDK_LIB=$IOS_PLAT/Developer/SDKs/MacOSX10.9.sdk/usr/lib
export SDK_LIB_SYSTEM=$IOS_PLAT/Developer/SDKs/MacOSX10.9.sdk/usr/lib/system

export HB_WITH_PCRE=local
export HB_WITH_ZLIB=local
export HB_WITH_BZIP2=local
export HB_WITH_JPEG=local
export HB_WITH_PNG=local
export HB_WITH_TIFF=local
export HB_WITH_LIBHARU=local
export HB_WITH_SQLITE3=local

export HB_USER_CFLAGS=-I$SDK_INCLUDE
export HB_USER_DFLAGS=-L$SDK_LIB\ -L$SDK_LIB_SYSTEM
export HB_USER_LDFLAGS=-L$SDK_LIB\ -L$SDK_LIB_SYSTEM

export HB_QT_MAJOR_VERSION=5
export HB_QTPATH=$QTPATH/bin
export HB_WITH_QT=$QTPATH/include

export HB_STATIC_OPENSSL=1
export HB_WITH_OPENSSL=/Users/curacao/harbour/openssl-1.0.1k/include

make
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Sat Jan 27, 2018 9:59 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Tue May 26, 2020 4:38 am

Building Harbour with msvc64

go64.bat
Code: Select all  Expand view
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS
set HB_WITH_OPENSSL=c:\OpenSSL-Win64\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\msvc64\hbver.obj
del .\src\common\obj\win\msvc64\hbver_dyn.obj
del .\src\common\obj\win\msvc\hbverdsp.obj
win-make.exe
copy c:\harbour\lib\win\msvc64\libcurl-x64.lib c:\harbour\lib\win\msvc64\libcurl.lib
copy c:\harbour\lib\win\msvc64\libssl-1_1-x64.lib c:\harbour\lib\win\msvc64\ssleay32.lib
copy c:\harbour\lib\win\msvc64\libcrypto-1_1-x64.lib c:\harbour\lib\win\msvc64\libcrypto.lib
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Mon Jun 27, 2022 10:39 am

Here you have all updated batch files to build Harbour for Borland, MSVC 32 and 64 and MinGW gcc 32 and 64:

Please remember that you have to download OpenSSL 32 and 64 bits from here: https://slproweb.com/products/Win32OpenSSL.html (DON'T INSTALL THE LIGHT VERSIONS, include folder is required) and curl from here: https://curl.se/download.html before running these batch files

If you don't want to build them yourself, you can download all of them already built in one single zip file from here:
https://www.fivetechsoft.com/files/harbour/harbour_all.zip Just unzip it in c:\harbour and you are all set :-)

go.bat for Borland bcc7
Code: Select all  Expand view
set path=c:\bcc7\bin
set HB_COMPILER=bcc
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win32\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\msvc\hbver.obj
del .\src\common\obj\win\msvc\hbver_dyn.obj
del .\src\common\obj\win\msvc\hbverdsp.obj
win-make.exe


go32.bat for Visual Studio Community 2022 32 bits
Code: Select all  Expand view
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
set HB_COMPILER=msvc
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win32\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\msvc\hbver.obj
del .\src\common\obj\win\msvc\hbver_dyn.obj
del .\src\common\obj\win\msvc\hbverdsp.obj
win-make.exe
copy c:\harbour\lib\win\msvc\libcurl-x32.lib c:\harbour\lib\win\msvc\libcurl.lib
copy c:\harbour\lib\win\msvc\libssl-1_1-x32.lib c:\harbour\lib\win\msvc\ssleay32.lib
copy c:\harbour\lib\win\msvc\libcrypto-1_1-x32.lib c:\harbour\lib\win\msvc\libcrypto.lib


go64.bat for Visual Studio Community 2022 64 bits
Code: Select all  Expand view
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
set HB_COMPILER=msvc64
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win64\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\msvc64\hbver.obj
del .\src\common\obj\win\msvc64\hbver_dyn.obj
del .\src\common\obj\win\msvc64\hbverdsp.obj
win-make.exe
copy c:\harbour\lib\win\msvc64\libcurl-x64.lib c:\harbour\lib\win\msvc64\libcurl.lib
copy c:\harbour\lib\win\msvc64\libssl-1_1-x64.lib c:\harbour\lib\win\msvc64\ssleay32.lib
copy c:\harbour\lib\win\msvc64\libcrypto-1_1-x64.lib c:\harbour\lib\win\msvc64\libcrypto.lib


go32g.bat for MinGW gcc 32 bits
Code: Select all  Expand view
set path=c:\gcc81\bin
set HB_COMPILER=mingw
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win32\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\mingw\hbver.obj
del .\src\common\obj\win\mingw\hbver_dyn.obj
del .\src\common\obj\win\mingw\hbverdsp.obj
win-make.exe


go64g.bat for MinGW gcc 64 bits
Code: Select all  Expand view
set path=c:\gcc81w64\bin
set HB_COMPILER=mingw64
set HB_BUILD_MODE=c
set HB_USER_PRGFLAGS=-l-
set HB_BUILD_CONTRIBS

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win64\include
set HB_WITH_CURL=c:\curl\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
del .\src\common\obj\win\mingw64\hbver.obj
del .\src\common\obj\win\mingw64\hbver_dyn.obj
del .\src\common\obj\win\mingw64\hbverdsp.obj
win-make.exe
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Mon Jul 11, 2022 8:36 am

To generate static curl use this:

set HB_STATIC_CURL=yes
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby Antonio Linares » Tue Apr 25, 2023 7:08 am

To build Harbour using bcc64:

From c:\bcc7140\lib do this:
copy c0x64.o c0x64.obj
copy cw64mt.a cw64mt.lib
copy import64.a import.lib


go64.bat
Code: Select all  Expand view
set bcc=bcc7164
set path=c:\%bcc%\bin
set HB_COMPILER=bcc64
set HB_BUILD_MODE=c
set HB_BUILD_OPTIM=no
set HB_USER_PRGFLAGS=-l-
set HB_USER_CFLAGS=-Ic:\%bcc%\INCLUDE\windows\crtl -Ic:\%bcc%\INCLUDE\windows\sdk -Lc:\%bcc%\LIB
set HB_BUILD_WARN=yes
set HB_USER_LDFLAGS=-Lc:\%bcc%\LIB;c:\%bcc%\LIB\psdk
set HB_USER_RESFLAGS=-Ic:\%bcc%\INCLUDE\windows\sdk
set HB_BUILD_CONTRIBS
set HB_HAS_PCRE=no

rem set HB_BUILD_DEBUG=yes
rem set HB_TR_LEVEL=debug
rem set HB_USER_CFLAGS=-DHB_TR_LEVEL_DEBUG

set HB_WITH_OPENSSL=c:\OpenSSL-Win64\include
set HB_WITH_CURL=c:\curl64\include
set HB_OPENSSL_STATIC=yes      
set HB_STATIC_OPENSSL=yes  
set HB_STATIC_CURL=yes
set HB_WITH_LIBHARU
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
win-make.exe


You will get some unresolved externals. Add these functions at the bottom of c:\harbour\src\common\hbprintf.c
Code: Select all  Expand view
//#if defined( __BORLANDC__ ) && defined( HB_OS_WIN_64 )
#if defined(__BORLANDC__) && defined(__clang__) && defined(_WIN64)
/* $NetBSD: isnanl.c,v 1.8 2011/06/05 14:43:13 christos Exp $   */

/*
 * Copyright (c) 1992, 1993
 *  The Regents of the University of California.  All rights reserved.
 *
 * This software was developed by the Computer Systems Engineering group
 * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
 * contributed to Berkeley.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * from: Header: isinf.c,v 1.1 91/07/08 19:03:34 torek Exp
 */


#include <math.h>

#define EXT_EXP_INFNAN  0x7fff
#define EXT_EXPBITS     15
#define EXT_FRACHBITS   16
#define SNG_EXP_INFNAN  255
#define DBL_EXP_INFNAN  2047

struct ieee_ext
{
   unsigned int      ext_sign:1;
   unsigned int      ext_exp:EXT_EXPBITS;
   unsigned int      ext_frach:EXT_FRACHBITS;
   unsigned int      ext_frachm;
   unsigned int      ext_fraclm;
   unsigned int      ext_fracl;
};

union ieee_ext_u
{
   long double       extu_ld;
   struct ieee_ext   extu_ext;
};

struct ieee_double
{
   unsigned int      dbl_sign:1;
   unsigned int      dbl_exp:11;
   unsigned int      dbl_frach:20;
   unsigned int      dbl_fracl;
};

HB_EXTERN_BEGIN
extern int _isnanl( long double x );
extern int _finitel( long double d );
extern int _finite( double d );
HB_EXTERN_END

/*
 * 7.12.3.4 isnan - test for a NaN
 *          IEEE 754 compatible 80-bit extended-precision Intel 386 version
 */


int _isnanl( long double x )
{
   union ieee_ext_u u;

   u.extu_ld = x;

   return u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
          ( u.extu_ext.ext_frach & 0x80000000 ) != 0 &&
          ( u.extu_ext.ext_frach != 0x80000000 || u.extu_ext.ext_fracl != 0 );
}

int _finite( double d )
{
   struct ieee_double * p = ( struct ieee_double * ) &d;

   return p->dbl_exp != DBL_EXP_INFNAN;
}

int _finitel( long double d )
{
   struct ieee_double * p = ( struct ieee_double * ) &d;

   return p->dbl_exp != DBL_EXP_INFNAN;
}

#endif


To build the contribs, modify c:\harbour\contrib\hbpre.hbm this way:
# Copyright 2010 Viktor Szakats (vszakats.net/harbour)

# These may be overridden by local project options.

-q0
-optim-

{HB_BUILD_VERBOSE}-quiet-
{HB_BUILD_VERBOSE}-info
{HB_BUILD_VERBOSE}-trace
-exitstr

{!HB_BUILD_DEBUG}-l

{(HB_BUILD_MODE='cpp')|(!HB_BUILD_MODE&allmsvc)}-cpp=yes
{HB_BUILD_MODE='c'}-cpp=no

-warn=yes


Finlly, when trying to build hbrun.exe we get this error:
Fatal: Archive file 'C:\BCC7164\LIB\PSDK\UUID.A' lists no symbols in its dictionary

to solve it, go to c:\bcc7164\lib\psdk and do this:
copy UUID.a UUID_.a
copy USP10.a UUID.a

UUID.a seems corrupted and it is linked but not used. The above workaround solves it
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: How to build Harbour 32 & 64 bits

Postby xmanuel » Fri Apr 28, 2023 7:00 am

Que buena noticia...
Lo pruebo hoy!!!
:D :D :D
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 762
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: How to build Harbour 32 & 64 bits

Postby diegoaudi » Sat Jun 24, 2023 2:10 am

Fantastic! thank you!
diegoaudi
 
Posts: 1
Joined: Thu Jul 01, 2021 1:51 am

PreviousNext

Return to Utilities / Utilidades

Who is online

Users browsing this forum: No registered users and 2 guests