2009-11-04 19:51 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/utils/hbmk2/hbmk2.prg
    ! fixed incremental mode for @.clp files.
      I tried to make all modifications locally to not break
      some other code which may need "@" in file names because
      I do not know hbmk2 code.
This commit is contained in:
Przemyslaw Czerpak
2009-11-04 18:51:40 +00:00
parent ac24e22ba6
commit 0357d329c2
2 changed files with 60 additions and 9 deletions

View File

@@ -17,6 +17,13 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-11-04 19:51 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/utils/hbmk2/hbmk2.prg
! fixed incremental mode for @.clp files.
I tried to make all modifications locally to not break
some other code which may need "@" in file names because
I do not know hbmk2 code.
2009-11-04 17:06 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk

View File

@@ -3405,12 +3405,17 @@ FUNCTION hbmk( aArgs, /* @ */ lPause )
IF hbmk[ _HBMK_lINC ] .AND. ! hbmk[ _HBMK_lREBUILD ]
l_aPRG_TODO := {}
FOR EACH tmp IN hbmk[ _HBMK_aPRG ]
IF LEFTEQUAL( tmp, "@" ) .AND. Lower( FN_ExtGet( tmp ) ) == ".clp"
tmp3 := SubStr( tmp, 2 )
ELSE
tmp3 := tmp
ENDIF
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hb_StrFormat( "debuginc: PRG %1$s %2$s",;
tmp, FN_DirExtSet( tmp, cWorkDir, ".c" ) ) )
tmp3, FN_DirExtSet( tmp3, cWorkDir, ".c" ) ) )
ENDIF
IF ! hb_FGetDateTime( FN_DirExtSet( tmp, cWorkDir, ".c" ), @tmp2 ) .OR. ;
! hb_FGetDateTime( tmp, @tmp1 ) .OR. ;
IF ! hb_FGetDateTime( FN_DirExtSet( tmp3, cWorkDir, ".c" ), @tmp2 ) .OR. ;
! hb_FGetDateTime( tmp3, @tmp1 ) .OR. ;
tmp1 > tmp2 .OR. ;
( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, NIL, tmp2, .F., .F., NIL, @headstate ) )
AAdd( l_aPRG_TODO, tmp )
@@ -3950,14 +3955,20 @@ FUNCTION hbmk( aArgs, /* @ */ lPause )
IF hbmk[ _HBMK_lINC ] .AND. ! hbmk[ _HBMK_lREBUILD ]
l_aPRG_TODO := {}
l_aPRG_DONE := {}
FOR EACH tmp IN hbmk[ _HBMK_aPRG ]
IF LEFTEQUAL( tmp, "@" ) .AND. Lower( FN_ExtGet( tmp ) ) == ".clp"
tmp3 := SubStr( tmp, 2 )
ELSE
tmp3 := tmp
ENDIF
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hb_StrFormat( "debuginc: CPRG %1$s %2$s",;
FN_DirExtSet( tmp, cWorkDir, ".c" ),;
FN_DirExtSet( tmp, cWorkDir, cObjExt ) ) )
FN_DirExtSet( tmp3, cWorkDir, ".c" ),;
FN_DirExtSet( tmp3, cWorkDir, cObjExt ) ) )
ENDIF
IF ! hb_FGetDateTime( FN_DirExtSet( tmp, cWorkDir, ".c" ), @tmp1 ) .OR. ;
! hb_FGetDateTime( FN_DirExtSet( tmp, cWorkDir, cObjExt ), @tmp2 ) .OR. ;
IF ! hb_FGetDateTime( FN_DirExtSet( tmp3, cWorkDir, ".c" ), @tmp1 ) .OR. ;
! hb_FGetDateTime( FN_DirExtSet( tmp3, cWorkDir, cObjExt ), @tmp2 ) .OR. ;
tmp1 > tmp2
AAdd( l_aPRG_TODO, tmp )
ELSE
@@ -4783,8 +4794,9 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, cParentDir, tTimeParent, lInc
FOR EACH cModule IN hb_ATokens( tmp, Chr( 9 ) )
IF ! Empty( cModule )
FOR EACH cDependency IN hb_ATokens( cModule, " " )
IF cDependency:__enumIndex() > 1 .AND. ; /* Skip own (module) name */
! Empty( cDependency )
IF ( cDependency:__enumIndex() > 1 .OR. ; /* Skip own (module) name */
( LEFTEQUAL( cFileName, "@" ) .AND. cExt == ".clp" ) ) .AND. ;
! Empty( cDependency )
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hb_StrFormat( "debuginc: HEADER (NATIVE) %1$s", cDependency ) )
ENDIF
@@ -4799,6 +4811,22 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, cParentDir, tTimeParent, lInc
ENDIF
NEXT
ELSEIF ! lCMode .AND. LEFTEQUAL( cFileName, "@" ) .AND. cExt == ".clp"
FOR EACH cDependency IN clpfile_read( SubStr( cFileName, 2 ) )
IF ! Empty( cDependency )
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hb_StrFormat( "debuginc: HEADER (CLP) %1$s", cDependency ) )
ENDIF
IF hb_FGetDateTime( cDependency, @tTimeDependency ) .AND. tTimeDependency > tTimeParent
headstate[ _HEADSTATE_lAnyNewer ] := .T.
IF ! lIncTry
RETURN .T.
ENDIF
ENDIF
ENDIF
NEXT
ELSEIF lCMode .AND. hbmk[ _HBMK_nHEAD ] == _HEAD_NATIVE .AND. hbmk[ _HBMK_cCOMP ] $ "gcc|mingw|mingw64|mingwarm|cygwin|djgpp|gccomf"
IF hbmk[ _HBMK_lDEBUGINC ]
@@ -4881,6 +4909,22 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, cParentDir, tTimeParent, lInc
RETURN headstate[ _HEADSTATE_lAnyNewer ]
STATIC FUNCTION clpfile_read( cFileName )
LOCAL cFileBody := MemoRead( cFileName )
LOCAL aFiles
LOCAL cFile
cFileBody := StrTran( cFileBody, Chr( 13 ) )
cFileBody := StrTran( cFileBody, Chr( 10 ), " " )
cFileBody := StrTran( cFileBody, Chr( 9 ), " " )
aFiles := hb_aTokens( cFileBody,, .t. )
FOR EACH cFile IN aFiles
cFile := FN_ExtSet( StrTran( cFile, '"' ), ".prg" )
NEXT
RETURN aFiles
STATIC FUNCTION deplst_read( hDeps, cFileName )
LOCAL cFileBody := MemoRead( cFileName )
LOCAL cList := ""