Commit Graph

188 Commits

Author SHA1 Message Date
Przemysław Czerpak
81bf9807b5 2025-01-22 21:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
    * do not interrupt whole build process when optional dependency package
      is disabled explicitly by -depcontrol=<optdeppkg>:no

  * contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
    * respect QT_SELECT envvar looking for QT dependencies
2025-01-22 21:08:08 +01:00
Aleksander Czajczynski
21ea321f0a 2025-01-02 14:33 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* config/global.mk
  * config/win/clang-noauto.mk
  * config/win/clang.mk
    * supplemented config for Windows clang cross compilers
      distributed in multilib fashion, like Martin Storsjo's:
      https://github.com/mstorsjo/llvm-mingw

    + HB_CCPREFIX= support for clang on Windows, you can build
      ARM64 Harbour from AMD64 hosts using mentioned toolchain:
      set PATH=C:\llvm-mingw\bin;%PATH%
      set HB_COMPILER=clang
      win-make (build for your host first)
      set HB_CCPREFIX=aarch64-w64-mingw32-
      set HB_HOST_BIN=<HarbourPath>\bin\win\clang\ (if not autodetected)
      win-make

    ; cross compiling from Unix hosts is not yet tested, but
      looks very close to be possible

    ! fixed typo's

  * utils/hbmk2/hbmk2.prg
    * changed llvm-ar call to also respect HB_CCPREFIX
2025-01-02 14:32:10 +01:00
Przemysław Czerpak
9a23266d74 2024-12-17 01:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
    ! fixed dependency macros

  * contrib/gtqtc/hbmk2_qtgt.hb
    * set QT_SELECT envvar for systems which supports different QT versions

  * utils/hbmk2/hbmk2.prg
    + added "dept" => hbmk[ _HBMK_hDEPTMACRO ] to hbmk hash table passed to
      hbmk2 plugins
2024-12-17 01:09:40 +01:00
Mario Wan Stadnik
a9a57985c3 Update hbmk2.prg
Missing feature, can't find windres.exe for MingW64 14.2.0 
With this mod it will find it automatically otherwise it will give the resource not find error because it will look for i686-w64-mingw32-windres.exe instead of windres.exe.
2024-12-07 20:32:29 -03:00
Aleksander Czajczynski
c88029eee9 2024-10-17 15:04 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* .github/workflows/windows-ci.yml
    * update windows MSYS2 integration runner set of
      requested packages. PGSQL, Firebird and MariaDB libs
      are no longer available in the 32-bit environment

    + add clang x86_64 compiler for testing under this CI

  * include/harbour.hbx
  * include/hbapi.h
  * src/common/hbver.c
  * src/harbour.def
  * src/rtl/version.c
    ! fixed Windows 11 detection, by vendor likings it has
      NT Kernel Version stamped with 10.0, so now Build Number
      is more significant as a recognition factor.

    + new C helper functions hb_winisbuild(), hb_iswin11()

    + added PRG function hb_osIsWin11()

    * also try to detect new Windows Server versions

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
  * ChangeLog.txt
    ! recursion happening in the Makefiles rendered recently
      introduced compatibility option unreliable. Changed to
      use separate variable: HB_USER_FIXES=--mingw-script
      You don't need it, the problem shouldn't exist, but
      anyway...
2024-10-17 15:04:53 +02:00
Aleksander Czajczynski
60a10666f4 2024-10-10 14:21 UTC+0200 Aleksander Czajczynski (hb fki.pl)
+ config/win/clang-noauto.mk
    + additional clang flavour checking when the compiler is specified
      via set HB_COMPILER=clang (not auto-detected)

      This is important for distributions of clang that bundle both
      gcc and clang in the same directory. Harbour 3.2 by default
      prioritize gcc over clang.

      For example you should be now able to build from winlibs.com by
      Brecht Sanders with environment setup such as:
      PATH=C:\winlibs\mingw64\bin;%PATH%
      HB_COMPILER=clang
      win-make

  * config/global.mk
    ! added workaround for common GNU Make issue with
      $(dir path with spaces/file) macro, commonly striking on Windows
      systems under "Program Files", but also possible in other setups.
      Workaround is to call $(call dir_with_spaces,$(HB_COMP_PATH)).
      I have only used this workaround in clang detection, but keep
      this in mind while revisiting detection of another compiler.

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
    * another rework of Clang on Windows detection (ARM64, x86_64, x86),
      solved problems with different availability of resource compiler,
      They are now probed in order: windres, llvm-windres, llvm-rc.

    * added option to use MinGW INPUT(file.o) link scripts for old tools
      To apply workaround with clang, set HB_USER_DFLAGS=--mingw-script
      It is not supported in at least some of current clang toolchains,
      but it's still needed to succesfully build on old ones (those
      using GNU ld on Windows).
2024-10-10 14:21:17 +02:00
Aleksander Czajczynski
77d37481be 2024-10-07 11:40 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* config/global.mk
    ! detect ARM64 CPU on Windows also under non-native shell (MSYS2 sh)

    * on unix also recognize aarch64 from uname

  * include/hbsetup.h
    * __MINGW64__ define is not x86_64 specific anymore

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
    * reworked Clang on Windows detection (ARM64, x86_64, x86),
      now it recognizes those flavours in PATH as distributed
      by MSYS2 project and also Visual Studio 2022 Build tools.

      Starting Harbour build process should be now possible
      both from MSYS2 shell (with the special note to use "make"
      command instead of "win-make" from sh) and regular batch
      script/cmd shell.

      Building on Clang distributed by MS x86_64:
      PATH=<InstallPath>\BuildTools\VC\Tools\Llvm\x64\bin;%PATH%
      win-make

      Clang/MS ARM64:
      PATH=<InstallPath>\BuildTools\VC\Tools\Llvm\ARM64\bin;%PATH%
      win-make

      Building on Clang x86_64 distributed by MSYS2 from cmd:
      PATH=C:\msys64\clang64\bin;%PATH%
      win-make

      Clang/MSYS ARM64 called from cmd:
      PATH=C:\msys64\clangarm64\bin;%PATH%
      win-make

  * src/common/hbver.c
    * patched clang version string builder to skip duplicate version
      number in some builds

    * append processor architecture to clang compiler string
      on non-Intel systems
2024-10-07 11:40:17 +02:00
Aleksander Czajczynski
26849d3292 2024-09-14 18:36 UTC+0200 Aleksander Czajczynski (hb fki.pl)
+ config/win/msvcarm.mk
  + config/win/msvcarm64.mk
  * config/global.mk
  * include/hbsetup.h
  * utils/hbmk2/hbmk2.prg
    + introduced support for Windows (10,11) ARM 64-bit platform
      native compilers using Visual Studio 2022 Build Tools

      before calling win-make, setup environment with:
      <InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm64.bat

      toolchain should be autodetected as following:
      ! HB_HOST_PLAT: win (arm64)  HB_SHELL: nt
      ! HB_PLATFORM: win (arm64) (auto-detected)
      ! HB_COMPILER: msvcarm64 (auto-detected: C:/Program[...]/ARM64/)

      to build final application with hbmk2 adding a valid Windows
      Platform SDK / CRT paths to INCLUDE= and/or LIB= variable
      is needed

    ; cross compilation from AMD64 hosts is possible:
      vcvars64.bat
      win-make (build Harbour for your host first)
      set HB_HOST_BIN=<HarbourPath>\bin\win\msvc64
      vcvarsamd64_arm64.bat
      win-make

    + also added support for Windows for ARM 32-bit

      before calling win-make, setup environment using:
      <InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm.bat
      or when cross compiling from ARM64 host:
      <InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm64_arm.bat

    ; please test Windows CE builds if you're using compiler newer
      than VC2003 for ARM for possible regressions

  * contrib/hbmlzo/3rd/minilzo/lzodefs.h
    ! recognize ARM64 architecture on Windows to fix build error

    ; consider updating to upstream minilzo 2.10, issue is fixed there

  * src/common/hbver.c
    * changed to add processor architecture for MSVC compiler string
      on non-Intel systems, as exposed by hb_compiler(), harbour /build,
      finalapp.exe //build

  * tests/speedtst.prg
    * workaround that processor architecture can now appear
      in hb_compiler(), so it's not printed by speed test twice
2024-09-14 18:35:40 +02:00
Przemysław Czerpak
371631dac4 2024-04-10 15:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
    ! fixed my last modification and check if HB_WITH_* contains
      non empty value
2024-04-10 15:39:15 +02:00
Przemysław Czerpak
936bef24d0 2024-02-13 05:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* debian/compat
    * set 10 as compatibility level

  * contrib/3rd/sqlite3/sqlite3.c
  * contrib/3rd/sqlite3/sqlite3.diff
    * do not use noinline function attribute in GCC prior 3.1

  * contrib/xhb/xhberror.c
  * src/rtl/gtdos/gtdos.c
    ! fixed format specifiers in HB_TRACE() messages

  * src/common/expropt1.c
  * src/rtl/langapi.c
    * pass explicitly "(null)" string instead of NULL string pointer
      to HB_TRACE() messages, some C compilers can autoinline functions
      and generate warning detecting such situation

  * src/pp/hbpp.c
    * cast revision number to ( HB_ULONG ) to avoid warnings in some
      compilers which do not understand %I64u format specifier

  * utils/hbmk2/hbmk2.prg
    * preffer HB_WITH_* settings then platform native pkg-config,
      giving pkg-config precedence breaks cross and custom builds
2024-02-13 05:49:59 +01:00
Phil Krylov
8220d099e2 2023-12-07 21:00 UTC+0100 Phil Krylov (phil a t krylov.eu)
* config/win/bcc.mk
  * utils/hbmk2/hbmk2.prg
    ! Fixed Borland C 32-bit compiler warning flags.
2023-12-08 20:49:01 +01:00
Phil Krylov
2ed5940216 2023-11-11 19:42 UTC+0100 Phil Krylov (phil a t krylov.eu) (#333)
2023-11-11 19:42 UTC+0100 Phil Krylov (phil a t krylov.eu)
  * config/win/mingw.mk
  * utils/hbmk2/hbmk2.prg
    ! Use -D__USE_MINGW_ANSI_STDIO=0 to opt out of C99 printf emulation on
      MinGW-W64 10.0+.
2023-11-11 19:59:23 +01:00
Lailton
2c1e33a0b2 2022-10-23 11:30 UTC-0300 Lailton Fernando Mariano (lailton/at/harbour.page)
* config/global.mk
    + add auto detect cpu arm64
  * config/darwin/global.mk
  * utils/hbmk2
    ! fix build dylibs with VM builtin to Darwin ( Mac OS )
2022-10-23 23:28:00 -03:00
Przemysław Czerpak
49a289a1a3 2020-03-24 23:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/linux/clang.mk
    ! fixed rule for dynamic library

  * src/3rd/png/Makefile
    + added -DPNG_ARM_NEON_OPT=0 to build flags

  * contrib/3rd/sqlite3/sqlite3.c
  * contrib/3rd/sqlite3/sqlite3.diff
    ! pacified warning

  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgwing.c
    ! fixed missing break/return in case statements - please verify it.

  * contrib/hbct/dattime3.c
    * added #define _DEFAULT_SOURCE necessay in new Linux distors

  * contrib/hblzf/3rd/liblzf/liblzf.diff
  * contrib/hblzf/3rd/liblzf/lzfP.h
    * do not use nested #define in #if statements - some C compilers do not
      support it

  * contrib/hbssl/bio.c
    ! tuned #if condition

  * contrib/hbmisc/hbeditc.c
    * simpliefied for condition and pacified warning

  * contrib/hbodbc/hbodbc.hbp
  * contrib/sddodbc/sddodbc.hbp
    + added check for iodbc library

  * utils/hbmk2/hbmk2.prg
    + added support for clang in android builds

  * include/hbdefs.h
    + added check for __BYTE_ORDER__ macro used in some new lib C
      implementations

  * include/hbapi.h
  * include/hbdefs.h
  * include/hbstack.h
  * include/hbvmpub.h
  * src/vm/classes.c
  * src/vm/dynsym.c
  * src/vm/estack.c
  * src/vm/memvars.c
    + extended the size of dynamic symbol table from 65535 to 4294967295.
      Adopting class code I decided to keep current algorithm of method indexes
      hashing with only some minor modifications. It's very fast anyhow it may
      cause noticeable (though static) quite big memory allocation for class
      definitions in applications using millions of symbols and which increase
      dynamic symbol table at runtime loading new classes dynamically form .hrb,
      .dll, .so or other dynamic libraries supported by Harbour. It's random
      and rather impossible to exploit situation in real life anyhow I cannot
      exclude it so I'd like to report it in ChangeLog. The solution is very
      simple, i.e. it's enough to use classic divide et impera algorithm using
      symbol numbers to find method definition anyhow it will be slower then
      current one and address only very seldom hypothetical situations so I
      decided to not implement it. Such static memory cost begins to be
      completely unimportant in the world of 64-bit architectures and extremely
      big memory address space.
      The modification was sponsored by TRES company.

  * src/vm/estack.c
    ! fixed __mvClear() in MT builds - due to stupid typo GetList variable
      was removed in MT programs by CLEAR MEMORY command (__mvClear())
      So far noone reported it and I've found it analyzing the code before
      increasing symbol table size.

  * contrib/hbwin/hbolesrv.c
    * updated for new size of dynamic symbol table
2020-03-24 23:34:35 +01:00
Aleksander Czajczynski
4041902a19 2020-02-05 11:25 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/vm/fm.c
  * src/macro/macro.y
  * src/macro/macro.yyc
    ! guarded more C++ mode only pragmas for OpenWatcom. Issue #202

  * utils/hbmk2/hbmk2.prg
    ! reverted C++ check
2020-02-05 11:25:32 +01:00
Aleksander Czajczynski
b3d5e9a70b 2020-02-05 08:08 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* config/dos/watcom.mk
  * config/linux/watcom.mk
  * config/os2/watcom.mk
  * config/win/watcom.mk
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * utils/hbmk2/hbmk2.prg
    ! fix OpenWatcom disabled warning listings, numeric specifiers have
      different meanings in C (wcc386) and C++ mode (wpp386) compiler
      executables. "-wcd201" - not fully sure about it, is now assigned
      to C mode: "unreachable code". References issue #202.

  * ChangeLog.txt
    ! fix UTF-8 char broken by Maurizio
2020-02-05 08:08:49 +01:00
Lailton
f96fbe6cbc Error to build harbour for Android 2019-03-27 18:29:07 -03:00
Mindaugas Kavaliauskas
d633d30d8c 2019-03-19 18:12 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* config/win/global.mk
  * utils/hbmk2/hbmk2.prg
    ! moved winmm library before kernel32. This fixes Harbour compile and
      application run on Win7 and previous Windows versions if latest MinGW
      is used.
    ; Win8+ exports timeGetTime() from both kernel32.dll and winmm.dll.
      Previous windows version exports this function only from winmm.dll.
      See discussion at https://github.com/msys2/MINGW-packages/issues/4984

  * utils/hbmk2/hbmk2.prg
    ! Fixed dependency detection. Setting HB_WITH_<package>=local was ignored
      if packages were detected using pkg-config

  * contrib/hbexpat/3rd/expat/siphash.h
    ! fixed compile error for BCC <= 5.6
    * rediffed
2019-03-19 18:13:42 +02:00
Przemysław Czerpak
d0be194907 2019-02-11 13:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* bin/commit.hb
    ! fixed UTC offset formatting

  * contrib/hbwin/win_os.prg
    * updated win_osNetRegOk() for modern MS-Windows versions:
      - on Win7 and upper set
        System\CurrentControlSet\Services\LanmanServer\Parameters\DisableLeasing
        to disable opportunistic locks.
      - do not force SMB1 to disable oplocks on Win7 and upper - new MS-Win10
        does not support SMB1 at all so this setting on the server with
        such system completely disables SMB network and forcing SMB1 on the
        client side blocks access to new Win10 servers.
        Warning! this setting is still activated on Vista so it cannot
                 connect work with new Win10 but I do not know any other
                 working method to disable oplocks in Windows Vista.
    * synced with Viktor's branch

  * contrib/xhb/hbserv.c
    ! added missing return

  * include/harbour.hbx
  * src/harbour.def
  * src/rtl/version.c
    + added new PRG functions:
         hb_osIsWin7(), hb_osIsWin8(), hb_osIsWin81(), hb_osIsWin10()

  * src/rtl/gttrm/gttrm.c
    + added autodetection for few other XTerm compatible terminals
    + respect color extension in TERM name of all XTerm compatible
      terminals

  * utils/hbmk2/hbmk2.prg
    + added support for -cpp=isoXX borowed from Viktor's branch

  * contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
    * use -cpp=iso11 required for QT 5.7.0 or upper
    * extended QT detection and partial syncing with Viktor's branch
2019-02-11 13:43:40 +01:00
Przemysław Czerpak
8230fcc258 2018-09-14 15:36 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * include/hbchksum.h
  * src/harbour.def
  * src/rtl/hbmd5.c
    + added new C function
         void hb_hmac_md5( const void * key, HB_SIZE nKeyLen,
                           const void * message, HB_SIZE nMsgLen,
                           char * digest );
    + added new PRG function
         HB_HMAC_MD5( <cMessage>, <cKey> ) -> <cMAC>
    ; HMAC MD5 is used in some authentication methods i.e. CRAM-MD5
      authentication in SMTP protocol

  * src/rtl/gttrm/gttrm.c
    + enable extended XTERM colors automatically when xterm-16color,
      xterm-256color, xterm+256color, xterm-88color, rxvt-16color,
      rxvt-256color, rxvt-98color or putty terminal is detected
    + added support for HB_GTI_SCREENDEPTH

  * contrib/gtqtc/gtqtc1.cpp
    + set clipboard data also into selection buffer on platforms which
      support it
    + when main clipboard buffer is empty retrieve clipboard data from
      selection buffer and if it's empty too from find buffer

  * include/harbour.hbx
  * src/harbour.def
  * src/vm/memvars.c
    + added new PRG function
         __mvGetDef( <cMemvar> [, <xDefault> ] ) -> <xValue>
      it works in similar way to __mvGet() but if <cMemvar> does
      not exist then it returns <xDefault> or NIL instead of RTE

  * contrib/hbwin/hbwin.hbx
    + added missing declarations for win_osIs10() and win_osIs81()

  * contrib/hbssl/ssl.c
    ! fixed compilation with OpenSSL < 0.9.8k

  * contrib/sddodbc/core.c
    * pacified warning

  * contrib/xhb/hbxml.c
  * contrib/xhb/hbxml.h
    ! fixed CDATA terminator, it should be "]]>" instead of " ]]>"
    + added support for HBXML_STYLE_NONEWLINE flag

  * src/3rd/pcre/Makefile
    ! typo wince -> wce

  * src/main/Makefile
    * use harbour.rc only in MS-Windows builds - it fixes OS2 OpenWatcom
      builds

  * config/global.mk
    ! in DOS builds check if the 'uname' exists before running it

  * include/hbapigt.h
  * include/hbgtcore.h
  * src/rtl/hbgtcore.c
  * src/rtl/inkey.c
  * src/rtl/inkeyapi.c
  * contrib/xhb/xhbfunc.c
    + added 3-rd parameter to hb_inkeySetText() function. When this parameter
      is true then ';' is not translated to Chr( 13 ) but DOS and UNIX EOLs
      are translated to Chr( 13 )
    + added logical parameter to HB_GTI_CLIPBOARDPASTE which allows to set
      text without ';' translation but with platform independent EOLs

  * src/rtl/memoedit.prg
  * utils/hbmk2/hbmk2.prg
  * contrib/hbnetio/utils/hbnetio/_console.prg
  * extras/dbu/dbu52.patch
  * extras/dbu/dbu53.patch
    * use hb_gtInfo( HB_GTI_CLIPBOARDPASTE, .T. ) instead of
      hb_gtInfo( HB_GTI_CLIPBOARDPASTE ) for pasting data from clipboard
      with platform independent EOLs and ';' characters
2018-09-14 15:36:21 +02:00
Aleksander Czajczynski
d6f7c59e48 2018-02-11 12:55 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* package/harbour.mft
    + added version manifest to Harbour compiler binaries, which is more
      important on Windows 10 builds, to not include false Windows version
      in build info.
      This doesn't affect programs built with Harbour, where similar manifest
      should be included or not, according to your needs.

  * utils/hbmk2/hbmk2.prg
    * define _UNICODE (activates unicode C RTL functions in OpenWatcom
      and some MS C compilers) together with UNICODE in -winuni mode.
      Similar change was done in Viktor's forked Harbour 3.4. Harbour
      core/contrib code doesn't use any of these C RTL, but in most 3rd
      party code it's expected that these are enabled both.
2018-02-11 12:55:13 +01:00
Przemysław Czerpak
b872d7b62c 2017-12-19 21:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/darwin/clang.mk
  * config/darwin/gcc.mk
  * config/darwin/global.mk
  * config/darwin/icc.mk
  * config/darwin/libs.mk
  * utils/hbmk2/hbmk2.prg
    * synced with Viktor's modifications in 3.4 branch:
    ; 2017-11-11 13:14 UTC Viktor Szakats:
    * switch to call the C compiler to link dynamic libs on darwin,
      which is the recommended way to do this, as suggested by Apple.
      This also aligns the platform better with other *nix platforms.
      'libtool' was used before, but that started having intermittent
      issues around Sierra (mitigated by disabling parallel build),
      which returned and got worse in High Sierra (with no remedy).
      The symptom was 'ld: file not found: ' errors with the filename
      not shown or appearing as garbage, then a 'libtool: internal link
      edit command failed'. This was reported and will be fixed in a
      future Xcode release.
      Ref: Apple Radar 34944562

  * config/global.mk
  * config/rules.mk
    + added new user build envvar HB_USER_DCFLAGS
      It allows to set C compiler parameters to compile .c code for
      dynamic libraries.

  * src/rtl/hbsocket.c
    ! fixed fcntl(F_SETFL) 3-rd parameter in hb_socketSetBlockingIO(),
      By mistake I used long instead of int. it created problem on big
      endian 64 bit machines.

  * include/hbgtcore.h
  * src/rtl/hbgtcore.c
    + added new C functions for GT programmers:
         void hb_gt_BaseUnlock( PHB_GT pGT );
         void hb_gt_BaseLock( PHB_GT pGT );
         void hb_gtSleep( PHB_GT pGT, double dSeconds );

  * src/rtl/hbgtcore.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtgui/gtgui.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/gtxwc/gtxwc.c
    * use new functions to unblock GT when low level TONE() code is
      executed. It allows other threads to access shared GT driver
      when one of them executes TONE()

  * contrib/hbexpat/hbexpat.hbx
    * regenerated automatically
2017-12-19 21:42:15 +01:00
Viktor Szakats
7b730500b9 2017-09-13 18:04 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbrun/hbrun.hbp
  * ChangeLog.txt
  * package/harbour-wce.spec.in
  * package/harbour-win.spec.in
  * package/harbour.spec
  * package/mpkg_rpm_wce.sh
  * package/mpkg_rpm_win.sh
  * package/mpkg_rpm.sh
  * package/mpkg_src.sh
  * package/mpkg_ver.sh
  * package/mpkg_win.nsi
  * package/winuni/mpkg_win_uni.nsi
  * utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/Makefile
  * package/harb_osx.icns -> package/harbour.icns
  * package/harb_win.ico -> package/harbour.ico
  * package/harb_win.mft -> package/harbour.mft
  * package/harb_win.rc -> package/harbour.rc
  * utils/hbmk2/hbmk2.rc -> utils/hbmk2/harbour.rc
    * sync more file renames with the 3.4 fork
      NOTE: some projects used to rely on harb_win.ico. This will
      not work anymore and these will need to be updated or even
      better fixed to rely on it local .ico file instead.
    * sync bash formatting and fixes. Formatting guidelines here
      https://google.github.io/styleguide/shell.xml
    * sync two hbmk2 macro names
2017-09-13 18:05:43 +00:00
Viktor Szakats
a83c8f1fd8 2017-09-12 23:01 UTC Viktor Szakats (vszakats users.noreply.github.com)
* utils/hbmk2/hbmk2.prg
    * sync with 3.4 fork minor code changes, comments, some strings
2017-09-12 23:02:21 +00:00
Viktor Szakats
e29badadff hbmk2.prg: whitespace sync 2017-09-12 16:32:25 +00:00
Viktor Szakats
760112e3c5 2017-09-12 15:13 UTC Viktor Szakats (vszakats users.noreply.github.com)
* bin/check.hb
  * config/*/*.mk
  * contrib/gtwvg/wvgwing.c
  * contrib/hbcomm/comm.prg
  * contrib/hbfbird/tfirebrd.prg
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbformat/hbfmtcls.prg
  * contrib/hbformat/utils/hbformat.prg
  * contrib/hbhttpd/core.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
  * contrib/hbsqlit3/hdbc.prg
  * contrib/hbwin/win_bmp.c
  * contrib/xhb/htmutil.prg
  * contrib/xhb/thtm.prg
  * contrib/xhb/xhbarr.c
  * contrib/xhb/xhbtedit.prg
  * ChangeLog.txt
  * debian/control
  * debian/copyright
  * doc/*.txt
  * LICENSE.txt
  * package/harbour.spec
  * README.md
  * src/compiler/hbusage.c
  * src/pp/hbpp.c
  * src/rtl/memoedit.prg
  * src/rtl/teditor.prg
  * src/rtl/tget.prg
  * src/rtl/version.c
  * utils/hbi18n/hbi18n.prg
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/po/hbmk2.hu.po
  * utils/hbtest/hbtest.prg
    * sync with 3.4 fork (no change in functionality)
      CC3 -> CC4 license, copyright banners, some strings, minor
      code changes, doc folder, TOFIX -> FIXME
2017-09-12 15:15:14 +00:00
Viktor Szakats
5a2a287752 2017-09-08 16:00 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * partial sync with the 3.4 fork codebase. These are the things
      synces for the most part:
      - copyright headers
      - grammar/typos in comments and some readmes
      - comment/whitespace/decorations
      - variable scoping in C files
      - DO CASE/SWITCH and some other alternate syntax usage
      - minimal amount of human readable text in strings
      - minor code updates
      - HB_TRACE() void * casts for pointers and few other changes to
        avoid C compiler warnings
      - various other, minor code cleanups
      - only Harbour/C code/headers were touched in src, utils, contrib,
        include. No 3rd party code, no make files, and with just a few
        exceptions, no 'tests' code was touched.
      - certain components were not touched were 3.4 diverged too much
        already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
      - the goal was that no actual program logic should be altered by
        these changes. Except some possible minor exceptions, any such
        change is probably a bug in this patch.
      It's a massive patch, if you find anything broken after it, please
      open an Issue with the details. Build test was done on macOS.
      The goal is make it easier to see what actual code/logic was changed
      in 3.4 compared to 3.2 and to make patches easier to apply in both
      ways.
2017-09-08 16:25:13 +00:00
Viktor Szakats
9f16c2bf8e 2017-08-13 18:27 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * update copyright headers with new FSF postal address
    * COPYING.txt -> LICENSE.txt (rest of repo to be synced)
2017-08-13 18:38:59 +00:00
Viktor Szakats
9581c18aea 2017-05-20 02:25 UTC Viktor Szakats (vszakats users.noreply.github.com)
* utils/hbmk2/hbmk2.prg
    * remove `_HBSHELL_EXEC_PRE` macro
    + add `_HBSHELL_EXTRA_HEADER` macro that can be defined to a header
      (.ch) filename which will be included in all dot prompt and script
      execution sessions. The header will also be embedded in
      hbmk2/hbrun at build-time, so it's not necessary to be present at
      runtime. The macro may also be defined in the `hbmk2_extra.prg`
      source.
2017-05-20 02:58:04 +00:00
Viktor Szakats
6fd6209086 2017-05-19 17:03 UTC Viktor Szakats (vszakats users.noreply.github.com)
* utils/hbmk2/hbmk2.prg
    + add ability to inject extra code/directives to the hbmk2/hbrun source
      code at build time. It can be enabled by defining
      `_HBMK2_EXTRA_CODE`, when a source file named `hbmk2_extra.prg` will
      be included between the header and code section of hbmk2.prg.
    + display note when above option is enabled
    + add ability to prepend extra code before the shell execution stub via
      the `_HBSHELL_EXEC_PRE` macro. It's initialized by an empty string in
      a default build. This macro can be redefined at will by
      `hbmk2_extra.prg`.

  ; commit backported to 3.2 from the 3.4 fork:
    2017-05-14 19:35 UTC Viktor Szakats (vszakats users.noreply.github.com)
    1ee9a9c6dc
2017-05-19 17:06:25 +00:00
Viktor Szakats
a69b4a58ee 2017-05-03 09:10 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * copyright name cleanups
2017-05-03 09:11:48 +00:00
Przemysław Czerpak
52c588287e 2017-04-15 21:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
    * implemented monotonic timers in POSIX and MS-Windows builds

  * config/wce/global.mk
  * config/wce/mingwarm.mk
  * config/win/global.mk
  * utils/hbmk2/hbmk2.prg
    * added winmm/mmtimer to list of system libraries - required
      for timeGetTime()

  * ChangeLog.txt
    ! typos
2017-04-15 21:19:51 +02:00
Przemysław Czerpak
9f0089e966 2016-01-23 11:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbusage.c
  * src/pp/hbpp.c
  * package/harb_win.mft
  * package/harb_win.rc
  * utils/hbi18n/hbi18n.prg
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/po/hbmk2.hu.po
  * utils/hbtest/hbtest.prg
  * contrib/hbformat/utils/hbformat.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
    * bumped copyright year to 2016
2016-01-23 11:49:17 +01:00
Przemysław Czerpak
93163f1e04 2016-01-18 12:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
    * indenting

  * config/darwin/clang.mk
  * config/darwin/gcc.mk
  * config/darwin/icc.mk
  * utils/hbmk2/hbmk2.prg
    * use -no_warning_for_no_symbols in MacOSX builds - many thanks
      to Lorenzo
  * contrib/xhb/xhb.ch
    + added #pragma -kd+

  * doc/xhb-diff.txt
    ! typos
2016-01-18 12:16:42 +01:00
Viktor Szakats
58faf91453 2016-01-14 19:17 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage [1] from copyright header. Pass 1 - using script.
      [1] nobody has access to it anymore AFAIK - and it's also just
          a redirect since long
    ! update url in copyright header
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-14 19:18:17 +01:00
Przemysław Czerpak
c559d7409b 2015-12-29 17:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ src/3rd/hbdossrl/Makefile
  + src/3rd/hbdossrl/serial.c
  + src/3rd/hbdossrl/serial.h
  + src/3rd/hbdossrl/README
    + added DOS Serial Library - it's much cleaner and simpler then COMLib
      we used so far in DOS builds. It also supports hardware and software
      flow control. Many thanks for Karl Stenerud for his wonderful job.

  * src/rtl/hbcom.c
    + added support for DOS Serial Library used as low level backend in
      Harbour DOS builds.

  * config/dos/djgpp.mk
  * config/dos/watcom.mk
  * config/dyn.mk
  * config/lib.mk
  * src/3rd/Makefile
  * src/Makefile
  * utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/hbmk2.prg
    * use DOS Serial Library (hbdossrl) instead of COMLib (hbpmcom)
2015-12-29 17:03:40 +01:00
Przemysław Czerpak
d074db1033 2015-12-15 23:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/dos/watcom.mk
  * config/win/watcom.mk
  * config/linux/watcom.mk
    ! enabled -bd OpenWatcom switch for code compiled as part of dynamic
      libraries
    * use CauseWay as default DOS extender for dynamic DOS builds

  * config/dyn.mk
  * config/lib.mk
  * src/Makefile
    ! fixed list of libraries used to create Harbour DLL in DOS builds

  * config/bin.mk
  * src/vm/Makefile
    * create hbmainstd library for OpenWatcom DOS shared builds

  * src/vm/maindllh.c
    + added DLL entry function for CauseWay DLLs in OpenWatcom builds

  * src/vm/main.c
    * include maindllh.c in OpenWatcom DOS shared builds

  * utils/hbmk2/hbmk2.prg
    + added support for dynamic binaries in DOS OpenWatcom builds.
      Support for CauseWay DLLs is still broken in current OpenWatcom
      builds so it will have to wait for the fix to be usable.

  * src/vm/dynlibhb.c
    + added support for dynamic libraries to OpenWatcom DOS builds.
      Now it's enabled only in harbour.dll due to problems with
      CW and current OW.

  * src/3rd/zlib/zconf.h
  * src/3rd/zlib/zlib.dif
    * use OS2 patch for exporting ZLIB symbols also in DOS builds

  * src/rdd/dbf1.c
    * pacified warning
2015-12-15 23:48:52 +01:00
Przemysław Czerpak
6383f993e9 2015-12-14 14:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
  * utils/hbmk2/Makefile
  * utils/hbmk2/hbmk2.hbp
    ! fixed build process without MT support: HB_MT=no
2015-12-14 14:05:13 +01:00
Tamas TEVESZ
f3f218f2d4 2015-09-24 14:28 UTC+0200 Tamas TEVESZ (ice extreme.hu)
* utils/hbmk2/hbmk2.prg
    + Partially merge 8f16b6731 from vszakats/harbour-core:
      "refined the way pkg-config queries the package version. Now
       it does it in a separate call to make some pkg-config versions
       happy where version query option cannot be mixed with --cflags
       and similar options (f.e. pkg-config 0.28 in current homebrew)."
2015-09-24 14:56:59 +02:00
Przemysław Czerpak
03f2948f8a 2015-09-09 01:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    * implemented hb_fsSetDevMode() only for DOS builds,
      all other platforms always use O_BINARY mode

  * utils/hbmk2/hbmk2.prg
    ! fixed EOL handling in stdout and stderr output
2015-09-09 01:29:42 +02:00
Przemysław Czerpak
0adb08bdbd 2015-06-24 13:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
    ! fix header search algorithm to handle headers specified
      with _absolute paths_.
      This fixed the problem reported by Sergy, here:
         https://groups.google.com/d/msg/harbour-users/EYT9VQ9M7jk/SPtHIxpUB1oJ
      Using absolute path to refer to a headers inside source
      should be avoided and not necessary given properly setup
      header paths.
    ; merged Viktor's patch: 2015-06-23 17:50 UTC+0200 Viktor Szakats
2015-06-24 13:49:06 +02:00
Przemysław Czerpak
537d0e78fa 2014-10-23 13:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
    ; minor comment update

  * utils/hbmk2/hbmk2.prg
    ! fixed error/waring messages after recent modifications for -stop
      switch
2014-10-23 13:50:25 +02:00
Przemysław Czerpak
5f8f68b869 2014-10-21 16:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
    ! yet another -stop fix borrowed from Viktor's branch
2014-10-21 16:57:10 +02:00
Przemysław Czerpak
777e24ee87 2014-10-21 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * added support for user defined index page size in DBFCDX.
      To change page size for newly created index it's enough to call:
         hb_rddInfo( RDDI_INDEXPAGESIZE, <nNewSize>,, "DBFCDX" )
      DBFCDX accepts page sizes which are power of 2 in from 512 to 8192.
      The upper range is my personal decision and can be easy changed
      in Harbour source code. 512 is default CDX index page size and
      only such indexes can be read by other RDDs.
      In some cases bigger pages can increase performance and reduce
      index size. In local networks probably 1024 should give optimal
      performance because can be transferred in single ethernet frame.
      Just make a tests.
    ; In next step I plan to add support for longer index keys when
      bigger pages are used.

  * utils/hbmk2/hbmk2.prg
    ! added -stop fix borrowed from Viktor's branch
2014-10-21 16:40:26 +02:00
Przemysław Czerpak
6d2e59b103 2014-10-07 10:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/win/msvc.mk
  * utils/hbmk2/hbmk2.prg
    * disabled -nologo option used with resource compiler in MSVC builds.
      Compiler version is not enough to detect supported parameters when
      Platform SDK rc.exe is used.
2014-10-07 10:58:04 +02:00
Przemysław Czerpak
3f78fa0b6e 2014-08-01 02:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* extras/gtwvw/gtwvwd.c
    ! fixed typo in WVW_SETICON() - thanks to Ash

  * src/rdd/dbcmd53.c
    ! typo in comment

  * src/rtl/dateshb.c
    % use hb_retclen() instead of hb_retc() when size is well known.

  * src/rtl/valtoexp.prg
    % use hb_defaultValue()

  * src/vm/estack.c
    * minor cleanup

  * src/vm/fm.c
    * modified a little bit HB_MEMINFO structure to force strict alignment
    + added debug code covered by HB_FM_FORCE_REALLOC macro which forces
      allocateing new block in each hb_xrealloc() call
    ! protect realloc() in HB_FM_STATISTIC by mutex, it fixes issue #77.

  * src/rtl/hbproces.c
    % unlock HVM waiting for process in OS2 builds
    ! build array of argument passed to process in hb_processRun() in
      parent process not forked one. It fixes possible deadlock in forked
      process because memory is allocated to create arguments array and
      in MT program memory managers may use mutexes internally which can
      be cloned to forked process in locked state.
      It fixes seldom and random HBMK2 freezing during compilation
      with -jobs=<n> parameter.

  * utils/hbmk2/hbmk2.prg
    ! fixed race condition in concurrent C compiler execution (-jobs=<n>)
      with script file

  * src/debug/dbgentry.c
    ! fixed crash when wrong expression is used as tracepoint
    ! fixed expression analyzer to correctly recognized extended strings e"..."
    * formatting

  * src/debug/dbgbrwsr.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgthsh.prg
  * src/debug/dbgtinp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtobj.prg
  * src/debug/dbgtwin.prg
  * src/debug/dbgwa.prg
  * src/debug/debugger.prg
    * added calls to ::NotSupported() method for some still missing
      functionality
    ! do not use SetColor() but directly pass colors to used objects
      and functions
    ! do not use SetPos() and Row()/Col() for core functionality - it was
      source of few minor bugs
    % enable cursor only in input objects and disable it just after
    % eliminated code to save and restore cursor position and shape
    ! fixed initial positioning in help window
    + implemented HiLite() and DeHiLite() methods in HBDbBrowser() class
    ! fixed positioning when end of source data is reached in browser
    % eliminated some redundant or completely useless code and comments
    % use some fully functional HBDbBrowser() features instead of manual
      encoding similar functionality
    ! validate watchpoint and tracepoint expressions
    % use SWITCH statements
    ! fixed expression presentation (added __dbgValToExp() and __dbgValToStr())
    ! fixed input for new expressions
    ! fixed browser scrolling in object inspector
    ! fixed inkey() processing inside debugger (ALT+D and ALT+C)
    ! fixed browsers highliting in WA inspector
    ! fixed hardcoded limit for 512 workareas in WA inspector
    ! fixed initial WA positioning in WA inspector
    * resized WA  inspector window
    * many other minor fixes and improvements
2014-08-01 02:04:07 +02:00
Przemysław Czerpak
c89f63ee0b 2014-03-06 19:07 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
    ! fixed freed memory access exploited by interactions between
      modifications in last few years.
    ! do not try to remove trailing ^Z char reading from the stream
      if FS_END seek reports 0.
    ! if possible open printer/alternate/extra output in write only mode
      to avoid problem on devices where read access is not available.

  * src/rtl/langapi.c
    * keep EN lang active after deinitialization

  * src/rtl/filesys.c
    ! fixed condition for file time refresh in *nix builds
    ! fixed file time setting in *nix builds

  * include/hbapifs.h
  * src/rtl/Makefile
  * src/rtl/filebuf.c
  + src/rtl/filebufd.c
    * renamed hb_fileRegister2() to hb_fileRegisterFull()
    + added new function hb_fileRegisterPart() which simplifies writing
      small FILE IO redirectors.

  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netiocli.c
    * use hb_fileRegisterFull()

  * contrib/hbplist.txt
  + contrib/hbtcpio/hbtcpio.hbc
  + contrib/hbtcpio/hbtcpio.hbp
  + contrib/hbtcpio/hbtcpio.hbx
  + contrib/hbtcpio/tcpio.c
    + added new Harbour FILE IO redirector.
      It recognizes and process names with "tcp:" prefix, in form like:
         tcp:<host>:<port>[:<timeout>]
      It can be used in different subsystems using Harbour FILE IO and
      stream read/write operations, i.e.
         REQUEST HB_TCPIO
         SET PRINTER TO tcp:192.168.0.110:9100
      can be used to connect to network printers using TCP direct printing.

  * utils/hbmk2/po/hbmk2.pt_BR.po
    ! fixed typo in translation
2014-03-06 19:07:49 +01:00
Przemysław Czerpak
70358ad4b2 2014-01-22 03:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
    ! do not use SetHandleInformation() in WinCE builds

  * config/wce/global.mk
  * utils/hbmk2/hbmk2.prg
    ! added iphlpapi to WinCE builds
2014-01-22 03:30:28 +01:00
Przemysław Czerpak
96ca3fe470 2014-01-21 20:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* Makefile
  * config/*
  * contrib/*
  * doc/*
  * extras/*
  * include/*
  * lib/*
  * package/*
  * src/*
  * tests/*
  * utils/*
    * removed empty lines left after removed '$' + 'Id' + '$' identifiers
2014-01-21 20:41:05 +01:00
Przemysław Czerpak
d5899fbc57 2014-01-14 23:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/win/global.mk
  * utils/hbmk2/hbmk2.prg
  * src/rtl/hbsocket.c
    + added support for returning NIC MAC address by hb_socketGetIFaces()
      in MS-Windows builds.
      To see physical device addresses bound with active IP interfaces use:
         #include "hbsocket.ch"
         PROCEDURE Main()
            LOCAL aIFace
            FOR EACH aIFace IN hb_socketGetIFaces( , .t. )
               ? "IP:", aIFace[ HB_SOCKET_IFINFO_ADDR ], ;
                 "   MAC:", aIFace[ HB_SOCKET_IFINFO_HWADDR ]
            NEXT
            WAIT
         RETURN
2014-01-14 23:36:33 +01:00