2009-07-14 00:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* INSTALL
    + Added Linux build on NT host example.

  * utils/hbmk2/hbmk2.prg
    + Added support for most watcom cross-compile situations.
      (os2/linux/dos on win, os2/linux/win on dos, dos/win/linux on os2,
      dos/win/os2 on linux - I didn't test them all obviously)
    ! Some fixes regarding Linux targets on non-Linux hosts cross
      build situations. This is brand new situation.
    ! Synced watcom/os2 flags with build ones to avoid hbmk2 build errors
      on os2.
    ! Fixed linux/watcom object extension, which appears to be .obj
      when using non-Linux hosts.

  * make_gnu.bat
    * Linux cross-build support.
    ! Fixed to find make_gnu.sh when doing partial builds using
      bash on Windows.

  * config/win/global.cf
  * config/win/install.cf
  * config/linux/dir.cf
  * config/linux/global.cf
  * config/linux/install.cf
  * config/os2/global.cf
  * config/os2/install.cf
  * config/wce/global.cf
  * config/wce/install.cf
    + install bash section synced across linux/windosos2 platforms.
    + empty target handling synced across linux/windosos2 platforms.
    + Added support to linux build files for cross builds on
      Windows and OS/2 hosts.
    ; TODO: Whole install/global/dir.cf logic is just crying to be moved
            to central location and be branched by host platform/shell
            rather than target platform.
    ; Please check me on the linux changes, could be that I messed it up.

  * source/rtl/Makefile
    + Enabled to try building all GTs on every platform.
      Local autodetection should take care of the decision to finally
      build it or not.

  * source/rtl/gtxwc/Makefile
  * source/rtl/gtcrs/Makefile
  * source/rtl/gttrm/Makefile
  * source/rtl/gtsln/Makefile
    + Added self-detection for external headers just like it's done
      in contribs. This is required to support Linux cross-builds on
      Windows. (djgpp + curses ends with build errors)
    + Added GPM autodetection.
    + Enabled gttrm for cygwin. (only in local make file)
    ; TOFIX: Remove such detection logic from make_gnu.sh (it's
             now redundant and doesn't work for djgpp/cygwin)

  * source/rtl/gtwin/gtwin.c
  * source/rtl/hbgtcore.c
  * contrib/xhb/txml.prg
    * Minor formatting.
This commit is contained in:
Viktor Szakats
2009-07-13 23:20:49 +00:00
parent f2cfcd1144
commit 40d66b8a9d
21 changed files with 511 additions and 185 deletions

View File

@@ -17,6 +17,66 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-07-14 00:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
+ Added Linux build on NT host example.
* utils/hbmk2/hbmk2.prg
+ Added support for most watcom cross-compile situations.
(os2/linux/dos on win, os2/linux/win on dos, dos/win/linux on os2,
dos/win/os2 on linux - I didn't test them all obviously)
! Some fixes regarding Linux targets on non-Linux hosts cross
build situations. This is brand new situation.
! Synced watcom/os2 flags with build ones to avoid hbmk2 build errors
on os2.
! Fixed linux/watcom object extension, which appears to be .obj
when using non-Linux hosts.
* make_gnu.bat
* Linux cross-build support.
! Fixed to find make_gnu.sh when doing partial builds using
bash on Windows.
* config/win/global.cf
* config/win/install.cf
* config/linux/dir.cf
* config/linux/global.cf
* config/linux/install.cf
* config/os2/global.cf
* config/os2/install.cf
* config/wce/global.cf
* config/wce/install.cf
+ install bash section synced across linux/windosos2 platforms.
+ empty target handling synced across linux/windosos2 platforms.
+ Added support to linux build files for cross builds on
Windows and OS/2 hosts.
; TODO: Whole install/global/dir.cf logic is just crying to be moved
to central location and be branched by host platform/shell
rather than target platform.
; Please check me on the linux changes, could be that I messed it up.
* source/rtl/Makefile
+ Enabled to try building all GTs on every platform.
Local autodetection should take care of the decision to finally
build it or not.
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
+ Added self-detection for external headers just like it's done
in contribs. This is required to support Linux cross-builds on
Windows. (djgpp + curses ends with build errors)
+ Added GPM autodetection.
+ Enabled gttrm for cygwin. (only in local make file)
; TOFIX: Remove such detection logic from make_gnu.sh (it's
now redundant and doesn't work for djgpp/cygwin)
* source/rtl/gtwin/gtwin.c
* source/rtl/hbgtcore.c
* contrib/xhb/txml.prg
* Minor formatting.
2009-07-13 11:30 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/gtqtc/gtqtc.cpp
! BYTE => int.

View File

@@ -630,6 +630,26 @@ EXAMPLES
./make_gnu.sh "$@"
---
Linux
-----
--- Open Watcom C++ on Windows NT host (requires native Windows Harbour binaries)
SET WATCOM=C:\watcom
SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH%
SET EDPATH=%WATCOM%\EDDAT
SET INCLUDE=%WATCOM%\LH
rem
rem ; Native Windows Harbour binaries need to be installed on this path
set HB_BIN_COMPILE=C:\hb-watcom\bin
set HB_PPGEN_PATH=%HB_BIN_COMPILE%
rem
set HB_ARCHITECTURE=linux
set HB_COMPILER=watcom
set HB_USER_PRGFLAGS=%HB_USER_PRGFLAGS% -D__PLATFORM__LINUX -D__PLATFORM__UNIX -undef:__PLATFORM__WINDOWS
set HB_INSTALL_PREFIX=C:\hb-%HB_COMPILER%
call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1
---
HOW TO GET THE HARBOUR SOURCES
==============================

View File

@@ -4,6 +4,20 @@
ifeq ($(PM),) # Only traverse directories if not compiling a specific module
ifeq ($(DIRS),) # Empty directory list
DIR_RULE = @echo Done
else
ifeq ($(SHLVL),) # non-bash
DIR_MAKE = $(subst /,\,$(MK))
DIR_LIST = $(subst /,\,$(DIRS))
DIR_RULE = $(COMSPEC) /C for %d in ($(DIR_LIST)) do $(DIR_MAKE) -C %d $@
else # bash
DIR_RULE =\
@for d in $(DIRS); do \
if [ -d $$d ]; then \
@@ -11,4 +25,8 @@ DIR_RULE =\
fi \
done
endif # ! non-bash
endif # ! Empty directory list
endif # ! compiling a specific program module

View File

@@ -27,6 +27,72 @@ endif
# verify if GT drivers exist
HB_GT_LIBS := $(foreach gt, $(HB_GT_LIST), $(if $(wildcard $(TOP)$(ROOT)source/rtl/$(gt)),$(gt),))
ifeq ($(SHLVL),) # non-bash
ARCH_DIR = $(HB_ARCH)
DOS_ARCH_DIR = $(subst /,\,$(HB_ARCH))
DOS_LIB_DIR = $(subst /,\,$(LIB_DIR))
DOS_LIB_PATH = $(subst /,\,$(LIB_PATH))
DOS_LIB_ARCH = $(subst /,\,$(LIB_ARCH))
DIRSEP = $(subst /,\,\)
MK = $(subst /,\,$(subst \~,~,$(MAKE)))
ifeq ($(OS2_SHELL),) # non-OS/2
ifneq ($(ComSpec),)
COMSPEC := $(ComSpec)
else
ifeq ($(COMSPEC),)
COMSPEC := cmd.exe
endif
endif
RM = del /q /f
RD = rmdir /q /s
MD = mkdir
CP = $(COMSPEC) /c copy
MV = move
dirbase::
-@$(COMSPEC) /c if not exist $(DOS_ARCH_DIR)\. $(MD) $(DOS_ARCH_DIR)
$(if $(DOS_LIB_DIR),-@$(COMSPEC) /c if not exist $(DOS_LIB_DIR)\. $(MD) $(DOS_LIB_DIR),)
clean::
-@$(COMSPEC) /c if exist $(DOS_ARCH_DIR) $(RD) $(DOS_ARCH_DIR)
$(if $(DOS_LIB_ARCH),-@$(COMSPEC) /c if exist $(DOS_LIB_ARCH) $(RM) $(DOS_LIB_ARCH),)
else # OS/2
RM = del /n
RD = rmdir
MD = md
CP = copy
MV = move
ifeq ($(LIB_PATH),)
dirbase::
-for %d in ($(HB_ARCHITECTURE) $(DOS_ARCH_DIR)) do if not exist %d $(MD) %d
clean::
-if exist $(DOS_ARCH_DIR)\*.* $(RM) $(DOS_ARCH_DIR)\*.*
-for %d in ($(DOS_ARCH_DIR) $(HB_ARCHITECTURE)) do if exist %d $(RD) %d
else
dirbase::
-for %d in ($(HB_ARCHITECTURE) $(DOS_ARCH_DIR) $(DOS_LIB_PATH) $(DOS_LIB_DIR)) do if not exist %d $(MD) %d
clean::
-if exist $(DOS_ARCH_DIR)\*.* $(RM) $(DOS_ARCH_DIR)\*.*
-for %d in ($(DOS_ARCH_DIR) $(HB_ARCHITECTURE)) do if exist %d $(RD) %d
-if exist $(DOS_LIB_ARCH) $(RM) $(DOS_LIB_ARCH)
endif
endif
else # bash
ARCH_DIR = $(HB_ARCH)
MK = $(MAKE)
RM = rm -f
@@ -43,3 +109,5 @@ dirbase::
clean::
-$(RD) $(ARCH_DIR) $(LIB_ARCH)
endif

View File

@@ -2,6 +2,38 @@
# $Id$
#
ifeq ($(INSTALL_OBJS),) # Empty install list
INSTALL_RULE = @echo Done
else
ifeq ($(SHLVL),) # non-bash
ifeq ($(OS2_SHELL),) # non-OS/2
INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS))
INSTALL_RULE = \
-$(COMSPEC) /c for %%f in ($(INSTALL_LIST)) do copy "%%f" "$(subst /,\,$(INSTALL_DIR))"
else # OS/2
# We have to use script to overcome the max command size limit
# NOTE: The empty line directly before 'endef' HAVE TO exist!
# It causes that every commands will be separated by LF
define inst_file
$(COMSPEC) /C $(CP) $(file) $(subst /,\,$(INSTALL_DIR))
endef
INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS))
INSTALL_RULE = $(foreach file, $(INSTALL_LIST), $(inst_file))
endif
else # bash
INSTALL_RULE =\
@if [ -z $(INSTALL_DIR) ] || [ ! -d $(INSTALL_DIR) ]; \
then \
@@ -20,3 +52,7 @@ INSTALL_RULE =\
fi \
done \
fi
endif
endif # Empty install list

View File

@@ -24,7 +24,7 @@ DOS_LIB_PATH = $(subst /,\,$(LIB_PATH))
DOS_LIB_ARCH = $(subst /,\,$(LIB_ARCH))
DIRSEP = $(subst /,\,\)
MK = $(subst /,\,$(subst \~,~,$(MAKE)))
MK := $(subst /,\,$(subst \~,~,$(MAKE)))
ifeq ($(OS2_SHELL),) # non-OS/2
ifneq ($(ComSpec),)
@@ -34,6 +34,7 @@ ifeq ($(OS2_SHELL),) # non-OS/2
COMSPEC := cmd.exe
endif
endif
RM = del /q /f
RD = rmdir /q /s
MD = mkdir
@@ -82,7 +83,6 @@ else # bash
ARCH_DIR = $(HB_ARCH)
MK = $(MAKE)
RM = rm -f
RD = rm -f -r
CP = cp -f

View File

@@ -35,9 +35,10 @@ endif
else # bash
INSTALL_RULE =\
@if [ ! -d $(INSTALL_DIR) ]; \
@if [ -z $(INSTALL_DIR) ] || [ ! -d $(INSTALL_DIR) ]; \
then \
echo "! Can't install, path not found: $(INSTALL_DIR)" 1>&2; \
echo "! Can't install, path not found: '$(INSTALL_DIR)'" 1>&2; \
false; \
else \
for i in $(INSTALL_OBJS); \
do \

View File

@@ -65,7 +65,6 @@ else # bash
ARCH_DIR = $(HB_ARCH)
MK = $(MAKE)
RM = rm -f
RD = rm -f -r
CP = cp -f

View File

@@ -18,9 +18,10 @@ INSTALL_RULE = \
else # bash
INSTALL_RULE =\
@if [ ! -d $(INSTALL_DIR) ]; \
@if [ -z $(INSTALL_DIR) ] || [ ! -d $(INSTALL_DIR) ]; \
then \
echo "! Can't install, path not found: $(INSTALL_DIR)" 1>&2; \
echo "! Can't install, path not found: '$(INSTALL_DIR)'" 1>&2; \
false; \
else \
for i in $(INSTALL_OBJS); \
do \

View File

@@ -61,7 +61,6 @@ else # bash
ARCH_DIR = $(HB_ARCH)
MK = $(MAKE)
RM = rm -f
RD = rm -f -r
CP = cp -f

View File

@@ -18,9 +18,10 @@ INSTALL_RULE = \
else # bash
INSTALL_RULE =\
@if [ ! -d $(INSTALL_DIR) ]; \
@if [ -z $(INSTALL_DIR) ] || [ ! -d $(INSTALL_DIR) ]; \
then \
echo "! Can't install, path not found: $(INSTALL_DIR)" 1>&2; \
echo "! Can't install, path not found: '$(INSTALL_DIR)'" 1>&2; \
false; \
else \
for i in $(INSTALL_OBJS); \
do \

View File

@@ -362,14 +362,16 @@ METHOD New( xElem, nStyle ) CLASS TXmlDocument
::oRoot := TXmlNode():New( HBXML_TYPE_DOCUMENT )
ELSE
SWITCH ValType( xElem )
CASE "O"
::oRoot := xElem
EXIT
CASE "O"
::oRoot := xElem
EXIT
CASE "N"
CASE "C"
::oRoot := TXmlNode():New( HBXML_TYPE_DOCUMENT )
::Read( xElem, nStyle )
EXIT
CASE "N"
CASE "C"
::oRoot := TXmlNode():New( HBXML_TYPE_DOCUMENT )
::Read( xElem, nStyle )
ENDSWITCH
ENDIF

View File

@@ -161,6 +161,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set _HB_PATH=
if "%HB_ARCHITECTURE%" == "os2" goto SKIP_WINDLL
if "%HB_ARCHITECTURE%" == "linux" goto SKIP_WINDLL
rem ---------------------------------------------------------------
rem Start the GNU Make system
@@ -215,7 +216,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
:DO_GCC_CYG
set HB_DYNLIB=no
sh make_gnu.sh clean install %HB_USER_MAKEFLAGS%
sh %~dp0make_gnu.sh clean install %HB_USER_MAKEFLAGS%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
@@ -229,7 +230,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
:SKIP_WINDLL_CYG
sh make_gnu.sh %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
sh %~dp0make_gnu.sh %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE

View File

@@ -255,8 +255,19 @@ PRG_SOURCES=\
LIBNAME=hbrtl
# The list of all valid GT drivers is defined in config/<arch>/global.cf.
DIRS=$(HB_GT_LIBS)
DIRS=\
gtcgi \
gtcrs \
gtdos \
gtgui \
gtos2 \
gtpca \
gtsln \
gtstd \
gttrm \
gtwin \
gtwvt \
gtxwc \
include $(TOP)$(ROOT)config/lib.cf
include $(TOP)$(ROOT)config/dir.cf

View File

@@ -4,32 +4,49 @@
ROOT = ../../../
LIBNAME=gtcrs
C_SOURCES=\
gtcrs.c \
LIBNAME=gtcrs
ifeq ($(HB_INC_CURSES),)
ifeq ($(HB_XBUILD),)
ifeq ($(HB_NCURSES_194),yes)
HB_INC_CURSES = /usr/include/ncur194
else
HB_INC_CURSES = /usr/include/ncurses /sw/include /sw/include/ncurses
endif
endif
endif
ifeq ($(HB_WITHOUT_GTCRS),yes)
#HB_INC_CURSES =
endif
HB_INC_CURSES_OK += $(foreach d, $(HB_INC_CURSES), $(if $(wildcard $(d)/curses.h),$(d),))
ifneq ($(strip $(HB_INC_CURSES_OK)),)
HB_INC_GPM = /usr/include /usr/local/include
HB_INC_GPM_OK += $(foreach d, $(HB_INC_GPM), $(if $(wildcard $(d)/gpm.h),$(d),))
ifeq ($(HB_GT_CRS_BCEHACK),yes)
HB_USER_CFLAGS += -DHB_GT_CRS_BCEHACK
endif
ifneq ($(strip $(HB_INC_GPM_OK)),)
HB_USER_CFLAGS += -DHAVE_GPM_H
ifeq ($(HB_GPM_NOICE_DISABLE),yes)
HB_USER_CFLAGS += -DHB_GPM_NOICE_DISABLE
endif
endif
ifeq ($(HB_NCURSES_194),yes)
HB_USER_CFLAGS += -DHB_NCURSES_194
endif
HB_USER_CFLAGS += $(foreach d, $(HB_INC_CURSES_OK), -I$(d))
include $(TOP)$(ROOT)config/lib.cf
# a workaround of a problem with different include directories
# for slang curses files between different unix distributions
ifeq ($(HB_NCURSES_FINK),yes)
CFLAGS += -I/sw/include -I/sw/include/ncurses
else
ifeq ($(HB_NCURSES_194),yes)
CFLAGS += -I/usr/include/ncur194
CFLAGS += -DHB_NCURSES_194
else
CFLAGS += -I/usr/include/ncurses
ifeq ($(HB_GT_CRS_BCEHACK),yes)
CFLAGS += -DHB_GT_CRS_BCEHACK
endif
endif
endif
ifeq ($(HB_GPM_MOUSE),yes)
CFLAGS += -DHAVE_GPM_H
ifeq ($(HB_GPM_NOICE_DISABLE),yes)
CFLAGS += -DHB_GPM_NOICE_DISABLE
endif
include $(TOP)$(ROOT)config/none.cf
endif

View File

@@ -4,34 +4,50 @@
ROOT = ../../../
LIBNAME=gtsln
C_SOURCES=\
gtsln.c \
kbsln.c \
mousesln.c \
LIBNAME=gtsln
ifeq ($(HB_INC_SLANG),)
ifeq ($(HB_XBUILD),)
ifeq ($(HB_LOCAL_SLN),yes)
HB_INC_SLANG = /usr/local/include /usr/local/include/slang
LDFLAGS := -L/usr/local/lib $(LDFLAGS)
else
HB_INC_SLANG = /usr/include/slang /usr/local/include /usr/local/include/slang /sw/include /opt/local/include
LDFLAGS := -L/usr/lib/slang -L/usr/local/lib -L/usr/local/lib/slang $(LDFLAGS)
endif
endif
endif
ifeq ($(HB_WITHOUT_GTSLN),yes)
HB_INC_SLANG =
endif
ifeq ($(HB_COMMERCE),yes)
HB_INC_SLANG =
endif
HB_INC_SLANG_OK += $(foreach d, $(HB_INC_SLANG), $(if $(wildcard $(d)/slang.h),$(d),))
ifneq ($(strip $(HB_INC_SLANG_OK)),)
HB_INC_GPM = /usr/include /usr/local/include
HB_INC_GPM_OK += $(foreach d, $(HB_INC_GPM), $(if $(wildcard $(d)/gpm.h),$(d),))
ifneq ($(strip $(HB_INC_GPM_OK)),)
HB_USER_CFLAGS += -DHAVE_GPM_H
ifeq ($(HB_GPM_NOICE_DISABLE),yes)
HB_USER_CFLAGS += -DHB_GPM_NOICE_DISABLE
endif
endif
HB_USER_CFLAGS += $(foreach d, $(HB_INC_SLANG_OK), -I$(d))
include $(TOP)$(ROOT)config/lib.cf
# a workaround of a problem with different include directories
# for slang header files between different unix distributions
ifeq ($(HB_LOCAL_SLN),yes)
CFLAGS := -I/usr/local/include -I/usr/local/include/slang $(CFLAGS)
LDFLAGS := -L/usr/local/lib $(LDFLAGS)
else
CFLAGS := -I/usr/include/slang -I/usr/local/include \
-I/usr/local/include/slang -I/sw/include -I/opt/local/include $(CFLAGS)
LDFLAGS := -L/usr/lib/slang -L/usr/local/lib -L/usr/local/lib/slang $(LDFLAGS)
endif
ifeq ($(HB_GPM_MOUSE),yes)
CFLAGS += -DHAVE_GPM_H
ifeq ($(HB_GPM_NOICE_DISABLE),yes)
CFLAGS += -DHB_GPM_NOICE_DISABLE
endif
include $(TOP)$(ROOT)config/none.cf
endif

View File

@@ -4,16 +4,42 @@
ROOT = ../../../
LIBNAME=gttrm
C_SOURCES=\
gttrm.c \
LIBNAME=gttrm
HB_WITH_GTTRM=yes
ifeq ($(HB_ARCHITECTURE),win)
HB_WITH_GTTRM=no
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_GTTRM=no
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_WITH_GTTRM=no
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_GTTRM=no
endif
ifeq ($(HB_COMPILER),cygwin)
HB_WITH_GTTRM=yes
endif
include $(TOP)$(ROOT)config/lib.cf
ifeq ($(HB_WITH_GTTRM),yes)
ifeq ($(HB_GPM_MOUSE),yes)
HB_INC_GPM = /usr/include /usr/local/include
HB_INC_GPM_OK += $(foreach d, $(HB_INC_GPM), $(if $(wildcard $(d)/gpm.h),$(d),))
ifneq ($(strip $(HB_INC_GPM_OK)),)
CFLAGS += -DHAVE_GPM_H
ifeq ($(HB_GPM_NOICE_DISABLE),yes)
CFLAGS += -DHB_GPM_NOICE_DISABLE
endif
endif
include $(TOP)$(ROOT)config/lib.cf
else
include $(TOP)$(ROOT)config/none.cf
endif

View File

@@ -583,8 +583,8 @@ static void hb_gt_win_xGetScreenContents( PHB_GT pGT, SMALL_RECT * psrWin )
i = iRow * _GetScreenWidth() + psrWin->Left;
for( iCol = psrWin->Left; iCol <= psrWin->Right; ++iCol )
{
HB_GTSELF_PUTSCRCHAR( pGT, iRow, iCol, ( BYTE ) s_pCharInfoScreen[i].Attributes, 0,
s_charTransRev[ ( BYTE ) s_pCharInfoScreen[i].Char.AsciiChar ] );
HB_GTSELF_PUTSCRCHAR( pGT, iRow, iCol, ( BYTE ) s_pCharInfoScreen[ i ].Attributes, 0,
s_charTransRev[ ( BYTE ) s_pCharInfoScreen[ i ].Char.AsciiChar ] );
++i;
}
}
@@ -617,8 +617,8 @@ static void hb_gt_win_xInitScreenParam( PHB_GT pGT )
s_iCurRow = s_csbi.dwCursorPosition.Y;
s_iCurCol = s_csbi.dwCursorPosition.X;
s_iUpdtTop = s_csbi.dwSize.Y;
s_iUpdtLeft = s_csbi.dwSize.X;
s_iUpdtTop = _GetScreenHeight();
s_iUpdtLeft = _GetScreenWidth();
s_iUpdtBottom = s_iUpdtRight = 0;
/*
@@ -630,8 +630,8 @@ static void hb_gt_win_xInitScreenParam( PHB_GT pGT )
#if 0
srWin.Top = 0;
srWin.Left = 0;
srWin.Bottom = s_csbi.dwSize.Y - 1;
srWin.Right = s_csbi.dwSize.X - 1;
srWin.Bottom = _GetScreenHeight() - 1;
srWin.Right = _GetScreenWidth() - 1;
#else
srWin.Top = s_csbi.srWindow.Top;
srWin.Left = s_csbi.srWindow.Left;
@@ -1228,7 +1228,7 @@ static int hb_gt_win_ReadKey( PHB_GT pGT, int iEventMask )
/* Save the keyboard state and ASCII,scan, key code */
WORD wKey = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.wVirtualScanCode;
WORD wChar = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.wVirtualKeyCode;
DWORD dwState= s_irInBuf[ s_cNumIndex ].Event.KeyEvent.dwControlKeyState;
DWORD dwState = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.dwControlKeyState;
ch = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.uChar.AsciiChar;
@@ -1296,7 +1296,7 @@ static int hb_gt_win_ReadKey( PHB_GT pGT, int iEventMask )
extKey = EXKEY_DOWN;
else if( wChar == 45 ) /* VK_INSERT */
extKey = EXKEY_INS;
else if( wChar == 46 && (!(ch==46)) ) /* VK_DELETE */
else if( wChar == 46 && ch != 46 ) /* VK_DELETE */
{
/* International keyboard under Win98 - when VirtualKey and Ascii
char are both 46, then it's keypad del key, but numlock is on,
@@ -1316,7 +1316,7 @@ static int hb_gt_win_ReadKey( PHB_GT pGT, int iEventMask )
else if( wChar == 109 ) /* VK_SUBTRACT */
extKey = EXKEY_KPMINUS;
else if( wChar == 111 || /* VK_DIVIDE */
( wChar == 191 && ( dwState & ENHANCED_KEY )))
( wChar == 191 && ( dwState & ENHANCED_KEY ) ) )
{
/* This should be for other than Win98 */
extKey = EXKEY_KPDIVIDE;

View File

@@ -4,9 +4,29 @@
ROOT = ../../../
LIBNAME=gtxwc
C_SOURCES=\
gtxwc.c \
LIBNAME=gtxwc
ifeq ($(HB_INC_X11),)
ifeq ($(HB_XBUILD),)
HB_INC_X11 = /usr/include
endif
endif
ifeq ($(HB_WITHOUT_GTXWC),yes)
HB_INC_X11 =
endif
HB_INC_X11_OK += $(foreach d, $(HB_INC_X11), $(if $(wildcard $(d)/X11/Xlib.h),$(d),))
ifneq ($(strip $(HB_INC_X11_OK)),)
HB_USER_CFLAGS += $(foreach d, $(HB_INC_X11_OK), -I$(d))
include $(TOP)$(ROOT)config/lib.cf
else
include $(TOP)$(ROOT)config/none.cf
endif

View File

@@ -1506,7 +1506,7 @@ static BOOL hb_gt_def_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
HB_GTSELF_FLUSH( pGT );
/* no break; */
}
case HB_GTI_GETWIN: /* save screen buffer, cursor shape and possition */
case HB_GTI_GETWIN: /* save screen buffer, cursor shape and position */
{
int iRow, iCol;
ULONG ulSize;

View File

@@ -428,42 +428,55 @@ STATIC PROCEDURE hbmk_COMP_Setup( cARCH, cCOMP, cBasePath )
cBasePath := PathNormalize( cBasePath )
DO CASE
CASE cARCH == "win" .AND. cCOMP == "watcom"
hb_SetEnv( "WATCOM", cBasePath )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "BINNT;" + cBasePath + hb_osPathSeparator() + "BINW;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "EDPATH", cBasePath + hb_osPathSeparator() + "EDDAT" )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "H;" + cBasePath + hb_osPathSeparator() + "H" + hb_osPathSeparator() + "NT" )
CASE cARCH == "win" .AND. cCOMP == "pocc"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include;" + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win" )
CASE cARCH == "win" .AND. cCOMP == "pocc64"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include;" + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win64" )
CASE cARCH == "wce" .AND. cCOMP == "poccarm"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "WinCE;" + cBasePath + hb_osPathSeparator() + "Include" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "WinCE" )
CASE cARCH == "dos" .AND. cCOMP == "djgpp"
hb_SetEnv( "DJGPP", cBasePath + hb_osPathSeparator() + "djgpp.env" )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "bin;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "bin" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
CASE cARCH == "dos" .AND. cCOMP == "watcom"
CASE cARCH == "win" .AND. cCOMP == "pocc"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win" )
CASE cARCH == "win" .AND. cCOMP == "pocc64"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win64" )
CASE cARCH == "wce" .AND. cCOMP == "poccarm"
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "WinCE" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Include" )
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "WinCE" )
CASE cCOMP == "watcom"
hb_SetEnv( "WATCOM", cBasePath )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "BINW;" + hb_GetEnv( "PATH" ) )
hb_SetEnv( "EDPATH", cBasePath + hb_osPathSeparator() + "EDDAT" )
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "H" )
hb_SetEnv( "EDPATH", cBasePath + hb_osPathSeparator() + "eddat" )
#if defined( __PLATFORM__WINDOWS )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "binnt" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "binw" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
#elif defined( __PLATFORM__OS2 )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "binp" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "binw" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
#elif defined( __PLATFORM__DOS )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "binw" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
#elif defined( __PLATFORM__LINUX )
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "binl" + hb_osPathListSeparator() + hb_GetEnv( "PATH" ) )
#endif
DO CASE
CASE cARCH == "win"
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "h" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "h" + hb_osPathSeparator() + "nt" )
CASE cARCH == "os2"
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "h" + hb_osPathListSeparator() + cBasePath + hb_osPathSeparator() + "h" + hb_osPathSeparator() + "os2" )
hb_SetEnv( "BEGINLIBPATH", cBasePath + hb_osPathSeparator() + "binp" + hb_osPathSeparator() + "dll" )
CASE cARCH == "dos"
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "h" )
CASE cARCH == "linux"
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "lh" )
ENDCASE
ENDCASE
@@ -588,7 +601,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
LOCAL lSysLoc
LOCAL cPrefix
LOCAL cPostfix
LOCAL cCCEXT_mingw
LOCAL cCCEXT
LOCAL lSkipBuild := .F.
LOCAL lStopAfterInit := .F.
@@ -925,9 +938,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
hbmk[ _HBMK_cCCPOSTFIX ] := GetEnv( "HB_CCPOSTFIX" )
#if defined( __PLATFORM__UNIX )
cCCEXT_mingw := ""
cCCEXT := ""
#else
cCCEXT_mingw := ".exe"
cCCEXT := ".exe"
#endif
/* Setup architecture dependent data */
@@ -1043,13 +1056,13 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
l_cHB_INSTALL_PREFIX := PathSepToSelf( GetEnv( "HB_INSTALL_PREFIX" ) )
IF Empty( l_cHB_INSTALL_PREFIX )
DO CASE
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cBinExt )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cCCEXT )
l_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".."
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cCCEXT )
l_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cCCEXT )
l_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".."
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cCCEXT )
l_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".."
OTHERWISE
hbmk_OutErr( hbmk, I_( "Error: HB_INSTALL_PREFIX not set, failed to autodetect." ) )
@@ -1081,25 +1094,37 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
aCOMPDET_EMBED := {}
IF hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
IF hbmk[ _HBMK_cARCH ] $ "win|wce|dos|os2|linux"
#if defined( __PLATFORM__WINDOWS )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingw" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw" , "" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingw64" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw64" , "x86_64-w64-mingw32-" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingwarm" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-mingw32ce-" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingwarm" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-", NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "djgpp" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos", "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binnt" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "win", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "dos", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "win", "pocc" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "win", "pocc64" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "wce", "poccarm" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingw" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "win" , "mingw" , "" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingw64" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "win" , "mingw64" , "x86_64-w64-mingw32-" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingwarm" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "wce" , "mingwarm", "arm-mingw32ce-" , NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "mingwarm" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "wce" , "mingwarm", "arm-wince-mingw32ce-", NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "djgpp" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos" , "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binnt" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "win" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binnt" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "dos" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binnt" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "os2" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binnt" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "linux", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "win" , "pocc" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "win" , "pocc64" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "pocc" + hb_osPathSeparator() + "Bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "wce" , "poccarm" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
#elif defined( __PLATFORM__DOS )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "djgpp" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos", "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "dos", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "djgpp" + hb_osPathSeparator() + "bin" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos" , "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "dos" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "win" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "os2" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binw" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "linux", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
#elif defined( __PLATFORM__OS2 )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binp" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "dos" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binp" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "win" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binp" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "os2" , "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + _COMPEMBED_BASE_ + "watcom" + hb_osPathSeparator() + "binp" ), iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "linux", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
#elif defined( __PLATFORM__UNIX )
@@ -1109,11 +1134,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
!( hbmk[ _HBMK_cARCH ] == "dos" )
DO CASE
CASE hbmk[ _HBMK_cCOMP ] $ "mingw"
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/xmingw/bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw" , "i386-mingw-", NIL } )
CASE hbmk[ _HBMK_cCOMP ] $ "mingwarm"
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/mingw32ce/bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-mingw32ce-", NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/mingw32ce/bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-", NIL } )
CASE hbmk[ _HBMK_cCOMP ] == "mingw"
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/xmingw/bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "win", "mingw" , "i386-mingw-", NIL } )
CASE hbmk[ _HBMK_cCOMP ] == "mingwarm"
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/mingw32ce/bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "wce", "mingwarm", "arm-mingw32ce-", NIL } )
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := "/opt/mingw32ce/bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-", NIL } )
ENDCASE
ENDIF
@@ -1131,7 +1156,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
IF Empty( hbmk[ _HBMK_cCOMP ] ) .OR. hbmk[ _HBMK_cCOMP ] == "bld"
IF Len( aCOMPSUP ) == 1
hbmk[ _HBMK_cCOMP ] := aCOMPSUP[ 1 ]
ELSEIF hbmk[ _HBMK_cARCH ] == "linux" .OR. hbmk[ _HBMK_cCOMP ] == "bld"
ELSEIF hbmk[ _HBMK_cARCH ] $ "bsd|hpux|sunos|linux" .OR. ;
hbmk[ _HBMK_cARCH ] == "darwin" .OR. ;
hbmk[ _HBMK_cCOMP ] == "bld"
hbmk[ _HBMK_cCOMP ] := hb_Version( HB_VERSION_BUILD_COMP )
IF AScan( aCOMPSUP, {|tmp| tmp == hbmk[ _HBMK_cCOMP ] } ) == 0
hbmk[ _HBMK_cCOMP ] := NIL
@@ -1149,21 +1176,21 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ENDIF
NEXT
ENDIF
IF Empty( hbmk[ _HBMK_cCOMP ] ) .AND. hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
/* Autodetect embedded MinGW installation */
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
IF hbmk[ _HBMK_cARCH ] == aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] .AND. ;
! Empty( cPath_CompC := Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bBlock ], aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ] ) )
hbmk[ _HBMK_cCOMP ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCOMP ]
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
ENDIF
EXIT
ENDIF
IF Empty( hbmk[ _HBMK_cCOMP ] )
/* Autodetect embedded installations */
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
IF hbmk[ _HBMK_cARCH ] == aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] .AND. ;
! Empty( cPath_CompC := Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bBlock ], aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ] ) )
hbmk[ _HBMK_cCOMP ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCOMP ]
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
ENDIF
NEXT
ENDIF
EXIT
ENDIF
NEXT
ENDIF
IF ! Empty( hbmk[ _HBMK_cCOMP ] )
IF hbmk[ _HBMK_lInfo ]
@@ -1182,21 +1209,19 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Compiler value unknown: %1$s" ), hbmk[ _HBMK_cCOMP ] ) )
RETURN 2
ENDIF
IF hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
/* Detect cross platform CCPREFIX and CCPATH if embedded MinGW installation is detected */
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
IF aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] == hbmk[ _HBMK_cARCH ] .AND. ;
aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCOMP ] == hbmk[ _HBMK_cCOMP ] .AND. ;
! Empty( cPath_CompC := Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bBlock ], aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ] ) )
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
ENDIF
EXIT
/* Detect cross platform CCPREFIX and CCPATH if embedded installation is detected */
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
IF aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] == hbmk[ _HBMK_cARCH ] .AND. ;
aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCOMP ] == hbmk[ _HBMK_cCOMP ] .AND. ;
! Empty( cPath_CompC := Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bBlock ], aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ] ) )
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
ENDIF
NEXT
ENDIF
EXIT
ENDIF
NEXT
ENDIF
ENDIF
@@ -2217,7 +2242,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
cBin_CompC := hbmk[ _HBMK_cCCPREFIX ] + iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "g++", "gcc" ) + hbmk[ _HBMK_cCCPOSTFIX ] + cCCEXT_mingw
cBin_CompC := hbmk[ _HBMK_cCCPREFIX ] + iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "g++", "gcc" ) + hbmk[ _HBMK_cCCPOSTFIX ] + cCCEXT
cOpt_CompC := "-c"
IF hbmk[ _HBMK_lOPTIM ]
cOpt_CompC += " -O3"
@@ -2240,7 +2265,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPathPrefix := "-L"
cLibPathSep := " "
cLibLibExt := ".a"
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT_mingw
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT
#if defined( __PLATFORM__WINDOWS )
nCmd_Esc := _ESC_DBLQUOTE
#endif
@@ -2300,7 +2325,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
l_aLIBSHAREDPOST := { "hbmainstd", "hbmainwin" }
IF hbmk[ _HBMK_cCOMP ] $ "mingw|mingw64|mingwarm"
cBin_Res := hbmk[ _HBMK_cCCPREFIX ] + "windres" + cCCEXT_mingw
cBin_Res := hbmk[ _HBMK_cCCPREFIX ] + "windres" + cCCEXT
cResExt := ".reso"
cOpt_Res := "{FR} {IR} -O coff -o {OS}"
IF ! Empty( hbmk[ _HBMK_cCCPATH ] )
@@ -2417,9 +2442,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPathPrefix := "LIBPATH "
cLibPathSep := " "
IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ]
cBin_CompC := "wpp386.exe"
cBin_CompC := "wpp386" + cCCEXT
ELSE
cBin_CompC := "wcc386.exe"
cBin_CompC := "wcc386" + cCCEXT
ENDIF
cOpt_CompC := ""
IF hbmk[ _HBMK_lOPTIM ]
@@ -2445,9 +2470,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" )
ENDIF
ENDIF
cBin_Link := "wlink.exe"
cBin_Link := "wlink" + cCCEXT
cOpt_Link := "SYS dos4g op stub=wstubq.exe {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
cBin_Lib := "wlib.exe"
cBin_Lib := "wlib" + cCCEXT
cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}"
cLibLibExt := cLibExt
cLibObjPrefix := "-+ "
@@ -2469,9 +2494,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPathPrefix := "LIBPATH "
cLibPathSep := " "
IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ]
cBin_CompC := "wpp386.exe"
cBin_CompC := "wpp386" + cCCEXT
ELSE
cBin_CompC := "wcc386.exe"
cBin_CompC := "wcc386" + cCCEXT
ENDIF
cOpt_CompC := ""
IF hbmk[ _HBMK_lOPTIM ]
@@ -2499,9 +2524,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" )
ENDIF
ENDIF
cBin_Link := "wlink.exe"
cBin_Link := "wlink" + cCCEXT
cOpt_Link := "{FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}"
cBin_Lib := "wlib.exe"
cBin_Lib := "wlib" + cCCEXT
cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}"
cLibLibExt := cLibExt
cLibObjPrefix := "-+ "
@@ -2534,7 +2559,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTL ], "FILE " + FN_ExtSet( l_cHB_LIB_INSTALL + hb_osPathSeparator() + iif( hbmk[ _HBMK_lGUI ], "hbmainwin", "hbmainstd" ), cLibExt ) )
ENDIF
cBin_Res := "wrc.exe"
cBin_Res := "wrc" + cCCEXT
cResExt := ".res"
cOpt_Res := "-r {FR} -zm {IR} -fo={OS}"
cResPrefix := "OP res="
@@ -2547,13 +2572,13 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPathPrefix := "LIBPATH "
cLibPathSep := " "
IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ]
cBin_CompC := "wpp386.exe"
cBin_CompC := "wpp386" + cCCEXT
ELSE
cBin_CompC := "wcc386.exe"
cBin_CompC := "wcc386" + cCCEXT
ENDIF
cOpt_CompC := ""
IF hbmk[ _HBMK_lOPTIM ]
cOpt_CompC += " -5s -fp5"
cOpt_CompC += " -5r -fp5"
cOpt_CompC += " -onaehtr -s -ei -zp4 -zt0"
IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ]
cOpt_CompC += " -oi+"
@@ -2575,9 +2600,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" )
ENDIF
ENDIF
cBin_Link := "wlink.exe"
cOpt_Link := "{FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
cBin_Lib := "wlib.exe"
cBin_Link := "wlink" + cCCEXT
cOpt_Link := "SYS OS2V2 {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
cBin_Lib := "wlib" + cCCEXT
cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}"
cLibLibExt := cLibExt
cLibObjPrefix := "-+ "
@@ -2592,7 +2617,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTL ], "OP MAP" )
ENDIF
cBin_Res := "wrc.exe"
cBin_Res := "wrc" + cCCEXT
cResExt := ".res"
cOpt_Res := "-r {FR} -zm {IR} -fo={OS}"
cResPrefix := "OP res="
@@ -2601,13 +2626,18 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cLibPrefix := "LIB "
cLibExt := ".lib"
cObjPrefix := "FILE "
cObjExt := ".o"
#if defined( __PLATFORM__UNIX )
cObjExt := ".o"
#else
/* NOTE: This extension is used when building Linux targets on non-Linux hosts. [vszakats] */
cObjExt := ".obj"
#endif
cLibPathPrefix := "LIBPATH "
cLibPathSep := " "
IF hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ]
cBin_CompC := "wpp386"
cBin_CompC := "wpp386" + cCCEXT
ELSE
cBin_CompC := "wcc386"
cBin_CompC := "wcc386" + cCCEXT
ENDIF
cOpt_CompC := ""
IF hbmk[ _HBMK_lOPTIM ]
@@ -2633,9 +2663,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aOPTC ], "-fo={OD}" )
ENDIF
ENDIF
cBin_Link := "wlink"
cBin_Link := "wlink" + cCCEXT
cOpt_Link := "SYS LINUX {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
cBin_Lib := "wlib"
cBin_Lib := "wlib" + cCCEXT
cOpt_Lib := "{FA} {OL} {LO}{SCRIPT}"
cLibLibExt := cLibExt
cLibObjPrefix := "-+ "