From 6b019f5134231f07ea0fc4aba9a2137b562e3aac Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Aug 2009 13:14:33 +0000 Subject: [PATCH] 2009-08-25 15:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL + Added DJGPP cross-builds to support matrix. + Added DJGPP bash.exe to the shell mix. + Added OS/2 bash.exe to the shell mix. ; NOTE: djgpp build fails here when using bash too (I've used a Windows machine to test), see below. * ChangeLog * Updating pending item status. * contrib/hbbtree/hb_btree.c ! Added TOFIX about bad bug. (hitting win64, maybe more) Reported on the list a while ago. * utils/hbmk2/hbmk2.prg - Deleted HB_CCPATH support for *nix based gcc/icc compilers. To be in sync with GNU Make files. + Added HB_CCPATH support for os2 and dos. + Added HB_CCPREFIX and HB_CCPOSTFIX support for dos/djgpp to support cross-builds. + Using host dependent executable extension for compiler tools in dos/djgpp to support cross-builds. * config/wce/mingwarm.mk * config/win/mingw.mk + Added HB_CCPOSTFIX support. Now in sync with rest of gcc family compilers in GNU Make and with hbmk2. * config/win/cygwin.mk + Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support. To be in sync with rest of gcc family compiler in GNU Make and with hbmk2. * config/dos/djgpp.mk + Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support for dos/djgpp. ! Fixed to only give error when using non-DOS build of GNU Make on a Windows host. ; NOTE: Tried the bld process with bash.sh, and it starts when using nativ DOS make.exe, but it fails also with 'Bad command or file name' and 'No command name seen.' when building hbcommon lib. Same effect when using msys. So I conclude our djgpp make files are broken for POSIX shells, I hope someone else can also do tests. * config/os2/gcc.mk + Added HB_CCPATH support. To be in sync with rest of gcc family compiler in GNU Make and with hbmk2. * config/win/bcc.mk ! Readded dbl quotes around tlib filename. This breaks tlib on msys shells. The real problem is caused by /P64 option. Fix unknown, besides avoiding msys shell+bcc target combination. * contrib/hbfbird/Makefile * Indented/rearranged. --- harbour/ChangeLog | 81 +++++++++++++++++++++++++++--- harbour/INSTALL | 27 ++++++---- harbour/config/dos/djgpp.mk | 21 ++++---- harbour/config/os2/gcc.mk | 6 +-- harbour/config/wce/mingwarm.mk | 4 +- harbour/config/win/bcc.mk | 3 +- harbour/config/win/cygwin.mk | 6 +-- harbour/config/win/mingw.mk | 4 +- harbour/contrib/hbbtree/hb_btree.c | 3 +- harbour/contrib/hbfbird/Makefile | 37 +++++++------- harbour/utils/hbmk2/hbmk2.prg | 22 +++++--- 11 files changed, 148 insertions(+), 66 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 35a8713b38..9e163d1b47 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,67 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-25 15:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + + Added DJGPP cross-builds to support matrix. + + Added DJGPP bash.exe to the shell mix. + + Added OS/2 bash.exe to the shell mix. + ; NOTE: djgpp build fails here when using bash too + (I've used a Windows machine to test), see below. + + * ChangeLog + * Updating pending item status. + + * contrib/hbbtree/hb_btree.c + ! Added TOFIX about bad bug. (hitting win64, maybe more) + Reported on the list a while ago. + + * utils/hbmk2/hbmk2.prg + - Deleted HB_CCPATH support for *nix based gcc/icc compilers. + To be in sync with GNU Make files. + + Added HB_CCPATH support for os2 and dos. + + Added HB_CCPREFIX and HB_CCPOSTFIX support for dos/djgpp to + support cross-builds. + + Using host dependent executable extension for compiler + tools in dos/djgpp to support cross-builds. + + * config/wce/mingwarm.mk + * config/win/mingw.mk + + Added HB_CCPOSTFIX support. Now in sync with rest of gcc + family compilers in GNU Make and with hbmk2. + + * config/win/cygwin.mk + + Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support. + To be in sync with rest of gcc family compiler in GNU Make + and with hbmk2. + + * config/dos/djgpp.mk + + Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support for + dos/djgpp. + ! Fixed to only give error when using non-DOS build of + GNU Make on a Windows host. + ; NOTE: Tried the bld process with bash.sh, and it starts + when using nativ DOS make.exe, but it fails also + with 'Bad command or file name' and 'No command name seen.' + when building hbcommon lib. Same effect when using + msys. So I conclude our djgpp make files are broken + for POSIX shells, I hope someone else can also do + tests. + + * config/os2/gcc.mk + + Added HB_CCPATH support. + To be in sync with rest of gcc family compiler in GNU Make + and with hbmk2. + + * config/win/bcc.mk + ! Readded dbl quotes around tlib filename. This breaks tlib + on msys shells. The real problem is caused by /P64 option. + Fix unknown, besides avoiding msys shell+bcc target + combination. + + * contrib/hbfbird/Makefile + * Indented/rearranged. + 2009-08-25 12:49 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/hvm.c * harbour/source/common/expropt2.c @@ -1414,7 +1475,7 @@ ; 'if exist' and 'if not exist' are now only used from globsh.mk nt and os2 shell sections. ; TOFIX: $(COMSPEC) still in OS/2 section. Test results would be - welcome without it. + welcome without it. [DONE] 2009-08-21 13:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/win/bcc.mk @@ -1938,6 +1999,7 @@ + Added cross-build matrix. Tweaked cross-build information. + Added MSVC 2005 for WinCE/ARM example. ; TODO: Create separate example section for native and cross-builds. + [DONE - differently] 2009-08-20 08:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbwin/legacy.prg @@ -2172,7 +2234,7 @@ + Added link to DJGPP echo tool. ; TOFIX: This isn't the echo tool which is currently included in SVN, but points to the place where other dj-*.exes - came from. + came from. [DONE] * ChangeLog ! Fixed date in my today's entries. @@ -2246,6 +2308,7 @@ How and which *nix platforms would be affected or limited in such this case? BTW, 3.81 was released in 2006, 3.80 in 2002. + [DONE (to 3.81)] * ChangeLog * Updated cross-build compatibility chart. @@ -2382,7 +2445,7 @@ ! Fixed previous commit after actual testing. Now wce cross build on linux works by simply setting HB_CCPATH and issuing 'make'. - ; TODO: Extend above logic to other *nix platforms. + ; TODO: Extend above logic to other *nix platforms. [DONE] 2009-08-17 21:30 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk @@ -3245,7 +3308,7 @@ - Setting HB_INSTALL_PREFIX to system location. (I don't like this, but it seems to be standard behaviour on Linux, so we may want to change GNU Make - default logic according to that) + default logic according to that) [DONE] ; TODO: Move mpkg_*.sh files with related support files to /package. Best would be to integrate them to postinst.sh. @@ -3254,7 +3317,7 @@ too long cmdline when building external/libhpdf. ; TOFIX: see above. (if possible. If it's too complicated we should simply drop this scenario, after all DJGPP GNU - Make also works well. + Make also works well. [DONE] * contrib/gtalleg/Makefile * contrib/hbmysql/Makefile @@ -3717,7 +3780,7 @@ ; After these changes, there is basically no need for make starter scripts. Maybe I'll even remove included make tools to make things cleaner/leaner. - ; TODO: Revise starter .sh scripts. + ; TODO: Revise starter .sh scripts. [DONE] ; TODO: mpkg_gnu.bat rework to run from postinst. [DONE] ; TODO: Do some cleanup, remove redundancy in settings, etcetc. [DONE] ; TOFIX: Fix watcom .dll generation. [DONE - the rules are only @@ -8330,7 +8393,7 @@ * make_gnu.sh * config/global.cf + Readded HB_GPM_MOUSE detection to starter script. - ; TOFIX: This logic should be moved to GNU Make global.cf. + ; TOFIX: This logic should be moved to GNU Make global.cf. [DONE] + Readded HB_COMMERCE logic but now to global.cf, to deal with Harbour-wide settings, currently this is only HB_GPM_MOUSE. lib-specific HB_COMMERCE issues should be @@ -8513,10 +8576,12 @@ others. I hope it's harmless. ; TOFIX: install dir creation doesn't work for dos shells. Anyone knows a trick to create a multilevel dir in plain DOS? (aka mkdir -p) + [DONE] ; TOFIX: dos/watcom does this: (should we force native harbour compiler?) ../../../../../bin/dos/watcom/harbour.exe ../../../achoice.prg -n1 -gc3 -undef:__PLATFORM__WINDOWS -D__PLATFORM__DOS run-time error R6009 - not enough space for environment + [DONE - reduced environment locally] 2009-07-16 15:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/ppcore.c @@ -8860,7 +8925,7 @@ These are commonly needed by apps. * Using hbextcdp.ch in hbmk2. ; TODO: hbextern app needs to be updated to filter out - CODEPAGE symbols. + CODEPAGE symbols. [DONE] 2009-07-15 19:14 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/win/mingw.cf diff --git a/harbour/INSTALL b/harbour/INSTALL index b66da8df82..9abba58800 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -58,8 +58,8 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE in the name. You can leave it empty, in this case the results will be created under the current directory tree. - on Windows hosts with MSYS and Cygwin shells - -------------------------------------------- + on Windows hosts with POSIX shells (MSYS/Cygwin) + ---------------------------------- You can also use these shells to build Harbour on Windows. Generally it's recommended to use native shell though. @@ -129,7 +129,7 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE on Darwin/BSD/HP-UX/Solaris/*nix hosts -------------------------------------- - (possible cross-build targets: Windows, Windows CE) + (possible cross-build targets: Windows, Windows CE, MS-DOS) [ $ export HB_PLATFORM=<...> ] $ gmake install @@ -924,37 +924,44 @@ BUILD HOST PLATFORM/SHELL - TARGET PLATFORM/COMPILER COMPATIBILITY MATRIX x linux -> wce/mingw x86 x linux -> win/mingw x86 x linux -> win/watcom x86 - x linux -> dos/watcom x86 x linux -> os2/watcom x86 + x linux -> dos/watcom x86 + x linux -> dos/djgpp x86 bsd -> bsd/gcc (CPU cross-builds possible) x bsd -> wce/mingwarm arm x bsd -> wce/mingw x86 x bsd -> win/mingw x86 + x bsd -> dos/djgpp x86 darwin -> darwin/gcc (CPU cross-builds possible: x86, x86-64, ppc, ppc64, unibin) darwin -> darwin/icc (CPU cross-builds possible: x86, x86-64) x darwin -> wce/mingwarm arm x darwin -> wce/mingw x86 x darwin -> win/mingw x86 + x darwin -> dos/djgpp x86 hpux -> hpux/gcc (CPU cross-builds possible) x hpux -> wce/mingwarm arm x hpux -> wce/mingw x86 x hpux -> win/mingw x86 + x hpux -> dos/djgpp x86 sunos -> sunos/gcc (CPU cross-builds possible) sunos -> sunos/sunpro (CPU cross-builds possible: x86, x86-64, sparc32, sparc64) x sunos -> wce/mingwarm arm x sunos -> wce/mingw x86 x sunos -> win/mingw x86 + x sunos -> dos/djgpp x86 Leading 'x' marks cross-platform scenarios. Supported shells per host platforms: - win / cmd.exe - win / sh compatible (MSYS or Cygwin sh.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - win / command.com (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - dos / command.com (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - os/2 / OS/2 shell (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) - *nix / sh compatible (* not supported: HB_BUILD_PKG - implemented as standalone scripts) + win / NT shell (cmd.exe) + win / POSIX shell (MSYS or Cygwin sh.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + win / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + dos / MS-DOS shell (command.com) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + dos / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + os/2 / OS/2 shell (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + os/2 / POSIX shell (bash.exe) (* not supported: HB_BUILD_PKG, HB_BUILD_IMPLIB) + *nix / POSIX shell (* not supported: HB_BUILD_PKG - implemented as standalone scripts) FOR MORE INFORMATION diff --git a/harbour/config/dos/djgpp.mk b/harbour/config/dos/djgpp.mk index d6fec7db7c..c42e4e8b51 100644 --- a/harbour/config/dos/djgpp.mk +++ b/harbour/config/dos/djgpp.mk @@ -2,14 +2,17 @@ # $Id$ # -# NOTE: We do need DJGPP build of GNU Make. The reason is -# that this uses special trick to pass command lines -# to other DJGPP tools (like gcc) to overcome 126 -# chars MS-DOS command line length limitation. -# IOW: mingw32-make.exe won't work with DJGPP. +# NOTE: We do need DJGPP build of GNU Make on Windows +# systems. The reason is that this uses special +# trick to pass command lines to other DJGPP tools +# (like gcc) to overcome 126 chars MS-DOS command +# line length limitation. IOW: mingw32-make.exe +# won't work with DJGPP on Windows hosts. # [vszakats] -ifneq ($(HB_MAKE_PLAT),dos) - $(error ! Error: You must use DJGPP provided GNU Make) +ifeq ($(HB_HOST_PLAT),win) + ifneq ($(HB_MAKE_PLAT),dos) + $(error ! Error: You must use DJGPP provided GNU Make on Windows hosts) + endif endif ifeq ($(HB_BUILD_MODE),cpp) @@ -22,7 +25,7 @@ OBJ_EXT := .o LIB_PREF := lib LIB_EXT := .a -CC := $(HB_CMP) +CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) CC_IN := -c CC_OUT := -o @@ -42,7 +45,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -g endif -LD := $(HB_CMP) +LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) LD_OUT := -o LIBPATHS := -L$(LIB_DIR) diff --git a/harbour/config/os2/gcc.mk b/harbour/config/os2/gcc.mk index 04393bd63b..86318bb3f9 100644 --- a/harbour/config/os2/gcc.mk +++ b/harbour/config/os2/gcc.mk @@ -12,7 +12,7 @@ OBJ_EXT := .o LIB_PREF := LIB_EXT := .a -CC := $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) +CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) CC_IN := -c CC_OUT := -o @@ -32,7 +32,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -g endif -LD := $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) +LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) LD_OUT := -o$(subst x,x, ) ifeq ($(C_MAIN),) @@ -89,7 +89,7 @@ define create_library endef # Under OS/2 || isn't a command separator (inside a shell, that is); correct separator is & -AR := $(HB_CCPREFIX)ar +AR := $(HB_CCPATH)$(HB_CCPREFIX)ar ARFLAGS := AR_RULE = $(create_library) & $(RM) __lib__.tmp diff --git a/harbour/config/wce/mingwarm.mk b/harbour/config/wce/mingwarm.mk index 98e69830b3..a765e617dc 100644 --- a/harbour/config/wce/mingwarm.mk +++ b/harbour/config/wce/mingwarm.mk @@ -12,7 +12,7 @@ OBJ_EXT := .o LIB_PREF := lib LIB_EXT := .a -CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP) +CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) CC_IN := -c CC_OUT := -o @@ -34,7 +34,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -g endif -LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP) +LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) LD_OUT := -o$(subst x,x, ) LIBPATHS := -L$(LIB_DIR) diff --git a/harbour/config/win/bcc.mk b/harbour/config/win/bcc.mk index 9a7848f1a9..5e6c56d8a7 100644 --- a/harbour/config/win/bcc.mk +++ b/harbour/config/win/bcc.mk @@ -49,8 +49,7 @@ LDFLAGS += $(LIBPATHS) AR := tlib.exe ARFLAGS := /P64 -# NOTE: Don't use double quotes around filenames as it prevents it working in some sh shells (f.e. msys). -AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) $(subst /,\,$(LIB_DIR)/$@) $(foreach file,$(?F),-+$(file)) +AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) "$(subst /,\,$(LIB_DIR)/$@)" $(foreach file,$(?F),-+$(file)) ifneq ($(HB_SHELL),sh) ifeq ($(HB_SHELL_XP),) diff --git a/harbour/config/win/cygwin.mk b/harbour/config/win/cygwin.mk index d4c33deec1..c6c0a21c07 100644 --- a/harbour/config/win/cygwin.mk +++ b/harbour/config/win/cygwin.mk @@ -12,7 +12,7 @@ OBJ_EXT := .o LIB_PREF := lib LIB_EXT := .a -CC := $(HB_CMP) +CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) CC_IN := -c CC_OUT := -o @@ -33,7 +33,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -g endif -LD := $(HB_CMP) +LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) LD_OUT := -o LIBPATHS := -L$(LIB_DIR) @@ -41,7 +41,7 @@ LDLIBS := $(foreach lib,$(LIBS) $(SYSLIBS),-l$(lib)) LDFLAGS += $(LIBPATHS) -AR := ar +AR := $(HB_CCPATH)$(HB_CCPREFIX)ar ARFLAGS := AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@ diff --git a/harbour/config/win/mingw.mk b/harbour/config/win/mingw.mk index fb9a6d612a..745ac34436 100644 --- a/harbour/config/win/mingw.mk +++ b/harbour/config/win/mingw.mk @@ -12,7 +12,7 @@ OBJ_EXT := .o LIB_PREF := lib LIB_EXT := .a -CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP) +CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) CC_IN := -c CC_OUT := -o @@ -36,7 +36,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -g endif -LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP) +LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) LD_OUT := -o$(subst x,x, ) LIBPATHS := -L$(LIB_DIR) diff --git a/harbour/contrib/hbbtree/hb_btree.c b/harbour/contrib/hbbtree/hb_btree.c index cb5f107f9e..dd9d9407a3 100644 --- a/harbour/contrib/hbbtree/hb_btree.c +++ b/harbour/contrib/hbbtree/hb_btree.c @@ -736,7 +736,8 @@ static ULONG Grow( struct hb_BTree * pBTree ) ioBuffer_T * thisptr; thisptr = ioOneBufferAlloc( pBTree, NULL, pBTree->ioBuffer ); - thisptr->ulPage = ( ULONG )thisptr; + /* TOFIX: casting pointer to ULONG! */ + thisptr->ulPage = ( ULONG ) thisptr; if ( pBTree->ioBuffer ) pBTree->ioBuffer->prev = thisptr; pBTree->ioBuffer = thisptr; } diff --git a/harbour/contrib/hbfbird/Makefile b/harbour/contrib/hbfbird/Makefile index 5243599d19..42c3e31649 100644 --- a/harbour/contrib/hbfbird/Makefile +++ b/harbour/contrib/hbfbird/Makefile @@ -8,31 +8,30 @@ include $(TOP)$(ROOT)config/global.mk LIBNAME := hbfbird -ifeq ($(filter $(HB_COMPILER),pocc64 poccarm),) - -ifeq ($(HB_INC_FIREBIRD),) - ifeq ($(HB_XBUILD),) - HB_INC_FIREBIRD := /usr/include /opt/firebird/include - endif -endif - -HB_INC_FIREBIRD_OK := $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),)) - -ifneq ($(strip $(HB_INC_FIREBIRD_OK)),) - -HB_CFLAGS += $(foreach d,$(HB_INC_FIREBIRD_OK),-I$(d)) - C_SOURCES := \ firebird.c \ PRG_SOURCES := \ tfirebrd.prg \ -include $(TOP)$(ROOT)config/lib.mk +ifeq ($(filter $(HB_COMPILER),pocc64 poccarm),) + ifeq ($(HB_INC_FIREBIRD),) + ifeq ($(HB_XBUILD),) + HB_INC_FIREBIRD := /usr/include /opt/firebird/include + endif + endif + + HB_INC_FIREBIRD_OK := $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),)) + + ifneq ($(strip $(HB_INC_FIREBIRD_OK)),) + + HB_CFLAGS += $(foreach d,$(HB_INC_FIREBIRD_OK),-I$(d)) + + include $(TOP)$(ROOT)config/lib.mk + else + include $(TOP)$(ROOT)config/none.mk + endif else -include $(TOP)$(ROOT)config/none.mk -endif -else -include $(TOP)$(ROOT)config/none.mk + include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index b0d5da176d..86a72871b3 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -2040,11 +2040,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF cBin_Link := cBin_CompC cOpt_Link := "{LO} {LA} {FL} {DL}" - IF ! Empty( hbmk[ _HBMK_cCCPATH ] ) - cBin_Lib := hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Lib - cBin_CompC := hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_CompC - cBin_Link := hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Link - ENDIF cLibPathPrefix := "-L" cLibPathSep := " " cLibLibExt := ".a" @@ -2327,6 +2322,13 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) cResExt := ".reso" cOpt_Res := "{FR} {IR} -O coff -o {OS}" + IF ! Empty( hbmk[ _HBMK_cCCPATH ] ) + cBin_Lib := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Lib, nCmd_Esc ) + cBin_CompC := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_CompC, nCmd_Esc ) + cBin_Link := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Link, nCmd_Esc ) + cBin_Res := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Res, nCmd_Esc ) + ENDIF + CASE hbmk[ _HBMK_cPLAT ] == "dos" .AND. hbmk[ _HBMK_cCOMP ] == "djgpp" IF hbmk[ _HBMK_lDEBUG ] @@ -2336,7 +2338,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) cLibPrefix := "-l" cLibExt := "" cObjExt := ".o" - cBin_CompC := iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "gpp", "gcc" ) + ".exe" + cBin_CompC := hbmk[ _HBMK_cCCPREFIX ] + iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "gpp", "gcc" ) + hbmk[ _HBMK_cCCPOSTFIX ] + cCCEXT cOpt_CompC := "-c" IF hbmk[ _HBMK_lOPTIM ] cOpt_CompC += " -O3" @@ -2352,7 +2354,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) cLibPathPrefix := "-L" cLibPathSep := " " cLibLibExt := ".a" - cBin_Lib := "ar" + ".exe" + cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT cOpt_Lib := "{FA} rcs {OL} {LO}{SCRIPT}" AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB}" ) l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 ) @@ -2377,6 +2379,12 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) AAdd( l_aLIBSYS, "pdcurses" ) ENDIF + IF ! Empty( hbmk[ _HBMK_cCCPATH ] ) + cBin_Lib := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Lib, nCmd_Esc ) + cBin_CompC := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_CompC, nCmd_Esc ) + cBin_Link := FN_Escape( hbmk[ _HBMK_cCCPATH ] + hb_osPathSeparator() + cBin_Link, nCmd_Esc ) + ENDIF + /* Watcom family */ CASE hbmk[ _HBMK_cCOMP ] == "watcom"