2011-01-29 18:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/utils/hbmk2/hbmk2.prg
    ! fixed dependences checking for -head=full and @.clp files
    + added automatic dependencies checking for .prg files using .d
      files generated by harbour compiler (-head=dep)
    ; TODO: extend it for .c files and GCC based compilers
This commit is contained in:
Przemyslaw Czerpak
2011-01-29 17:50:40 +00:00
parent 8874af4808
commit e0f6cdda77
2 changed files with 34 additions and 19 deletions

View File

@@ -16,6 +16,13 @@
The license applies to all entries newer than 2009-04-28.
*/
2011-01-29 18:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/utils/hbmk2/hbmk2.prg
! fixed dependences checking for -head=full and @.clp files
+ added automatic dependencies checking for .prg files using .d
files generated by harbour compiler (-head=dep)
; TODO: extend it for .c files and GCC based compilers
2011-01-29 16:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/einstvar.prg
* src/rtl/einstv52.prg

View File

@@ -2710,9 +2710,9 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
IF SubStr( cParamL, 2 ) == "gh"
hbmk[ _HBMK_lStopAfterHarbour ] := .T.
hbmk[ _HBMK_lCreateHRB ] := .T.
ENDIF
/* Detect if Harbour is only used as preprocessor (-p + -s options) */
IF SubStr( cParamL, 2 ) == "p"
ELSEIF SubStr( cParamL, 2 ) == "p"
++nHarbourPPO
tmp := MacroProc( hbmk, SubStr( cParam, 3 ), aParam[ _PAR_cFileName ] )
IF ! Empty( tmp )
@@ -2720,8 +2720,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
hb_FNameSplit( tmp, @cDir, @cName, @cExt )
cHarbourPPODir := cDir
ENDIF
ENDIF
IF SubStr( cParamL, 2 ) == "s"
ELSEIF SubStr( cParamL, 2 ) == "s"
hbmk[ _HBMK_lStopAfterHarbour ] := .T.
++nHarbourPPO
ENDIF
@@ -4860,6 +4859,9 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
IF ! Empty( hbmk[ _HBMK_cPO ] )
AAdd( hbmk[ _HBMK_aOPTPRG ], "-j" )
ENDIF
IF hbmk[ _HBMK_nHEAD ] == _HEAD_DEP
AAdd( hbmk[ _HBMK_aOPTPRG ], "-gd" )
ENDIF
PlatformPRGFlags( hbmk, hbmk[ _HBMK_aOPTPRG ] )
@@ -6715,7 +6717,15 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, tTimeParent, lCMode, cBin_Com
RETURN .F.
ENDIF
IF ! lCMode .AND. hbmk[ _HBMK_nHEAD ] == _HEAD_NATIVE .AND. hbmk[ _HBMK_nHBMODE ] == _HBMODE_NATIVE
IF !lCMode .AND. hbmk[ _HBMK_nHEAD ] == _HEAD_DEP
cDependency := FNameDirExtSet( cFileName, hbmk[ _HBMK_cWorkDir ], ".d" )
IF !hb_FGetDateTime( cDependency, @tTimeDependency ) .OR. ;
tTimeDependency > tTimeParent
RETURN .T.
ENDIF
deplst_read( hbmk, hbmk[ _HBMK_hDEPTS ], cDependency )
ELSEIF ! lCMode .AND. hbmk[ _HBMK_nHEAD ] == _HEAD_NATIVE .AND. hbmk[ _HBMK_nHBMODE ] == _HBMODE_NATIVE
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hbmk, hb_StrFormat( "debuginc: Calling Harbour compiler to detect dependencies of %1$s", cFileName ) )
@@ -6756,19 +6766,6 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, tTimeParent, lCMode, cBin_Com
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( hbmk, hb_StrFormat( "debuginc: HEADER (CLP) %1$s", cDependency ) )
ENDIF
IF hb_FGetDateTime( cDependency, @tTimeDependency ) .AND. tTimeDependency > tTimeParent
RETURN .T.
ENDIF
ENDIF
NEXT
ELSEIF lCMode .AND. hbmk[ _HBMK_nHEAD ] == _HEAD_NATIVE .AND. HBMK_ISCOMP( "gcc|mingw|mingw64|mingwarm|djgpp|gccomf|clang|open64" )
IF hbmk[ _HBMK_lDEBUGINC ]
@@ -6801,7 +6798,18 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, tTimeParent, lCMode, cBin_Com
ENDIF
NEXT
ELSE
IF getNewestTime( hbmk, cFileName, @hbmk[ _HBMK_hFiles ], lCMode ) > tTimeParent
IF ! 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( hbmk, hb_StrFormat( "debuginc: HEADER (CLP) %1$s", cDependency ) )
ENDIF
IF getNewestTime( hbmk, cDependency, @hbmk[ _HBMK_hFiles ], lCMode ) > tTimeParent
RETURN .T.
ENDIF
ENDIF
NEXT
ELSEIF getNewestTime( hbmk, cFileName, @hbmk[ _HBMK_hFiles ], lCMode ) > tTimeParent
RETURN .T.
ENDIF
ENDIF