2009-05-28 08:20 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* utils/hbmk2/hbmk2.prg
    * .hbl extension changed to .hbc (Harbour Make Config).
    * -nohbl -> -nohbc
    ; Sorry for the mess.
    + Added support for instpaths= in .hbc files.
    + Added support for HB_USER_LIBPATHS envvar to specify
      lib search paths (similar to -L).
    ! Fixed so that sripping/compressing isn't attempted if
      the target didn't need an update.

  * source/rtl/Makefile
  * source/rdd/Makefile
    + Enabled -gc3 for hbrtl and hbrdd locally
      (except for wce builds). Same can be done locally
      for any libs where we find performance increase
      due to -gc3.
    ; NOTE: Probably it would be enough to compile just a few
            sensitive .prg sources (or program parts) with -gc3,
            so it would great to have such #pragma option in
            Harbour. Doesn't seem easy to implement though.

  * config/rules.cf
    * HB_GCMODE default set 0 (from 3).
      This means .prgs will be again compiled with -gc0 by default.
      Because of the contribs, this means the complete size
      of Harbour libs is now reduced significantly.

  * config/wce/global.cf
  * config/wce/msvcarm.cf
  * config/wce/mingwarm.cf
  * config/wce/poccarm.cf
    % HB_GCMODE=0 moved to wce/global.cf

  - utils/hbmk2/examples/hmg.hbl
  + utils/hbmk2/examples/fwh.hbc
  - utils/hbmk2/examples/whoo.hbl
  + utils/hbmk2/examples/xhgtk.hbc
  - utils/hbmk2/examples/xbgtk.hbl
  - utils/hbmk2/examples/hwgui.hbl
  - utils/hbmk2/examples/fwh.hbl
  + utils/hbmk2/examples/c4w.hbc
  - utils/hbmk2/examples/xhgtk.hbl
  + utils/hbmk2/examples/contrib.hbc
  - utils/hbmk2/examples/c4w.hbl
  + utils/hbmk2/examples/contribf.hbc
  - utils/hbmk2/examples/contrib.hbl
  + utils/hbmk2/examples/hmg.hbc
  + utils/hbmk2/examples/whoo.hbc
  - utils/hbmk2/examples/contribf.hbl
  + utils/hbmk2/examples/xbgtk.hbc
  + utils/hbmk2/examples/hwgui.hbc
  - contrib/gtalleg/tests/gtallegs.hbl
  - contrib/gtalleg/tests/gtallegd.hbl
  + contrib/gtalleg/tests/gtallegs.hbc
  + contrib/gtalleg/tests/gtallegd.hbc
  - contrib/hbmysql/utils/hbmysql.hbl
  + contrib/hbmysql/utils/hbmysql.hbc
  - contrib/hbmysql/tests/hbmysql.hbl
  + contrib/hbmysql/tests/hbmysql.hbc
  + contrib/hbct/tests/hbct.hbc
  - contrib/hbct/tests/hbct.hbl
  - contrib/xhb/tests/xhb.hbl
  + contrib/xhb/tests/xhb.hbc
  - contrib/hbodbc/tests/hbodbc.hbl
  + contrib/hbodbc/tests/hbodbc.hbc
  - contrib/hbtpathy/tests/hbtpathy.hbl
  + contrib/hbtpathy/tests/hbtpathy.hbc
  + contrib/hbmsql/tests/hbmsql.hbc
  - contrib/hbmsql/tests/hbmsql.hbl
  + contrib/hbmzip/tests/hbmzip.hbc
  - contrib/hbmzip/tests/hbmzip.hbl
  + contrib/hbsqlit3/tests/hbsqlit3.hbc
  - contrib/hbsqlit3/tests/hbsqlit3.hbl
  - contrib/hbblat/tests/hbblat.hbl
  + contrib/hbblat/tests/hbblat.hbc
  - contrib/hbqt/tests/hbqt.hbl
  + contrib/hbqt/tests/hbqt.hbc
  - contrib/hbfbird/tests/hbfbird.hbl
  + contrib/hbfbird/tests/hbfbird.hbc
  - contrib/hbziparc/tests/hbziparc.hbl
  + contrib/hbziparc/tests/hbziparc.hbc
  - contrib/hbnf/tests/hbnf.hbl
  + contrib/hbnf/tests/hbnf.hbc
  - contrib/hbcurl/tests/hbcurl.hbl
  + contrib/hbcurl/tests/hbcurl.hbc
  - contrib/gtqtc/tests/gtqtc.hbl
  + contrib/gtqtc/tests/gtqtc.hbc
  - contrib/rddsql/sddmy/tests/sddmy.hbl
  + contrib/rddsql/sddmy/tests/sddmy.hbc
  + contrib/rddsql/tests/rddsql.hbc
  - contrib/rddsql/tests/rddsql.hbl
  - contrib/rddsql/sddodbc/tests/sddodbc.hbl
  + contrib/rddsql/sddodbc/tests/sddodbc.hbc
  - contrib/hbhpdf/tests/hbhpdf.hbl
  + contrib/hbhpdf/tests/hbhpdf.hbc
  - contrib/rddado/tests/rddado.hbl
  + contrib/rddado/tests/rddado.hbc
  + contrib/gtwvg/tests/gtwvg.hbc
  - contrib/gtwvg/tests/gtwvg.hbl
  - contrib/hbpgsql/tests/hbpgsql.hbl
  + contrib/hbpgsql/tests/hbpgsql.hbc
  - contrib/rddads/tests/rddads.hbl
  + contrib/rddads/tests/rddads.hbc
  - contrib/hbclipsm/tests/hbclipsm.hbl
  + contrib/hbclipsm/tests/hbclipsm.hbc
  - contrib/hbfimage/tests/hbfimage.hbl
  + contrib/hbfimage/tests/hbfimage.hbc
  + contrib/hbgd/tests/hbgd.hbc
  - contrib/hbgd/tests/hbgd.hbl
  + contrib/hbmisc/tests/hbmisc.hbc
  - contrib/hbmisc/tests/hbmisc.hbl
  + contrib/hbtip/tests/hbtip.hbc
  - contrib/hbtip/tests/hbtip.hbl
  + contrib/hbwin/tests/hbwin.hbc
  - contrib/hbwin/tests/hbwin.hbl
  + contrib/hbvpdf/tests/hbvpdf.hbc
  - contrib/hbvpdf/tests/hbvpdf.hbl
  - contrib/hbssl/tests/hbssl.hbl
  + contrib/hbssl/tests/hbssl.hbc
  - contrib/hbbtree/tests/hbbtree.hbl
  + contrib/hbbtree/tests/hbbtree.hbc
  - contrib/hbcrypt/tests/hbcrypt.hbl
  + contrib/hbcrypt/tests/hbcrypt.hbc
  + contrib/examples/hbsqlit2/tests/hbsqlit2.hbc
  - contrib/examples/hbsqlit2/tests/hbsqlit2.hbl
  - contrib/examples/hbapollo/tests/hbapollo.hbl
  + contrib/examples/hbapollo/tests/hbapollo.hbc
  + contrib/examples/hbgf/tests/hbgf.hbc
  - contrib/examples/hbgf/tests/hbgf.hbl
  - contrib/examples/terminal/terminal.hbl
  + contrib/examples/terminal/terminal.hbc
  - contrib/examples/hbwhat/tests/hbwhat.hbl
  + contrib/examples/hbwhat/tests/hbwhat.hbc
    * Renamed *.hbl -> *.hbc (Harbour Make Config) in whole source tree.
This commit is contained in:
Viktor Szakats
2009-05-28 06:26:06 +00:00
parent 5b7c6fd141
commit 2ff37b72ec
59 changed files with 221 additions and 71 deletions

View File

@@ -17,6 +17,142 @@
past entries belonging to these authors: Viktor Szakats.
*/
2009-05-28 08:20 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
* .hbl extension changed to .hbc (Harbour Make Config).
* -nohbl -> -nohbc
; Sorry for the mess.
+ Added support for instpaths= in .hbc files.
+ Added support for HB_USER_LIBPATHS envvar to specify
lib search paths (similar to -L).
! Fixed so that sripping/compressing isn't attempted if
the target didn't need an update.
* source/rtl/Makefile
* source/rdd/Makefile
+ Enabled -gc3 for hbrtl and hbrdd locally
(except for wce builds). Same can be done locally
for any libs where we find performance increase
due to -gc3.
; NOTE: Probably it would be enough to compile just a few
sensitive .prg sources (or program parts) with -gc3,
so it would great to have such #pragma option in
Harbour. Doesn't seem easy to implement though.
* config/rules.cf
* HB_GCMODE default set 0 (from 3).
This means .prgs will be again compiled with -gc0 by default.
Because of the contribs, this means the complete size
of Harbour libs is now reduced significantly.
* config/wce/global.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
% HB_GCMODE=0 moved to wce/global.cf
- utils/hbmk2/examples/hmg.hbl
+ utils/hbmk2/examples/fwh.hbc
- utils/hbmk2/examples/whoo.hbl
+ utils/hbmk2/examples/xhgtk.hbc
- utils/hbmk2/examples/xbgtk.hbl
- utils/hbmk2/examples/hwgui.hbl
- utils/hbmk2/examples/fwh.hbl
+ utils/hbmk2/examples/c4w.hbc
- utils/hbmk2/examples/xhgtk.hbl
+ utils/hbmk2/examples/contrib.hbc
- utils/hbmk2/examples/c4w.hbl
+ utils/hbmk2/examples/contribf.hbc
- utils/hbmk2/examples/contrib.hbl
+ utils/hbmk2/examples/hmg.hbc
+ utils/hbmk2/examples/whoo.hbc
- utils/hbmk2/examples/contribf.hbl
+ utils/hbmk2/examples/xbgtk.hbc
+ utils/hbmk2/examples/hwgui.hbc
- contrib/gtalleg/tests/gtallegs.hbl
- contrib/gtalleg/tests/gtallegd.hbl
+ contrib/gtalleg/tests/gtallegs.hbc
+ contrib/gtalleg/tests/gtallegd.hbc
- contrib/hbmysql/utils/hbmysql.hbl
+ contrib/hbmysql/utils/hbmysql.hbc
- contrib/hbmysql/tests/hbmysql.hbl
+ contrib/hbmysql/tests/hbmysql.hbc
+ contrib/hbct/tests/hbct.hbc
- contrib/hbct/tests/hbct.hbl
- contrib/xhb/tests/xhb.hbl
+ contrib/xhb/tests/xhb.hbc
- contrib/hbodbc/tests/hbodbc.hbl
+ contrib/hbodbc/tests/hbodbc.hbc
- contrib/hbtpathy/tests/hbtpathy.hbl
+ contrib/hbtpathy/tests/hbtpathy.hbc
+ contrib/hbmsql/tests/hbmsql.hbc
- contrib/hbmsql/tests/hbmsql.hbl
+ contrib/hbmzip/tests/hbmzip.hbc
- contrib/hbmzip/tests/hbmzip.hbl
+ contrib/hbsqlit3/tests/hbsqlit3.hbc
- contrib/hbsqlit3/tests/hbsqlit3.hbl
- contrib/hbblat/tests/hbblat.hbl
+ contrib/hbblat/tests/hbblat.hbc
- contrib/hbqt/tests/hbqt.hbl
+ contrib/hbqt/tests/hbqt.hbc
- contrib/hbfbird/tests/hbfbird.hbl
+ contrib/hbfbird/tests/hbfbird.hbc
- contrib/hbziparc/tests/hbziparc.hbl
+ contrib/hbziparc/tests/hbziparc.hbc
- contrib/hbnf/tests/hbnf.hbl
+ contrib/hbnf/tests/hbnf.hbc
- contrib/hbcurl/tests/hbcurl.hbl
+ contrib/hbcurl/tests/hbcurl.hbc
- contrib/gtqtc/tests/gtqtc.hbl
+ contrib/gtqtc/tests/gtqtc.hbc
- contrib/rddsql/sddmy/tests/sddmy.hbl
+ contrib/rddsql/sddmy/tests/sddmy.hbc
+ contrib/rddsql/tests/rddsql.hbc
- contrib/rddsql/tests/rddsql.hbl
- contrib/rddsql/sddodbc/tests/sddodbc.hbl
+ contrib/rddsql/sddodbc/tests/sddodbc.hbc
- contrib/hbhpdf/tests/hbhpdf.hbl
+ contrib/hbhpdf/tests/hbhpdf.hbc
- contrib/rddado/tests/rddado.hbl
+ contrib/rddado/tests/rddado.hbc
+ contrib/gtwvg/tests/gtwvg.hbc
- contrib/gtwvg/tests/gtwvg.hbl
- contrib/hbpgsql/tests/hbpgsql.hbl
+ contrib/hbpgsql/tests/hbpgsql.hbc
- contrib/rddads/tests/rddads.hbl
+ contrib/rddads/tests/rddads.hbc
- contrib/hbclipsm/tests/hbclipsm.hbl
+ contrib/hbclipsm/tests/hbclipsm.hbc
- contrib/hbfimage/tests/hbfimage.hbl
+ contrib/hbfimage/tests/hbfimage.hbc
+ contrib/hbgd/tests/hbgd.hbc
- contrib/hbgd/tests/hbgd.hbl
+ contrib/hbmisc/tests/hbmisc.hbc
- contrib/hbmisc/tests/hbmisc.hbl
+ contrib/hbtip/tests/hbtip.hbc
- contrib/hbtip/tests/hbtip.hbl
+ contrib/hbwin/tests/hbwin.hbc
- contrib/hbwin/tests/hbwin.hbl
+ contrib/hbvpdf/tests/hbvpdf.hbc
- contrib/hbvpdf/tests/hbvpdf.hbl
- contrib/hbssl/tests/hbssl.hbl
+ contrib/hbssl/tests/hbssl.hbc
- contrib/hbbtree/tests/hbbtree.hbl
+ contrib/hbbtree/tests/hbbtree.hbc
- contrib/hbcrypt/tests/hbcrypt.hbl
+ contrib/hbcrypt/tests/hbcrypt.hbc
+ contrib/examples/hbsqlit2/tests/hbsqlit2.hbc
- contrib/examples/hbsqlit2/tests/hbsqlit2.hbl
- contrib/examples/hbapollo/tests/hbapollo.hbl
+ contrib/examples/hbapollo/tests/hbapollo.hbc
+ contrib/examples/hbgf/tests/hbgf.hbc
- contrib/examples/hbgf/tests/hbgf.hbl
- contrib/examples/terminal/terminal.hbl
+ contrib/examples/terminal/terminal.hbc
- contrib/examples/hbwhat/tests/hbwhat.hbl
+ contrib/examples/hbwhat/tests/hbwhat.hbc
* Renamed *.hbl -> *.hbc (Harbour Make Config) in whole source tree.
2009-05-27 20:08 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/gtwvg/wvgwin.c
+ Workaround for GCLP_HBRBACKGROUND reported missing from some MinGW distros.

View File

@@ -27,7 +27,7 @@ endif
HB := $(HB)harbour$(EXE_EXT)
ifeq ($(HB_GCMODE),)
HB_GCMODE=3
HB_GCMODE=0
endif
HB_FLAGS := -i$(HB_INC_COMPILE) -q0 -w3 -es2 -kmo $(HB_PDBG)
HB_RULE = $(HB) $? -n1 $(HB_FLAGS) -gc$(HB_GCMODE) $(HB_FLAGSEXTRA) $(HB_USER_PRGFLAGS)

View File

@@ -17,6 +17,9 @@ HB_GT_LIST=\
# verify if GT drivers exist
HB_GT_LIBS := $(foreach gt, $(HB_GT_LIST), $(if $(wildcard $(TOP)$(ROOT)source/rtl/$(gt)),$(gt),))
# Favor size for CE builds.
HB_GCMODE=0
HB_FLAGSEXTRA = -D__PLATFORM__WINCE
ifeq ($(HB_DYNLIB),yes)

View File

@@ -9,9 +9,6 @@ EXE_EXT = .exe
LIB_PREF = lib
LIB_EXT = .a
# Favor size for CE builds.
HB_GCMODE=0
CC = $(HB_CCPREFIX)gcc
CC_IN = -c
CC_OUT = -o

View File

@@ -11,9 +11,6 @@ EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib
# Favor size for CE builds.
HB_GCMODE=0
ifeq ($(HB_VISUALC_VER_PRE80),)
CC = cl.exe
else

View File

@@ -12,9 +12,6 @@ EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib
# Favor size for CE builds.
HB_GCMODE=0
CC = pocc.exe
CC_IN = -c
CC_OUT = -Fo

View File

@@ -4,6 +4,10 @@
ROOT = ../../
ifneq ($(HB_ARCHITECTURE),wce)
HB_GCMODE=3
endif
C_SOURCES=\
dbcmd.c \
dbcmd53.c \

View File

@@ -4,6 +4,10 @@
ROOT = ../../
ifneq ($(HB_ARCHITECTURE),wce)
HB_GCMODE=3
endif
C_SOURCES=\
abs.c \
accept.c \

View File

@@ -71,11 +71,11 @@
_core_ (official interfaces preferred), C compilers and OS
details on the smallest possible level.
Instead, 3rd party Harbour packages are recommended to
maintain and provide .hbl files themselves, as part of
maintain and provide .hbc files themselves, as part of
their standard distribution packages. You can find a few
such .hbl examples in the 'examples' directory.
such .hbc examples in the 'examples' directory.
For Harbour contribs, the recommended method is to supply
and maintain .hbl files in their respective directories,
and maintain .hbc files in their respective directories,
usually under tests (or utils, samples). As of this
writing, most of them has one created.
Thank you. [vszakats] */
@@ -194,41 +194,42 @@ REQUEST hbmk_KEYW
#define _HBMK_aLIBUSERGT 21
#define _HBMK_aLIBPATH 22
#define _HBMK_aLIBDYNHAS 23
#define _HBMK_aOPTC 24
#define _HBMK_aOPTPRG 25
#define _HBMK_aOPTRES 26
#define _HBMK_aOPTL 27
#define _HBMK_aOPTA 28
#define _HBMK_aOPTD 29
#define _HBMK_lSHARED 30
#define _HBMK_lSTATICFULL 31
#define _HBMK_lSHAREDDIST 32
#define _HBMK_lNULRDD 33
#define _HBMK_lMAP 34
#define _HBMK_lSTRIP 35
#define _HBMK_lOPTIM 36
#define _HBMK_nCOMPR 37
#define _HBMK_lRUN 38
#define _HBMK_lINC 39
#define _HBMK_lREBUILDPO 40
#define _HBMK_lMINIPO 41
#define _HBMK_aINSTPATH 24
#define _HBMK_aOPTC 25
#define _HBMK_aOPTPRG 26
#define _HBMK_aOPTRES 27
#define _HBMK_aOPTL 28
#define _HBMK_aOPTA 29
#define _HBMK_aOPTD 30
#define _HBMK_lSHARED 31
#define _HBMK_lSTATICFULL 32
#define _HBMK_lSHAREDDIST 33
#define _HBMK_lNULRDD 34
#define _HBMK_lMAP 35
#define _HBMK_lSTRIP 36
#define _HBMK_lOPTIM 37
#define _HBMK_nCOMPR 38
#define _HBMK_lRUN 39
#define _HBMK_lINC 40
#define _HBMK_lREBUILDPO 41
#define _HBMK_lMINIPO 42
#define _HBMK_aPO 42
#define _HBMK_cHBI 43
#define _HBMK_aLNG 44
#define _HBMK_cPO 45
#define _HBMK_aPO 43
#define _HBMK_cHBI 44
#define _HBMK_aLNG 45
#define _HBMK_cPO 46
#define _HBMK_lDEBUGTIME 46
#define _HBMK_lDEBUGINC 47
#define _HBMK_lDEBUGSTUB 48
#define _HBMK_lDEBUGI18N 49
#define _HBMK_lDEBUGTIME 47
#define _HBMK_lDEBUGINC 48
#define _HBMK_lDEBUGSTUB 49
#define _HBMK_lDEBUGI18N 50
#define _HBMK_cCCPATH 50
#define _HBMK_cCCPREFIX 51
#define _HBMK_cCCPATH 51
#define _HBMK_cCCPREFIX 52
#define _HBMK_lUTF8 52
#define _HBMK_lUTF8 53
#define _HBMK_MAX_ 52
#define _HBMK_MAX_ 53
#ifndef _HBMK_EMBEDDED_
@@ -314,7 +315,7 @@ PROCEDURE Main( ... )
ENDCASE
NEXT
/* Exit if there was no more projects found on the command line */
/* Exit if there was no more targets found on the command line */
IF nTarget < nTargetTODO .AND. nTargetTODO != 1
EXIT
ENDIF
@@ -411,7 +412,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
LOCAL s_aOBJA
LOCAL s_aOBJUSER
LOCAL s_aCLEAN
LOCAL s_aINSTPATH
LOCAL s_lHB_PCRE := .T.
LOCAL s_lHB_ZLIB := .T.
LOCAL s_cMAIN := NIL
@@ -475,7 +475,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
LOCAL tmp, tmp1, tmp2, array
LOCAL cScriptFile
LOCAL fhnd
LOCAL lNOHBL
LOCAL lNOHBC
LOCAL lSysLoc
LOCAL cPrefix
LOCAL cPostfix
@@ -1122,6 +1122,10 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
SetupForGT( GetEnv( "HB_GT" ), @hbmk[ _HBMK_cGT ], @hbmk[ _HBMK_lGUI ] )
ENDIF
FOR EACH tmp IN ListToArray( PathSepToTarget( hbmk, GetEnv( "HB_USER_LIBPATHS" ) ) )
AAddNotEmpty( hbmk[ _HBMK_aLIBPATH ], tmp )
NEXT
/* Process command line */
s_aPRG := {}
@@ -1148,7 +1152,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
hbmk[ _HBMK_cHBI ] := NIL
hbmk[ _HBMK_cPO ] := NIL
hbmk[ _HBMK_aLNG ] := {}
s_aINSTPATH := {}
hbmk[ _HBMK_aINSTPATH ] := {}
/* Collect all command line parameters */
aParams := {}
@@ -1178,15 +1182,15 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
NEXT
/* Process command line (1st pass) */
lNOHBL := .F.
lNOHBC := .F.
FOR EACH aParam IN aParams
IF Lower( aParam[ _PAR_cParam ] ) == "-nohbl"
lNOHBL := .T.
IF Lower( aParam[ _PAR_cParam ] ) == "-nohbc"
lNOHBC := .T.
ENDIF
NEXT
/* Process automatic control files. */
HBL_ProcessAll( hbmk, lNOHBL )
HBC_ProcessAll( hbmk, lNOHBC )
/* Build with shared libs by default, if we're installed to default system locations. */
@@ -1213,7 +1217,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cParamL == "-hbcmp" .OR. ;
cParamL == "-hbcc" .OR. ;
cParamL == "-hblnk" .OR. ;
cParamL == "-nohbl" .OR. ;
cParamL == "-nohbc" .OR. ;
cParamL == "-xhb" .OR. ;
cParamL == "-clipper" .OR. ;
cParamL == "-rtlink" .OR. ;
@@ -1422,7 +1426,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
cParam := PathProc( MacroProc( hbmk, tmp := ArchCompFilter( hbmk, SubStr( cParam, Len( "-instpath=" ) + 1 ) ), FN_DirGet( aParam[ _PAR_cFileName ] ) ), aParam[ _PAR_cFileName ] )
IF ! Empty( cParam )
AAdd( s_aINSTPATH, PathSepToTarget( hbmk, cParam ) )
AAdd( hbmk[ _HBMK_aINSTPATH ], PathSepToTarget( hbmk, cParam ) )
ENDIF
CASE Left( cParamL, Len( "-incpath=" ) ) == "-incpath=" .AND. ;
@@ -1565,7 +1569,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
AAdd( hbmk[ _HBMK_aLIBUSER ], PathSepToTarget( hbmk, cParam ) )
ENDIF
CASE FN_ExtGet( cParamL ) == ".hbl"
CASE FN_ExtGet( cParamL ) == ".hbc"
cParam := PathProc( cParam, aParam[ _PAR_cFileName ] )
@@ -1582,7 +1586,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing: %1$s" ), cParam ) )
ENDIF
HBL_ProcessOne( hbmk, cParam )
HBC_ProcessOne( hbmk, cParam )
CASE FN_ExtGet( cParamL ) == ".prg"
@@ -3561,7 +3565,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
DirUnbuild( cWorkDir )
ENDIF
IF nErrorLevel == 0 .AND. ! s_lCLEAN
IF nErrorLevel == 0 .AND. ! s_lCLEAN .AND. ! lTargetUpToDate
IF ! Empty( cBin_Post )
@@ -3614,8 +3618,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
ENDIF
ENDIF
IF ! Empty( s_aINSTPATH )
FOR EACH tmp IN s_aINSTPATH
IF ! Empty( hbmk[ _HBMK_aINSTPATH ] )
FOR EACH tmp IN hbmk[ _HBMK_aINSTPATH ]
IF Empty( FN_NameExtGet( tmp ) )
tmp1 := DirAddPathSep( PathSepToSelf( tmp ) ) + FN_NameExtGet( s_cPROGNAME )
ELSE
@@ -4453,7 +4457,7 @@ STATIC FUNCTION FN_HasWildcard( cFileName )
#define HBMK_CFG_NAME "hbmk.cfg"
STATIC PROCEDURE HBL_ProcessAll( hbmk, lConfigOnly )
STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly )
LOCAL aFile
LOCAL cDir
LOCAL cFileName
@@ -4475,19 +4479,19 @@ STATIC PROCEDURE HBL_ProcessAll( hbmk, lConfigOnly )
IF ! hbmk[ _HBMK_lQuiet ]
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing configuration: %1$s" ), cFileName ) )
ENDIF
HBL_ProcessOne( hbmk, cFileName )
HBC_ProcessOne( hbmk, cFileName )
EXIT
ENDIF
NEXT
IF ! lConfigOnly
FOR EACH aFile IN Directory( "*" + ".hbl" )
FOR EACH aFile IN Directory( "*" + ".hbc" )
cFileName := aFile[ F_NAME ]
IF !( cFileName == HBMK_CFG_NAME ) .AND. Lower( FN_ExtGet( cFileName ) ) == ".hbl"
IF !( cFileName == HBMK_CFG_NAME ) .AND. Lower( FN_ExtGet( cFileName ) ) == ".hbc"
IF ! hbmk[ _HBMK_lQuiet ]
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing: %1$s" ), cFileName ) )
ENDIF
HBL_ProcessOne( hbmk, cFileName )
HBC_ProcessOne( hbmk, cFileName )
ENDIF
NEXT
ENDIF
@@ -4496,7 +4500,7 @@ STATIC PROCEDURE HBL_ProcessAll( hbmk, lConfigOnly )
#define _EOL Chr( 10 )
STATIC PROCEDURE HBL_ProcessOne( hbmk, cFileName )
STATIC PROCEDURE HBC_ProcessOne( hbmk, cFileName )
LOCAL cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */
LOCAL cLine
LOCAL cItem
@@ -4555,6 +4559,14 @@ STATIC PROCEDURE HBL_ProcessOne( hbmk, cFileName )
ENDIF
NEXT
CASE Lower( Left( cLine, Len( "instpaths=" ) ) ) == "instpaths=" ; cLine := SubStr( cLine, Len( "instpaths=" ) + 1 )
FOR EACH cItem IN hb_ATokens( cLine,, .T. )
cItem := PathSepToTarget( hbmk, PathProc( MacroProc( hbmk, StrStripQuote( cItem ), FN_DirGet( cFileName ) ), FN_DirGet( cFileName ) ) )
IF AScan( hbmk[ _HBMK_aINSTPATH ], {|tmp| tmp == cItem } ) == 0
AAddNotEmpty( hbmk[ _HBMK_aINSTPATH ], cItem )
ENDIF
NEXT
/* NOTE: This keyword is used in hbmk.cfg and signals whether
a given optional module (gtsln, gtcrs, gtxwc) is part of the
Harbour shared library, so that we can automatically add
@@ -5810,7 +5822,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
{ "-vcshead=<file>" , I_( "generate .ch header file with local repository information. SVN, Git and Mercurial are currently supported. Generated header will define macro _HBMK_VCS_TYPE_ with the name of detected VCS and _HBMK_VCS_ID_ with the unique ID of local repository" ) },;
{ "-tshead=<file>" , I_( "generate .ch header file with timestamp information. Generated header will define macros _HBMK_BUILD_DATE_, _HBMK_BUILD_TIME_, _HBMK_BUILD_TIMESTAMP_ with the date/time of build" ) },;
{ "-instpath=<path>" , I_( "copy target to <path>. if <path> is a directory, it should end with path separator. can be specified multiple times" ) },;
{ "-nohbl" , I_( "do not process .hbl files in current directory" ) },;
{ "-nohbc" , I_( "do not process .hbc files in current directory" ) },;
{ "-stop" , I_( "stop without doing anything" ) },;
NIL,;
{ "-bldf[-]" , I_( "inherit all/no (default) flags from Harbour build" ) },;
@@ -5868,14 +5880,14 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
I_( "Notes:" ) }
LOCAL aNotes := {;
I_( "<script> can be <@script> (.hbm format), <script.hbm>, <script.hbp> (marks a new target) or <script.hbl>." ),;
I_( "<script> can be <@script> (.hbm format), <script.hbm>, <script.hbp> (marks a new target) or <script.hbc>." ),;
I_( "Multiple -l, -L and <script> parameters are accepted." ),;
I_( "Regular Harbour compiler options are also accepted." ),;
hb_StrFormat( I_( "%1$s option file in hbmk directory is always processed if it exists. On *nix platforms ~/.harbour, /etc/harbour, <base>/etc/harbour, <base>/etc are checked (in that order) before the hbmk directory. The file format is the same as .hbl." ), HBMK_CFG_NAME ),;
I_( ".hbl option files in current dir are automatically processed." ),;
I_( ".hbl options (they should come in separate lines): libs=[<libname[s]>], gt=[gtname], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], libpaths=[paths], pos=[.po files], incpaths=[paths], inctrypaths=[paths], gui|mt|shared|nulrdd|debug|opt|map|strip|run|inc=[yes|no], compr=[yes|no|def|min|max], head=[off|partial|full], echo=<text>\nLines starting with '#' char are ignored" ),;
I_( "Platform filters are accepted in each .hbl line and with several options.\nFilter format: {[!][<arch>|<comp>|<keyword>]}. Filters can be combined using '&', '|' operators and grouped by parantheses. Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!owatcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin}, {allpocc|allgcc|allmingw|unix}, {allmsvc}, {x86|x86_64|ia64|arm}, {debug|nodebug|gui|std|mt|st|xhb}" ),;
I_( "Certain .hbl lines (prgflags=, cflags=, ldflags=, libpaths=, inctrypaths=,echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_self}, ${hb_arch}, ${hb_comp}, ${hb_cpu}, ${<envvar>}" ),;
hb_StrFormat( I_( "%1$s option file in hbmk directory is always processed if it exists. On *nix platforms ~/.harbour, /etc/harbour, <base>/etc/harbour, <base>/etc are checked (in that order) before the hbmk directory. The file format is the same as .hbc." ), HBMK_CFG_NAME ),;
I_( ".hbc config files in current dir are automatically processed." ),;
I_( ".hbc options (they should come in separate lines): libs=[<libname[s]>], gt=[gtname], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], libpaths=[paths], pos=[.po files], incpaths=[paths], inctrypaths=[paths], instpaths=[paths], gui|mt|shared|nulrdd|debug|opt|map|strip|run|inc=[yes|no], compr=[yes|no|def|min|max], head=[off|partial|full], echo=<text>\nLines starting with '#' char are ignored" ),;
I_( "Platform filters are accepted in each .hbc line and with several options.\nFilter format: {[!][<arch>|<comp>|<keyword>]}. Filters can be combined using '&', '|' operators and grouped by parantheses. Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!owatcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin}, {allpocc|allgcc|allmingw|unix}, {allmsvc}, {x86|x86_64|ia64|arm}, {debug|nodebug|gui|std|mt|st|xhb}" ),;
I_( "Certain .hbc lines (prgflags=, cflags=, ldflags=, libpaths=, inctrypaths=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_self}, ${hb_arch}, ${hb_comp}, ${hb_cpu}, ${<envvar>}" ),;
I_( "Defaults and feature support vary by architecture/compiler." ) }
DEFAULT lLong TO .F.