diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 74d0e4f662..50075557b0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -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 diff --git a/harbour/contrib/Makefile b/harbour/contrib/Makefile index 59bbc90fe5..e9ef91d622 100644 --- a/harbour/contrib/Makefile +++ b/harbour/contrib/Makefile @@ -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)) diff --git a/harbour/contrib/hbqt/hbqt.hbc b/harbour/contrib/hbqt/hbqt.hbc index 2af49f6640..7715731078 100644 --- a/harbour/contrib/hbqt/hbqt.hbc +++ b/harbour/contrib/hbqt/hbqt.hbc @@ -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 diff --git a/harbour/contrib/hbwin/hbolesrv.hbc b/harbour/contrib/hbwin/hbolesrv.hbc index 734a240c88..70a0f9790f 100644 --- a/harbour/contrib/hbwin/hbolesrv.hbc +++ b/harbour/contrib/hbwin/hbolesrv.hbc @@ -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 diff --git a/harbour/examples/gtwvw/Makefile b/harbour/examples/gtwvw/Makefile deleted file mode 100644 index b19aee10b3..0000000000 --- a/harbour/examples/gtwvw/Makefile +++ /dev/null @@ -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 diff --git a/harbour/examples/gtwvw/gtwvw.hbp b/harbour/examples/gtwvw/gtwvw.hbp index 51f12f5372..5a6006fdc2 100644 --- a/harbour/examples/gtwvw/gtwvw.hbp +++ b/harbour/examples/gtwvw/gtwvw.hbp @@ -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 diff --git a/harbour/examples/hbsqlit2/hbsqlit2.hbp b/harbour/examples/hbsqlit2/hbsqlit2.hbp index 6185158c5e..f9c44b384a 100644 --- a/harbour/examples/hbsqlit2/hbsqlit2.hbp +++ b/harbour/examples/hbsqlit2/hbsqlit2.hbp @@ -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} diff --git a/harbour/src/rtl/filesys.c b/harbour/src/rtl/filesys.c index 0afa05f023..63ebd83634 100644 --- a/harbour/src/rtl/filesys.c +++ b/harbour/src/rtl/filesys.c @@ -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; } } diff --git a/harbour/utils/hbmk2/hbmk2.hu_HU.po b/harbour/utils/hbmk2/hbmk2.hu_HU.po index 9f749c08ce..bb9b3f459b 100644 --- a/harbour/utils/hbmk2/hbmk2.hu_HU.po +++ b/harbour/utils/hbmk2/hbmk2.hu_HU.po @@ -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 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=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=\nLines starting with '#' char are ignored" -msgstr ".hbc opciók (külön sorokba írandók): libs=[], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[], 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=\\n'#' karakterrel kezdődő sorokat figyelmen kívül hagyja" +msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=, stop=, echo=\nLines starting with '#' char are ignored" +msgstr ".hbc opciók (külön sorokba írandók): libs=[], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[], 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=, stop=, echo=\\n'#' karakterrel kezdődő sorokat figyelmen kívül hagyja" diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 703dd02936..dd5b95919a 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -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=" , I_( "set as application icon. should be a supported format on the target platform" ) },; { "-instfile=" , I_( "add in to the list of files to be copied to path specified by -instpath option. is an optional copy group, it must be at least two characters long." ) },; { "-instpath=" , I_( "copy target to . if 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. 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[=]" , I_( "stop without doing anything and display if specified" ) },; { "-echo=" , 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, /etc/harbour, /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=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=\nLines starting with '#' char are ignored" ),; + I_( ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=, stop=, echo=\nLines starting with '#' char are ignored" ),; I_( "Platform filters are accepted in each .hbc line and with several options.\nFilter format: {[!][|||]}. 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}, ${}. 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`".' ),; diff --git a/harbour/utils/hbmk2/hbmk2.pt_BR.po b/harbour/utils/hbmk2/hbmk2.pt_BR.po index 9b7123e124..2a2f8aaf16 100644 --- a/harbour/utils/hbmk2/hbmk2.pt_BR.po +++ b/harbour/utils/hbmk2/hbmk2.pt_BR.po @@ -515,7 +515,7 @@ msgstr "Op # #: hbmk2.prg:7960 #, c-format -msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=\nLines starting with '#' char are ignored" +msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=, stop=, echo=\nLines starting with '#' char are ignored" msgstr "" "As opçőes em um arquivo .hbc devem estar em linhas separadas e săo: libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], 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=\\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 if specified" msgstr "interromper sem executar nada" #: hbmk2.prg:7942