diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7148bb3194..ef257c4578 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -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. diff --git a/harbour/INSTALL b/harbour/INSTALL index 8c845236c7..110815523e 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -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 ============================== diff --git a/harbour/config/linux/dir.cf b/harbour/config/linux/dir.cf index 63132daa76..dcc7be27f4 100644 --- a/harbour/config/linux/dir.cf +++ b/harbour/config/linux/dir.cf @@ -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 diff --git a/harbour/config/linux/global.cf b/harbour/config/linux/global.cf index c7ca9978cf..352e90c277 100644 --- a/harbour/config/linux/global.cf +++ b/harbour/config/linux/global.cf @@ -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 diff --git a/harbour/config/linux/install.cf b/harbour/config/linux/install.cf index f18e434d01..a7233f3c77 100644 --- a/harbour/config/linux/install.cf +++ b/harbour/config/linux/install.cf @@ -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 diff --git a/harbour/config/os2/global.cf b/harbour/config/os2/global.cf index 6d089ce5dd..92c3726c69 100644 --- a/harbour/config/os2/global.cf +++ b/harbour/config/os2/global.cf @@ -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 diff --git a/harbour/config/os2/install.cf b/harbour/config/os2/install.cf index d384986655..a7233f3c77 100644 --- a/harbour/config/os2/install.cf +++ b/harbour/config/os2/install.cf @@ -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 \ diff --git a/harbour/config/wce/global.cf b/harbour/config/wce/global.cf index da0142ac3a..65631bc254 100644 --- a/harbour/config/wce/global.cf +++ b/harbour/config/wce/global.cf @@ -65,7 +65,6 @@ else # bash ARCH_DIR = $(HB_ARCH) MK = $(MAKE) - RM = rm -f RD = rm -f -r CP = cp -f diff --git a/harbour/config/wce/install.cf b/harbour/config/wce/install.cf index 1be3419db4..7eecddb3c0 100644 --- a/harbour/config/wce/install.cf +++ b/harbour/config/wce/install.cf @@ -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 \ diff --git a/harbour/config/win/global.cf b/harbour/config/win/global.cf index 7b5b4afd92..b8ec89db27 100644 --- a/harbour/config/win/global.cf +++ b/harbour/config/win/global.cf @@ -61,7 +61,6 @@ else # bash ARCH_DIR = $(HB_ARCH) MK = $(MAKE) - RM = rm -f RD = rm -f -r CP = cp -f diff --git a/harbour/config/win/install.cf b/harbour/config/win/install.cf index 1be3419db4..7eecddb3c0 100644 --- a/harbour/config/win/install.cf +++ b/harbour/config/win/install.cf @@ -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 \ diff --git a/harbour/contrib/xhb/txml.prg b/harbour/contrib/xhb/txml.prg index 6684acea1b..f65e45dcbd 100644 --- a/harbour/contrib/xhb/txml.prg +++ b/harbour/contrib/xhb/txml.prg @@ -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 diff --git a/harbour/make_gnu.bat b/harbour/make_gnu.bat index 5822c68c46..b9000bd77d 100644 --- a/harbour/make_gnu.bat +++ b/harbour/make_gnu.bat @@ -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 diff --git a/harbour/source/rtl/Makefile b/harbour/source/rtl/Makefile index d06e80501d..457ed51e55 100644 --- a/harbour/source/rtl/Makefile +++ b/harbour/source/rtl/Makefile @@ -255,8 +255,19 @@ PRG_SOURCES=\ LIBNAME=hbrtl -# The list of all valid GT drivers is defined in config//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 diff --git a/harbour/source/rtl/gtcrs/Makefile b/harbour/source/rtl/gtcrs/Makefile index 11051bbbdb..b32e478e7f 100644 --- a/harbour/source/rtl/gtcrs/Makefile +++ b/harbour/source/rtl/gtcrs/Makefile @@ -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 diff --git a/harbour/source/rtl/gtsln/Makefile b/harbour/source/rtl/gtsln/Makefile index c6a0872682..4e1753d8ae 100644 --- a/harbour/source/rtl/gtsln/Makefile +++ b/harbour/source/rtl/gtsln/Makefile @@ -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 diff --git a/harbour/source/rtl/gttrm/Makefile b/harbour/source/rtl/gttrm/Makefile index 4edb8979a9..06093ed168 100644 --- a/harbour/source/rtl/gttrm/Makefile +++ b/harbour/source/rtl/gttrm/Makefile @@ -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 diff --git a/harbour/source/rtl/gtwin/gtwin.c b/harbour/source/rtl/gtwin/gtwin.c index 9525572271..6659fd66af 100644 --- a/harbour/source/rtl/gtwin/gtwin.c +++ b/harbour/source/rtl/gtwin/gtwin.c @@ -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; diff --git a/harbour/source/rtl/gtxwc/Makefile b/harbour/source/rtl/gtxwc/Makefile index 4be406ed70..2f1a03a5cf 100644 --- a/harbour/source/rtl/gtxwc/Makefile +++ b/harbour/source/rtl/gtxwc/Makefile @@ -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 diff --git a/harbour/source/rtl/hbgtcore.c b/harbour/source/rtl/hbgtcore.c index 65284b1bfd..4b269e7789 100644 --- a/harbour/source/rtl/hbgtcore.c +++ b/harbour/source/rtl/hbgtcore.c @@ -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; diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 62c04d7ee6..261c2e71df 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -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 := "-+ "