Commit Graph

20 Commits

Author SHA1 Message Date
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
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
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
Phil Krylov
84c5123341 2023-11-11 16:48 UTC+0100 Phil Krylov (phil a t krylov.eu)
* config/win/mingw.mk
    + Added support for HB_CCACHE in MinGW builds.
2023-11-11 16:48:42 +01:00
Phil Krylov
20483d43ae 2023-11-11 16:37 UTC+0100 Phil Krylov (phil a t krylov.eu)
* config/win/bcc.mk
    ! Fixed quoting when building under POSIX shell.
2023-11-11 16:37:45 +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
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
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
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
Viktor Szakats
b5182e2aec 2016-03-28 13:09 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* config/dyn.mk
  * config/win/mingw.mk
  * src/dynlib/2nd/Makefile
  * src/dynlib/Makefile
  + src/harbour.def
    + use .def file to specify public symbols of harbour.dll
      for more details, see:
         f238e5f81f
         b2c9e4a63b
    ; NOTE: please make sure to add any new public (HB_EXPORT)
            symbols to this list. Ordinals are not significant
            ATM so the best is to keep alphabetical order.
2016-03-28 13:13:29 +02: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
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
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
vszakats
9687850865 2013-03-16 02:10 UTC+0100 Viktor Szakats (harbour syenar.net)
* (all files)
    * stripped svn header
    * minor cleanups
    ; use following command to find out the history of files:
       git log
       git log --follow
       git blame
       git annotate
2013-03-16 02:11:42 +01:00
vszakats
a4a357a18b 2013-03-15 11:12 UTC+0100 Viktor Szakats (harbour syenar.net)
* /harbour/* -> /*
    * moved whole Harbour source tree one level up to
      avoid single 'harbour' top dir
2013-03-15 11:13:30 +01:00