diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 8dd292d927..87c770164c 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,50 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-24 17:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * config/global.mk + * INSTALL + + Added poccarm and pocc64 autodetection. + + Added iccia64 autodetection. + + Added watcom target platform detection on all host platforms. + + Added djgpp autodetection under win hosts. + % Simplified INSTALL examples accordingly. + Actually it's so simple now that only 'make' should be + issue after setting up the compiler according to compiler + docs. It's very rare that HB_COMPILER or HB_PLATFORM should + be specified now on non-*nix platforms. + * Minor formatting. + - Deleted debug $(info) line. + + * utils/hbmk2/hbmk2.hu_HU.po + * utils/hbmk2/hbmk2.prg + ! Fixed to not initialize HB_DYN_INSTALL location to central lib + dir in case there was a plat/comp specific lib dir found. + I can't remember why this was done this way, but now it doesn't + seem to be necessary and it can just cause problems, as central + lib may contain some overlapping lib name (leftovers from other + 'install' sessions) causing trouble for linkers. It also cleaner + this way. + ! Added '(internal)' text to Harbour command -trace output. + ! Changed harbour.exe path in internal command trace/error output + to use the same base dir as hbmk2 itself. In cross-compile + situations this is more accurate. Since harbour.exe shouldn't + necessarily exist, I've put harbour.exe path in paranthesis + to suggest it's not a real path. + ; NOTE: Actually now hbmk2 autodetection code is lagging behind + GNU Make, so hbmk may need to get a bigger internal revision + sooner or later to catch up. It currently cannot switch + platforms based on detected situation, also the embedded + and normal tool installation should be merged, plus + autodetection added for *nix platforms. + + * include/hbwince.h + * include/hbdef.h + ! Added HB_EXPORT to some WinCE function, because they are needed + to successfully link shared final executable for non-mingw + wce compilers (poccarm and msvcarm). (in mingw we automatically + export all 'extern' functions, so this isn't a problem) + 2009-08-24 17:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-mkdyn.sh * harbour/bin/postinst.sh @@ -25036,6 +25080,7 @@ hbmk: Error: Running linker. 1: polink.exe hbtest.obj rt_array.obj rt_date.obj rt_file.obj rt_hvm.obj rt_hvma.obj rt_math.obj rt_misc.obj rt_mt.obj rt_str.obj rt_stra.obj rt_trans.obj rt_class.obj rt_miscc.obj /libpath:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\lib /subsystem:windows /out:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\bin\hbtest-dll.exe /libpath:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\bin harbour-11-arm.lib hbmainstd.lib hbmainwin.lib hbcplr.lib hbdebug.lib wininet.lib ws2.lib commdlg.lib commctrl.lib uuid.lib ole32.lib --- + [DONE] 2009-04-08 10:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL diff --git a/harbour/INSTALL b/harbour/INSTALL index b62c7dfeaf..7c00243f28 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -579,14 +579,6 @@ EXAMPLES sh -c make --- - --- Open Watcom C++ - SET WATCOM=C:\watcom - SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH% - SET EDPATH=%WATCOM%\EDDAT - SET INCLUDE=%WATCOM%\H;%WATCOM%\H\NT - mingw32-make - --- - --- Intel(R) C++ call "%ProgramFiles%\Intel\Compiler\C++\10.1.014\IA32\Bin\iclvars.bat" mingw32-make @@ -594,7 +586,7 @@ EXAMPLES --- Intel(R) C++ for Windows IA-64 (requires preceding build for native target) call "%ProgramFiles%\Intel\Compiler\C++\10.1.025\Itanium\Bin\iclvars.bat" - mingw32-make HB_COMPILER=iccia64 + mingw32-make --- --- Borland/CodeGear C++ @@ -613,20 +605,28 @@ EXAMPLES set PATH=%ProgramFiles%\PellesC\Bin;%PATH% set INCLUDE=%ProgramFiles%\PellesC\Include;%ProgramFiles%\PellesC\Include\Win;%INCLUDE% set LIB=%ProgramFiles%\PellesC\Lib;%ProgramFiles%\PellesC\Lib\Win64;%LIB% - mingw32-make HB_COMPILER=pocc64 + mingw32-make --- --- Pelles C for Windows CE ARM (requires preceding build for native target) set PATH=%ProgramFiles%\PellesC\Bin;%PATH% set INCLUDE=%ProgramFiles%\PellesC\Include\WinCE;%ProgramFiles%\PellesC\Include;%INCLUDE% set LIB=%ProgramFiles%\PellesC\Lib;%ProgramFiles%\PellesC\Lib\WinCE;%LIB% - mingw32-make HB_COMPILER=poccarm + mingw32-make --- --- Delorie GNU C for MS-DOS (on Intel 32-bit Windows hosts only) set DJGPP=C:\djgpp\djgpp.env set PATH=C:\djgpp\bin;%PATH% - mingw32-make HB_PLATFORM=dos + mingw32-make + --- + + --- Open Watcom C++ + SET WATCOM=C:\watcom + SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH% + SET EDPATH=%WATCOM%\EDDAT + SET INCLUDE=%WATCOM%\H;%WATCOM%\H\NT + mingw32-make --- --- Open Watcom C++ for MS-DOS @@ -634,7 +634,7 @@ EXAMPLES SET PATH=%WATCOM%\BINNT;%PATH% SET EDPATH=%WATCOM%\EDDAT SET INCLUDE=%WATCOM%\H - mingw32-make HB_PLATFORM=dos + mingw32-make --- --- Open Watcom C++ for OS/2 (requires preceding build for Windows target) @@ -643,7 +643,7 @@ EXAMPLES SET BEGINLIBPATH=%WATCOM%\BINP\DLL SET EDPATH=%WATCOM%\EDDAT SET INCLUDE=%WATCOM%\H;%WATCOM%\H\OS2 - mingw32-make HB_PLATFORM=os2 + mingw32-make --- --- Open Watcom C++ for Linux (requires preceding build for Windows target) @@ -651,7 +651,7 @@ EXAMPLES SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH% SET EDPATH=%WATCOM%\EDDAT SET INCLUDE=%WATCOM%\LH - mingw32-make HB_PLATFORM=linux + mingw32-make --- --8<-- @@ -767,7 +767,7 @@ EXAMPLES export HB_XBUILD=yes # ; export HB_INSTALL_PREFIX="$(pwd)/hb-os2/watcom" - make HB_PLATFORM=os2 "$@" + make "$@" --- for *nix hosts in general diff --git a/harbour/config/global.mk b/harbour/config/global.mk index 18e0f0fecb..5fb654e217 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -62,75 +62,89 @@ find_in_path = $(strip $(foreach dir, $(subst $(PTHSEP), ,$(subst $(subst x, find_in_path_par = $(strip $(foreach dir, $(subst $(PTHSEP), ,$(subst $(subst x, ,x),$(substpat),$(2))), $(wildcard $(subst $(substpat),\ ,$(subst \,/,$(dir)))/$(1)$(HB_HOST_BIN_EXT)))) find_in_path_raw = $(strip $(foreach dir, $(subst $(PTHSEP), ,$(subst $(subst x, ,x),$(substpat),$(2))), $(wildcard $(subst $(substpat),\ ,$(subst \,/,$(dir)))/$(1)))) -define check_host - -ifneq ($(findstring MINGW,$(1)),) - HB_HOST_PLAT := win -else - ifneq ($(findstring MSys,$(1)),) - HB_HOST_PLAT := win +define detect_watcom_platform + ifneq ($(call find_in_path_raw,os2.h,$(INCLUDE)),) + HB_PLATFORM := os2 else - ifneq ($(findstring Windows,$(1)),) - HB_HOST_PLAT := win + ifneq ($(call find_in_path_raw,dirent.h,$(INCLUDE)),) + HB_PLATFORM := linux else - ifneq ($(findstring CYGWIN,$(1)),) - HB_HOST_PLAT := win - else - ifneq ($(findstring Darwin,$(1)),) - HB_HOST_PLAT := darwin - else - ifneq ($(findstring darwin,$(1)),) - HB_HOST_PLAT := darwin - else - ifneq ($(findstring Linux,$(1)),) - HB_HOST_PLAT := linux - else - ifneq ($(findstring linux,$(1)),) - HB_HOST_PLAT := linux - else - ifneq ($(findstring HP-UX,$(1)),) - HB_HOST_PLAT := hpux - else - ifneq ($(findstring hp-ux,$(1)),) - HB_HOST_PLAT := hpux - else - ifneq ($(findstring SunOS,$(1)),) - HB_HOST_PLAT := sunos - else - ifneq ($(findstring sunos,$(1)),) - HB_HOST_PLAT := sunos - else - ifneq ($(findstring BSD,$(1)),) - HB_HOST_PLAT := bsd - else - ifneq ($(findstring bsd,$(1)),) - HB_HOST_PLAT := bsd - else - ifneq ($(findstring OS/2,$(1)),) - HB_HOST_PLAT := os2 - else - ifneq ($(findstring MS-DOS,$(1)),) - HB_HOST_PLAT := dos - else - ifneq ($(findstring msdos,$(1)),) - HB_HOST_PLAT := dos - endif - endif - endif - endif - endif - endif - endif - endif - endif - endif - endif - endif - endif + ifeq ($(call find_in_path_raw,windows.h,$(INCLUDE)),) + HB_PLATFORM := dos endif endif endif -endif +endef + +define check_host + + ifneq ($(findstring MINGW,$(1)),) + HB_HOST_PLAT := win + else + ifneq ($(findstring MSys,$(1)),) + HB_HOST_PLAT := win + else + ifneq ($(findstring Windows,$(1)),) + HB_HOST_PLAT := win + else + ifneq ($(findstring CYGWIN,$(1)),) + HB_HOST_PLAT := win + else + ifneq ($(findstring Darwin,$(1)),) + HB_HOST_PLAT := darwin + else + ifneq ($(findstring darwin,$(1)),) + HB_HOST_PLAT := darwin + else + ifneq ($(findstring Linux,$(1)),) + HB_HOST_PLAT := linux + else + ifneq ($(findstring linux,$(1)),) + HB_HOST_PLAT := linux + else + ifneq ($(findstring HP-UX,$(1)),) + HB_HOST_PLAT := hpux + else + ifneq ($(findstring hp-ux,$(1)),) + HB_HOST_PLAT := hpux + else + ifneq ($(findstring SunOS,$(1)),) + HB_HOST_PLAT := sunos + else + ifneq ($(findstring sunos,$(1)),) + HB_HOST_PLAT := sunos + else + ifneq ($(findstring BSD,$(1)),) + HB_HOST_PLAT := bsd + else + ifneq ($(findstring bsd,$(1)),) + HB_HOST_PLAT := bsd + else + ifneq ($(findstring OS/2,$(1)),) + HB_HOST_PLAT := os2 + else + ifneq ($(findstring MS-DOS,$(1)),) + HB_HOST_PLAT := dos + else + ifneq ($(findstring msdos,$(1)),) + HB_HOST_PLAT := dos + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif endef @@ -565,7 +579,6 @@ ifeq ($(HB_COMPILER),) ifeq ($(HB_CCPATH)$(HB_CCPREFIX),) MINGW_BASE_LIST := /usr /usr/local /usr/local/mingw32 /opt/xmingw MINGW_PREFIX := $(firstword $(foreach d, $(MINGW_BASE_LIST), $(wildcard $(d)/bin/i?86-mingw*-gcc$(HB_HOST_BIN_EXT)))) - $(info "->[$(MINGW_PREFIX)]<-[$(HB_HOST_BIN_EXT)][$(substpat)]") ifneq ($(MINGW_PREFIX),) HB_CCPATH := $(dir $(MINGW_PREFIX)) HB_CCPREFIX := $(notdir $(MINGW_PREFIX)) @@ -680,53 +693,77 @@ ifeq ($(HB_COMPILER),) ifneq ($(HB_COMP_PATH),) HB_COMPILER := cygwin else - HB_COMP_PATH := $(call find_in_path,gcc) + HB_COMP_PATH := $(call find_in_path,djasm) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := mingw + HB_PLATFORM := dos + HB_COMPILER := djgpp + ifneq ($(HB_HOST_CPU),x86) + $(error ! Error: DJGPP cross-builds are only possible on 32-bit Windows hosts) + endif else - HB_COMP_PATH := $(call find_in_path,wpp386) + HB_COMP_PATH := $(call find_in_path,gcc) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := watcom + HB_COMPILER := mingw else - HB_COMP_PATH := $(call find_in_path,clarm) + HB_COMP_PATH := $(call find_in_path,wpp386) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvcarm - HB_PLATFORM := wce - export HB_VISUALC_VER_PRE80 := yes + HB_COMPILER := watcom + $(eval $(call detect_watcom_platform)) else - HB_COMP_PATH := $(call find_in_path,armasm) + HB_COMP_PATH := $(call find_in_path,clarm) ifneq ($(HB_COMP_PATH),) HB_COMPILER := msvcarm HB_PLATFORM := wce + export HB_VISUALC_VER_PRE80 := yes else - HB_COMP_PATH := $(call find_in_path,ml64) + HB_COMP_PATH := $(call find_in_path,armasm) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvc64 + HB_COMPILER := msvcarm + HB_PLATFORM := wce else - HB_COMP_PATH := $(call find_in_path,icl) + HB_COMP_PATH := $(call find_in_path,idis) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := icc + HB_COMPILER := iccia64 else - HB_COMP_PATH := $(call find_in_path,cl) + HB_COMP_PATH := $(call find_in_path,icl) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvc + HB_COMPILER := icc else - HB_COMP_PATH := $(call find_in_path,bcc32) + HB_COMP_PATH := $(call find_in_path,ml64) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := bcc + HB_COMPILER := msvc64 else - HB_COMP_PATH := $(call find_in_path,pocc) + HB_COMP_PATH := $(call find_in_path,cl) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := pocc + HB_COMPILER := msvc else - HB_COMP_PATH := $(call find_in_path,xcc) + HB_COMP_PATH := $(call find_in_path,bcc32) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := xcc + HB_COMPILER := bcc else - HB_COMP_PATH := $(call find_in_path,x86_64-w64-mingw32-gcc) + HB_COMP_PATH := $(call find_in_path,pocc) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := mingw64 - HB_CCPREFIX := x86_64-w64-mingw32- + ifneq ($(call find_in_path_raw,coredll.lib,$(LIB)),) + HB_PLATFORM := wce + HB_COMPILER := poccarm + else + ifneq ($(call find_in_path_raw,dbgeng.lib,$(LIB)),) + HB_COMPILER := pocc64 + else + HB_COMPILER := pocc + endif + endif + else + HB_COMP_PATH := $(call find_in_path,xcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := xcc + else + HB_COMP_PATH := $(call find_in_path,x86_64-w64-mingw32-gcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := mingw64 + HB_CCPREFIX := x86_64-w64-mingw32- + endif + endif endif endif endif @@ -747,6 +784,7 @@ ifeq ($(HB_COMPILER),) HB_COMP_PATH := $(call find_in_path,wpp386) ifneq ($(HB_COMP_PATH),) HB_COMPILER := watcom + $(eval $(call detect_watcom_platform)) else HB_COMP_PATH := $(call find_in_path,gcc) ifneq ($(HB_COMP_PATH),) @@ -779,6 +817,7 @@ ifeq ($(HB_COMPILER),) HB_COMP_PATH := $(call find_in_path,wpp386) ifneq ($(HB_COMP_PATH),) HB_COMPILER := watcom + $(eval $(call detect_watcom_platform)) endif endif else @@ -790,6 +829,7 @@ ifeq ($(HB_COMPILER),) HB_COMP_PATH := $(call find_in_path,wpp386) ifneq ($(HB_COMP_PATH),) HB_COMPILER := watcom + $(eval $(call detect_watcom_platform)) endif endif else @@ -802,7 +842,7 @@ ifeq ($(HB_COMPILER),) endif endif ifneq ($(HB_COMPILER),) - HB_COMP_PATH := $(subst $(substpat), ,$(dir $(subst $(subst x, ,x),$(substpat),$(firstword $(HB_COMP_PATH))))) + HB_COMP_PATH := $(subst $(substpat), ,$(dir $(firstword $(subst $(subst x, ,x),$(substpat),$(HB_COMP_PATH))))) HB_COMP_AUTO := (autodetected$(if $(HB_COMP_PATH),: $(HB_COMP_PATH),)) endif export HB_CCPATH diff --git a/harbour/include/hbdefs.h b/harbour/include/hbdefs.h index bb7d6d3e7d..14a1dae451 100644 --- a/harbour/include/hbdefs.h +++ b/harbour/include/hbdefs.h @@ -185,10 +185,6 @@ #endif -#if defined( HB_OS_WIN ) - #include "hbwince.h" -#endif - #if ! defined( HB_DONT_DEFINE_BASIC_TYPES ) #if ! defined( HB_DONT_DEFINE_BOOL ) @@ -1594,6 +1590,10 @@ typedef PHB_FUNC HB_FUNC_PTR; #endif +#if defined( HB_OS_WIN ) + #include "hbwince.h" +#endif + /* Function declaration macros */ /* NOTE: The prefix is "HB_FUN_" currently, this is needed to diff --git a/harbour/include/hbwince.h b/harbour/include/hbwince.h index 1a7eb2a26b..744f3d3b8e 100644 --- a/harbour/include/hbwince.h +++ b/harbour/include/hbwince.h @@ -181,13 +181,13 @@ extern char *strerror( int errnum ); #endif /* HB_OS_WIN_CE */ -extern wchar_t * hb_mbtowc( const char *srcA ); -extern char * hb_wctomb( const wchar_t *srcW ); -extern wchar_t * hb_mbntowc( const char *srcA, unsigned long ulLen ); -extern char * hb_wcntomb( const wchar_t *srcW, unsigned long ulLen ); -extern void hb_mbtowccpy( wchar_t *dstW, const char *srcA, unsigned long ulLen ); -extern void hb_mbtowcset( wchar_t *dstW, const char *srcA, unsigned long ulLen ); -extern void hb_wctombget( char *dstA, const wchar_t *srcW, unsigned long ulLen ); +extern HB_EXPORT wchar_t * hb_mbtowc( const char *srcA ); +extern HB_EXPORT char * hb_wctomb( const wchar_t *srcW ); +extern HB_EXPORT wchar_t * hb_mbntowc( const char *srcA, unsigned long ulLen ); +extern HB_EXPORT char * hb_wcntomb( const wchar_t *srcW, unsigned long ulLen ); +extern HB_EXPORT void hb_mbtowccpy( wchar_t *dstW, const char *srcA, unsigned long ulLen ); +extern HB_EXPORT void hb_mbtowcset( wchar_t *dstW, const char *srcA, unsigned long ulLen ); +extern HB_EXPORT void hb_wctombget( char *dstA, const wchar_t *srcW, unsigned long ulLen ); #if defined( UNICODE ) diff --git a/harbour/utils/hbmk2/hbmk2.hu_HU.po b/harbour/utils/hbmk2/hbmk2.hu_HU.po index 3f8c101b24..ae2f2b8fe8 100644 --- a/harbour/utils/hbmk2/hbmk2.hu_HU.po +++ b/harbour/utils/hbmk2/hbmk2.hu_HU.po @@ -132,6 +132,11 @@ msgstr "Hiba: Ismeretlen platform: %1$s" msgid "Error: Running Harbour compiler. %1$s" msgstr "Hiba: Harbour fordító futtatásakor. %1$s" +#: hbmk2.prg:2775 hbmk2.prg:2793 hbmk2.prg:2824 hbmk2.prg:3146 hbmk2.prg:3167 hbmk2.prg:3199 +#, c-format +msgid "Error: Running Harbour compiler (internal). %1$s" +msgstr "Hiba: Harbour fordító futtatásakor (belső). %1$s" + #: hbmk2.prg:1595 hbmk2.prg:1881 #, c-format msgid "Error: No source files were specified." @@ -205,7 +210,7 @@ msgstr "Kimenet nem ig #: hbmk2.prg:2761 hbmk2.prg:3132 #, c-format msgid "Harbour compiler command (internal) job #%1$s:" -msgstr "Harbour fordító parancs (belső) %1$s. szál:" +msgstr "Harbour (beágyazott) fordító parancs %1$s. szál:" #: hbmk2.prg:959 hbmk2.prg:1188 #, c-format diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index f725ebf2ed..3596ac9ed3 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -1178,7 +1178,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) hb_osPathSeparator() + hbmk[ _HBMK_cPLAT ] +; hb_osPathSeparator() + hbmk[ _HBMK_cCOMP ] +; iif( Empty( hbmk[ _HBMK_cBUILD ] ), "", PathSepToTarget( hbmk, hbmk[ _HBMK_cBUILD ] ) ) ) - l_cHB_DYN_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib" ) l_cHB_LIB_INSTALL := tmp ELSE l_cHB_LIB_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib" ) @@ -3036,7 +3035,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) hbmk_OutStd( hbmk, I_( "Harbour compiler command (internal):" ) ) ENDIF ENDIF - OutStd( FN_Escape( DirAddPathSep( PathSepToSelf( l_cHB_BIN_INSTALL ) ) + cBin_CompPRG + cBinExt, nCmd_Esc ) +; + OutStd( "(" + FN_Escape( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cBinExt + ")", nCmd_Esc ) +; " " + ArrayToList( aCommand ) + hb_osNewLine() ) ENDIF @@ -3045,9 +3044,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) AAdd( aThreads, { hb_threadStart( @hb_compile(), "harbour", aCommand ), aCommand } ) ELSE IF ( tmp := hb_compile( "harbour", aCommand ) ) != 0 - hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running Harbour compiler. %1$s" ), hb_ntos( tmp ) ) ) + hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running Harbour compiler (internal). %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] - OutErr( FN_Escape( DirAddPathSep( PathSepToSelf( l_cHB_BIN_INSTALL ) ) + cBin_CompPRG + cBinExt, nCmd_Esc ) +; + OutErr( "(" + FN_Escape( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cBinExt + ")", nCmd_Esc ) +; " " + ArrayToList( aCommand ) + hb_osNewLine() ) ENDIF IF ! hbmk[ _HBMK_lIGNOREERROR ]