2010-07-17 21:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* contrib/Makefile
    + Enabled to build all contribs using hbmk2 from now on.

      This is huge step, but in fact a zillion little ones in
      the last 2 years, and it means that contribs now rely on
      hbmk2 and hbmk2 make files (.hbp and .hbc) to be build and
      used respectively. For implibs, .hbi is used. The whole
      process is orchestrated by a script written in Harbour: make.hbs. 
      With this change GNU Make is retired when it comes to contrib
      area. This new hbmk2 based system gives us much flexibility,
      many complicated build situations can now be potentially
      handled, while also making the contrib area fully modular,
      since they don't depend even on /config GNU Make system anymore.
      This means that any external contribs having hbmk2 make files
      are easy to import and any Harbour contribs are easy to detach 
      from our SVN. It also allows to include more features (f.e. 
      executables) in final distros. Executables hosted in the 
      contrib area have the great advantage that they can use any 
      other contrib libs (so far we were limited to core features 
      for exes). It also allows to dynamically add extra contribs 
      (or delete existing ones) on a per distro basis, so f.e. 
      certain builders can create their own binary distro with 
      a standard core and extra set of contribs. New system also 
      makes it possible to build dynamic libs from contribs. It's 
      also easier to move locally hosted external projects inside 
      the contrib tree, even as a subdir inside the contrib that 
      requires it (f.e. minizip, bz2 or sqlite). This can make 
      these projects fully self-contained.

      Some things are not perfect yet, f.e. I'm still fighting
      with cmdline length (relevant in MS-DOS) and the "in-place"
      build (I call "in-place" build when you build only one
      contrib at a time, like when issuing win-make inside a
      contrib subdir) will certainly need some getting used to,
      and maybe even some refinement in make.hbs. I've yet to
      implement automatic dependency detection and tree-sorting
      so that everything automatically builds in right order of
      dependency. Such thing can even be added for "in-place"
      build mode, and f.e. building hbide can automatically
      launch hbqt and hbxbp builds. BTW I retained the 
      "header-copy-on-install" method, but I'm not sure it's 
      right solution, anyhow we still have time to think about 
      a better one.

      If everything goes fine, the GNU Makefiles in contrib
      area will be gone, so there won't be any redundancy again.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + -stop cmdline option now accepts a message it displays before stopping.
    + skip= .hbc command will now stop if there is text in its parameter.
      INCOMPATIBLE: So far -skip only skipped if 'on' was passed as value,
      now it will always skip. This means this command always has to be used
      along a filter. If the filter evaluates, skip will happen, if not it
      won't.
    + Added stop= .hbc command which will halt complete build process,
      similarly to -stop cmdline option. It also supports text to be
      displayed.

  * contrib/hbqt/hbqt.hbc
    + Will now stop with a screen message if this component is tried
      to be used on unsupported platform.

  * contrib/hbwin/hbolesrv.hbc
  * examples/hbsqlit2/hbsqlit2.hbp
  * examples/gtwvw/gtwvw.hbp
    * Changed to use new hbmk2 -stop facilities.

  * src/rtl/filesys.c
    + Missed two casts from previous commit.

  - examples/gtwvw/Makefile
    - Deleted.
This commit is contained in:
Viktor Szakats
2010-07-17 19:51:18 +00:00
parent d78d9c8ef4
commit 1b5ddd6c72
11 changed files with 147 additions and 87 deletions

View File

@@ -16,6 +16,82 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-17 21:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/Makefile
+ Enabled to build all contribs using hbmk2 from now on.
This is huge step, but in fact a zillion little ones in
the last 2 years, and it means that contribs now rely on
hbmk2 and hbmk2 make files (.hbp and .hbc) to be build and
used respectively. For implibs, .hbi is used. The whole
process is orchestrated by a script written in Harbour: make.hbs.
With this change GNU Make is retired when it comes to contrib
area. This new hbmk2 based system gives us much flexibility,
many complicated build situations can now be potentially
handled, while also making the contrib area fully modular,
since they don't depend even on /config GNU Make system anymore.
This means that any external contribs having hbmk2 make files
are easy to import and any Harbour contribs are easy to detach
from our SVN. It also allows to include more features (f.e.
executables) in final distros. Executables hosted in the
contrib area have the great advantage that they can use any
other contrib libs (so far we were limited to core features
for exes). It also allows to dynamically add extra contribs
(or delete existing ones) on a per distro basis, so f.e.
certain builders can create their own binary distro with
a standard core and extra set of contribs. New system also
makes it possible to build dynamic libs from contribs. It's
also easier to move locally hosted external projects inside
the contrib tree, even as a subdir inside the contrib that
requires it (f.e. minizip, bz2 or sqlite). This can make
these projects fully self-contained.
Some things are not perfect yet, f.e. I'm still fighting
with cmdline length (relevant in MS-DOS) and the "in-place"
build (I call "in-place" build when you build only one
contrib at a time, like when issuing win-make inside a
contrib subdir) will certainly need some getting used to,
and maybe even some refinement in make.hbs. I've yet to
implement automatic dependency detection and tree-sorting
so that everything automatically builds in right order of
dependency. Such thing can even be added for "in-place"
build mode, and f.e. building hbide can automatically
launch hbqt and hbxbp builds. BTW I retained the
"header-copy-on-install" method, but I'm not sure it's
right solution, anyhow we still have time to think about
a better one.
If everything goes fine, the GNU Makefiles in contrib
area will be gone, so there won't be any redundancy again.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ -stop cmdline option now accepts a message it displays before stopping.
+ skip= .hbc command will now stop if there is text in its parameter.
INCOMPATIBLE: So far -skip only skipped if 'on' was passed as value,
now it will always skip. This means this command always has to be used
along a filter. If the filter evaluates, skip will happen, if not it
won't.
+ Added stop= .hbc command which will halt complete build process,
similarly to -stop cmdline option. It also supports text to be
displayed.
* contrib/hbqt/hbqt.hbc
+ Will now stop with a screen message if this component is tried
to be used on unsupported platform.
* contrib/hbwin/hbolesrv.hbc
* examples/hbsqlit2/hbsqlit2.hbp
* examples/gtwvw/gtwvw.hbp
* Changed to use new hbmk2 -stop facilities.
* src/rtl/filesys.c
+ Missed two casts from previous commit.
- examples/gtwvw/Makefile
- Deleted.
2010-07-17 20:07 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
+ Added HB_SIZE_SIGNED macro which enables signed HB_SIZE

View File

@@ -82,10 +82,10 @@ else
endif
clean::
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs clean migr,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs clean,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))
install::
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs install migr,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs install,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))
all:
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs all migr,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/make.hbs all,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, contrib/make.hbs skipped.$(ECHOQUOTE))

View File

@@ -2,6 +2,8 @@
# $Id$
#
stop={dos|watcom|bcc|pocc|pocc64|poccarm|msvcia64}'hbqt' doesn't support this platform/compiler (${hb_plat}/${hb_comp}).
incpaths=.
plugins=hbmk2_plugin_qt.hbs

View File

@@ -2,8 +2,7 @@
# $Id$
#
echo={!hbdynvm}Warning: Target must be '-hbdynvm' when using '${hb_self}'. Input file ignored.
skip={!hbdynvm}on
stop={!hbdynvm}Warning: Target must be '-hbdynvm' when using '${hb_self}'. Process stopped.
libs=hbwin.hbc

View File

@@ -1,38 +0,0 @@
#
# $Id$
#
ROOT := ../../
include $(TOP)$(ROOT)config/global.mk
LIBNAME := gtwvw
# NOTE: Has a huge number of warnings, which we don't want to see until fixed.
HB_BUILD_WARN := no
# NOTE: Due to large quantity of unprecise code, it doesn't build in C++ mode.
HB_BUILD_MODE := c
C_SOURCES := \
gtwvw.c \
wvwcheck.c \
wvwdraw.c \
wvwedit.c \
wvwfuncs.c \
wvwmenu.c \
wvwpush.c \
wvwstbar.c \
wvwtbar.c \
ifeq ($(HB_PLATFORM),win)
ifeq ($(filter $(HB_COMPILER),mingw64 msvc64 pocc64 iccia64 msvcia64),)
include $(TOP)$(ROOT)config/header.mk
include $(TOP)$(ROOT)config/lib.mk
else
HB_SKIP_REASON := compiler not supported
include $(TOP)$(ROOT)config/none.mk
endif
else
HB_SKIP_REASON := platform not supported
include $(TOP)$(ROOT)config/none.mk
endif

View File

@@ -9,8 +9,7 @@
-w3 -es2
"-echo={!allwin|!x86}Skipped: Only supported on win x86 platform."
-stop{!allwin|!x86}
"-stop={!allwin|!x86}Skipped: '${hb_name}' only supported on win x86 platform."
gtwvw.c
wvwcheck.c

View File

@@ -9,8 +9,7 @@
-w3 -es2
"-echo={dos}This library doesn't build on DOS."
-stop{dos}
"-stop={dos}'${hb_name}' doesn't support MS-DOS platform."
-depkeyhead=sqlite2:sqlite.h
-depcontrol=sqlite2:${HB_WITH_SQLITE2}

View File

@@ -1913,7 +1913,7 @@ HB_SIZE hb_fsWriteAt( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount
Overlapped.Offset = ( DWORD ) ( nOffset & 0xFFFFFFFF );
Overlapped.OffsetHigh = ( DWORD ) ( nOffset >> 32 );
hb_fsSetIOError( WriteFile( DosToWinHandle( hFileHandle ),
pBuff, nCount, &dwWritten, &Overlapped ) != 0, 0 );
pBuff, ( DWORD ) nCount, &dwWritten, &Overlapped ) != 0, 0 );
nWritten = dwWritten;
}
else
@@ -1931,7 +1931,7 @@ HB_SIZE hb_fsWriteAt( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount
{
DWORD dwWritten = 0;
hb_fsSetIOError( WriteFile( DosToWinHandle( hFileHandle ),
pBuff, nCount, &dwWritten, NULL ) != 0, 0 );
pBuff, ( DWORD ) nCount, &dwWritten, NULL ) != 0, 0 );
nWritten = dwWritten;
}
}

View File

@@ -924,7 +924,7 @@ msgstr "futtassa/ne az elk
#: hbmk2.prg:7941
#, c-format
msgid "stop without doing anything"
msgid "stop without doing anything and display <text> if specified"
msgstr "álljon meg anélkül hogy bármit csinálna"
#: hbmk2.prg:7941
@@ -1009,5 +1009,5 @@ msgstr "c
#: hbmk2.prg:7959
#, c-format
msgid ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], echo=<text>\nLines starting with '#' char are ignored"
msgstr ".hbc opciók (külön sorokba írandók): libs=[<libnevek>], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[<libnevek>], prgflags=[Harbour opciók], cflags=[C fordító opciók], resflags=[erõforrás fordító kapcsolók], ldflags=[szerkesztõ kapcsolók], libpaths=[útvonalak], sources=[forrás fájlok], incpaths=[útvonalak], instfiles=[fájlok], instpaths=[útvonalak], autohbcs=[<.ch>:<.hbc>], plugins=[plugin-ek], gui|mt|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], echo=<szöveg>\\n'#' karakterrel kezdõdõ sorokat figyelmen kívül hagyja"
msgid ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], skip=<reason>, stop=<reason>, echo=<text>\nLines starting with '#' char are ignored"
msgstr ".hbc opciók (külön sorokba írandók): libs=[<libnevek>], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[<libnevek>], prgflags=[Harbour opciók], cflags=[C fordító opciók], resflags=[erõforrás fordító kapcsolók], ldflags=[szerkesztõ kapcsolók], libpaths=[útvonalak], sources=[forrás fájlok], incpaths=[útvonalak], instfiles=[fájlok], instpaths=[útvonalak], autohbcs=[<.ch>:<.hbc>], plugins=[plugin-ek], gui|mt|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], skip=<ok>, stop=<ok>, echo=<szöveg>\\n'#' karakterrel kezdõdõ sorokat figyelmen kívül hagyja"

View File

@@ -394,9 +394,11 @@ REQUEST hbmk_KEYW
#define _HBMK_aDEPTHBC 114
#define _HBMK_hDEPTSDIR 115
#define _HBMK_lStopAfterHarbour 116
#define _HBMK_MAX_ 116
#define _HBMK_lStopAfterInit 116
#define _HBMK_lStopAfterHarbour 117
#define _HBMK_MAX_ 117
#define _HBMK_DEP_CTRL_MARKER ".control." /* must be an invalid path */
@@ -761,7 +763,6 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
LOCAL cPostfix
LOCAL lSkipBuild := .F.
LOCAL lStopAfterInit := .F.
LOCAL lStopAfterCComp := .F.
LOCAL lAcceptCFlag := .F.
LOCAL lAcceptLDFlag := .F.
@@ -803,6 +804,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
s_cSecToken := StrZero( hb_Random( 1, 4294967294 ), 10, 0 )
ENDIF
hbmk[ _HBMK_lStopAfterInit ] := .F.
hbmk[ _HBMK_lStopAfterHarbour ] := .F.
hbmk[ _HBMK_nErrorLevel ] := 0
@@ -1872,19 +1874,19 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cParamL == "-notrace" ; hbmk[ _HBMK_lTRACE ] := .F.
CASE cParamL == "-traceonly" ; hbmk[ _HBMK_lTRACE ] := .T. ; hbmk[ _HBMK_lDONTEXEC ] := .T.
CASE cParamL == "--hbdirbin" ; lStopAfterInit := .T.
CASE cParamL == "--hbdirbin" ; hbmk[ _HBMK_lStopAfterInit ] := .T.
OutStd( l_cHB_BIN_INSTALL )
CASE cParamL == "--hbdirdyn" ; lStopAfterInit := .T.
CASE cParamL == "--hbdirdyn" ; hbmk[ _HBMK_lStopAfterInit ] := .T.
OutStd( l_cHB_DYN_INSTALL )
CASE cParamL == "--hbdirlib" ; lStopAfterInit := .T.
CASE cParamL == "--hbdirlib" ; hbmk[ _HBMK_lStopAfterInit ] := .T.
OutStd( l_cHB_LIB_INSTALL )
CASE cParamL == "--hbdirinc" ; lStopAfterInit := .T.
CASE cParamL == "--hbdirinc" ; hbmk[ _HBMK_lStopAfterInit ] := .T.
OutStd( l_cHB_INC_INSTALL )
@@ -2048,9 +2050,16 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
CASE Left( cParamL, Len( "-stop" ) ) == "-stop"
lStopAfterInit := .T.
hbmk[ _HBMK_lStopAfterInit ] := .T.
hbmk[ _HBMK_lRUN ] := .F.
IF Left( cParamL, Len( "-stop=" ) ) == "-stop="
cParam := MacroProc( hbmk, SubStr( cParam, Len( "-stop=" ) + 1 ), aParam[ _PAR_cFileName ] )
IF ! Empty( cParam )
OutStd( hb_StrFormat( I_( "%1$s" ), cParam ) + _OUT_EOL )
ENDIF
ENDIF
CASE Left( cParamL, Len( "-echo=" ) ) == "-echo="
cParam := MacroProc( hbmk, SubStr( cParam, Len( "-echo=" ) + 1 ), aParam[ _PAR_cFileName ] )
@@ -2482,7 +2491,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
/* Start doing the make process. */
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lCreateImpLib ] .AND. ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) + Len( hbmk[ _HBMK_aCPP ] ) + Len( hbmk[ _HBMK_aOBJUSER ] ) + Len( l_aOBJA ) ) == 0
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lCreateImpLib ] .AND. ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) + Len( hbmk[ _HBMK_aCPP ] ) + Len( hbmk[ _HBMK_aOBJUSER ] ) + Len( l_aOBJA ) ) == 0
hbmk_OutErr( hbmk, I_( "Error: No source files were specified." ) )
IF hbmk[ _HBMK_lBEEP ]
DoBeep( .F. )
@@ -2491,7 +2500,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
/* Decide about output name */
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lCreateImpLib ]
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lCreateImpLib ]
/* If -o with full name wasn't specified, let's
make it the first source file specified. */
@@ -2505,7 +2514,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
/* Decide about working dir */
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lCreateImpLib ]
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lCreateImpLib ]
IF hbmk[ _HBMK_lINC ]
/* NOTE: We store -hbdyn objects in different dirs by default as - for Windows
platforms - they're always built using different compilation options
@@ -2530,7 +2539,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
ENDIF
ELSE
IF lStopAfterInit .OR. ;
IF hbmk[ _HBMK_lStopAfterInit ] .OR. ;
hbmk[ _HBMK_lStopAfterHarbour ] .OR. ;
( lStopAfterCComp .AND. ! hbmk[ _HBMK_lCreateLib ] .AND. ! hbmk[ _HBMK_lCreateDyn ] )
/* It's controlled by -o option in these cases */
@@ -2552,7 +2561,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
ENDIF
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! hbmk[ _HBMK_lCreateImpLib ]
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! hbmk[ _HBMK_lCreateImpLib ]
/*
/boot/common/include (beos)
@@ -2578,7 +2587,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
NEXT
ENDIF
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF hbmk[ _HBMK_cGT ] != NIL .AND. hbmk[ _HBMK_cGT ] == hbmk[ _HBMK_cGTDEFAULT ]
hbmk[ _HBMK_cGT ] := NIL
@@ -4157,9 +4166,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* ; */
IF ! lStopAfterInit .AND. hbmk[ _HBMK_lCreateImpLib ] .AND. ! lDumpInfo
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. hbmk[ _HBMK_lCreateImpLib ] .AND. ! lDumpInfo
DoIMPLIB( hbmk, bBlk_ImpLib, cLibLibPrefix, cLibLibExt )
lStopAfterInit := .T.
hbmk[ _HBMK_lStopAfterInit ] := .T.
ENDIF
DEFAULT hbmk[ _HBMK_nScr_Esc ] TO hbmk[ _HBMK_nCmd_Esc ]
@@ -4171,7 +4180,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
NEXT
IF ! lStopAfterInit
IF ! hbmk[ _HBMK_lStopAfterInit ]
IF ! Empty( hbmk[ _HBMK_cWorkDir ] )
/* NOTE: Ending path sep is important. */
/* Different escaping for internal and external compiler. */
@@ -4183,7 +4192,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
ENDIF
IF ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
hb_FNameSplit( hbmk[ _HBMK_cPROGNAME ], @cDir, @cName, @cExt )
DO CASE
CASE ! lStopAfterCComp
@@ -4203,7 +4212,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Generate header with repository ID information */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
IF ! Empty( l_cVCSHEAD )
tmp1 := VCSID( l_cVCSDIR, l_cVCSHEAD, @tmp2 )
/* Use the same EOL for all platforms to avoid unnecessary rebuilds. */
@@ -4234,7 +4243,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Do header detection and create incremental file list for .c files */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
headstate := NIL
@@ -4258,7 +4267,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Do header detection and create incremental file list for .cpp files */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. ! lDumpInfo
headstate := NIL
@@ -4282,7 +4291,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Create incremental file list for .prg files */
IF ( ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C ) .OR. ;
IF ( ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ] .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C ) .OR. ;
( hbmk[ _HBMK_lCreatePPO ] .AND. hbmk[ _HBMK_lStopAfterHarbour ] ) /* or in preprocessor mode */
IF ! lDumpInfo
@@ -4354,7 +4363,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Header paths */
IF ! lSkipBuild .AND. ! lStopAfterInit
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ]
IF lCHD_Comp
tmp2 := DirAddPathSep( PathMakeRelative( PathNormalize( PathMakeAbsolute( hbmk[ _HBMK_cWorkDir ], hb_pwd() ) ), hb_pwd(), .T. ) )
ENDIF
@@ -4381,7 +4390,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Check if we've found all dependencies */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF ! dep_evaluate( hbmk )
IF hbmk[ _HBMK_lBEEP ]
DoBeep( .F. )
@@ -4392,7 +4401,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Harbour compilation */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. Len( l_aPRG_TODO ) > 0 .AND. ! hbmk[ _HBMK_lCLEAN ] .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. Len( l_aPRG_TODO ) > 0 .AND. ! hbmk[ _HBMK_lCLEAN ] .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
IF hbmk[ _HBMK_lINC ] .AND. ! hbmk[ _HBMK_lQuiet ]
hbmk_OutStd( hbmk, I_( "Compiling Harbour sources..." ) )
@@ -4513,7 +4522,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
ENDIF
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF ! lSkipBuild .AND. ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lStopAfterHarbour ]
IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
@@ -8024,14 +8033,17 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
DO CASE
CASE Lower( Left( cLine, Len( "skip=" ) ) ) == "skip=" ; cLine := SubStr( cLine, Len( "skip=" ) + 1 )
cLine := MacroProc( hbmk, cLine, cFileName )
IF ValueIsT( cLine )
IF hbmk[ _HBMK_lInfo ]
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Skipping from: %1$s" ), cFileName ) )
ENDIF
EXIT
IF ! Empty( cLine )
OutStd( hb_StrFormat( I_( "%1$s" ), cLine ) + _OUT_EOL )
ENDIF
IF hbmk[ _HBMK_lInfo ]
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Skipping from: %1$s" ), cFileName ) )
ENDIF
EXIT
CASE Lower( Left( cLine, Len( "sources=" ) ) ) == "sources=" ; cLine := SubStr( cLine, Len( "sources=" ) + 1 )
FOR EACH cItem IN hb_ATokens( cLine,, .T. )
@@ -8226,6 +8238,17 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
OutStd( hb_StrFormat( I_( "%1$s" ), cLine ) + _OUT_EOL )
ENDIF
CASE Lower( Left( cLine, Len( "stop=" ) ) ) == "stop=" ; cLine := SubStr( cLine, Len( "stop=" ) + 1 )
cLine := MacroProc( hbmk, cLine, cFileName )
IF ! Empty( cLine )
OutStd( hb_StrFormat( I_( "%1$s" ), cLine ) + _OUT_EOL )
ENDIF
hbmk[ _HBMK_lStopAfterInit ] := .T.
hbmk[ _HBMK_lRUN ] := .F.
EXIT
CASE Lower( Left( cLine, Len( "prgflags=" ) ) ) == "prgflags=" ; cLine := SubStr( cLine, Len( "prgflags=" ) + 1 )
FOR EACH cItem IN hb_ATokens( cLine,, .T. )
AAddNewNotEmpty( hbmk[ _HBMK_aOPTPRG ], MacroProc( hbmk, StrStripQuote( cItem ), cFileName ) )
@@ -10596,7 +10619,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
{ "-icon=<file>" , I_( "set <file> as application icon. <file> should be a supported format on the target platform" ) },;
{ "-instfile=<g:file>" , I_( "add <file> in to the list of files to be copied to path specified by -instpath option. <g> is an optional copy group, it must be at least two characters long." ) },;
{ "-instpath=<g:path>" , I_( "copy target to <path>. if <path> is a directory, it should end with path separatorm, in this case files specified by -instfile option will also be copied. can be specified multiple times. <g> is an optional copy group, it must be at least two characters long. Build target will be automatically copied to default (empty) copy group." ) },;
{ "-stop" , I_( "stop without doing anything" ) },;
{ "-stop[=<text>]" , I_( "stop without doing anything and display <text> if specified" ) },;
{ "-echo=<text>" , I_( "echo text on screen" ) },;
{ "-pause" , I_( "force waiting for a key on exit in case of failure (with alternate GTs only)" ) },;
{ "-info" , I_( "turn on informational messages" ) },;
@@ -10687,7 +10710,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
I_( "Regular Harbour compiler options are also accepted.\n(see them with -harbourhelp option)" ),;
hb_StrFormat( I_( "%1$s option file in hbmk2 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 hbmk2 directory." ), _HBMK_AUTOHBC_NAME ),;
hb_StrFormat( I_( "%1$s make script in current directory is always processed if it exists." ), _HBMK_AUTOHBM_NAME ),;
I_( ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], echo=<text>\nLines starting with '#' char are ignored" ),;
I_( ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=<reason>, stop=<reason>, echo=<text>\nLines starting with '#' char are ignored" ),;
I_( "Platform filters are accepted in each .hbc line and with several options.\nFilter format: {[!][<plat>|<comp>|<cpu>|<keyword>]}. Filters can be combined using '&', '|' operators and grouped by parantheses. Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!watcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin}, {allwin|allmsvc|allgcc|allmingw|allicc|allpocc|unix}, {x86|x86_64|ia64|arm|mips|sh}, {debug|nodebug|gui|std|mt|st|shared|static|unicode|ascii|xhb}" ),;
I_( "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_name}, ${hb_plat}, ${hb_comp}, ${hb_build}, ${hb_cpu}, ${hb_bin}, ${hb_lib}, ${hb_dyn}, ${hb_inc}, ${<envvar>}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search." ),;
I_( 'Options accepting macros also support command substitution. Enclose command inside ``, and, if the command contains space, also enclose in double quotes. F.e. "-cflag=`wx-config --cflags`", or ldflags={unix&gcc}"`wx-config --libs`".' ),;

View File

@@ -515,7 +515,7 @@ msgstr "Op
#
#: hbmk2.prg:7960
#, c-format
msgid ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], echo=<text>\nLines starting with '#' char are ignored"
msgid ".hbc options (they should come in separate lines): libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], skip=<reason>, stop=<reason>, echo=<text>\nLines starting with '#' char are ignored"
msgstr ""
"As opções em um arquivo .hbc devem estar em linhas separadas e são: libs=[<libname[s]>], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>], prgflags=[flags do Harbour], cflags=[flags do compilador C], resflags=[flags do compilador de recursos], ldflags=[flags do linkeditor], libpaths=[paths], sources=[módulos fontes], incpaths=[paths], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|partial|full|native], skip=[yes|no], echo=<text>\\n"
"Linhas iniciadas com '#' são interpretadas como comentários e serão ignoradas"
@@ -654,7 +654,7 @@ msgstr "executar/n
#: hbmk2.prg:7942
#, c-format
msgid "stop without doing anything"
msgid "stop without doing anything and display <text> if specified"
msgstr "interromper sem executar nada"
#: hbmk2.prg:7942