diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 8b7f9ee935..6185b0847b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,22 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-02-20 09:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * utils/hbmk2/hbmk2.prg + + Added support for build level (or system level if that's + needed in the future) configuration file for hbmk. Currently + it will automatically pick the file named hbmkcfg.hbp from + the dir where hbmk is located. This file can be used to store + build settings so that they can later be used by hbmk, + automatically. IOW this is the communication medium + between the build process and hbmk. We can store here + the selected GT, extra libraries, PRG flags, C flags, linker + flags, while keeping hbmk executable free from such burnt-in + information. For this to work, the build process needs + to generate hbmkcfg.hbp with appropriate content, and this + file needs to be added to standard distribution packages. + The format is normal .hbp, described on the hbmk help screen. + 2009-02-20 09:26 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * utils/hbmk2/hbmk2.prg + Added CCPATH + CCPREFIX support for *nix/gcc|gpp. diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index f9ff0ac036..185f5d3c87 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -1531,6 +1531,8 @@ STATIC FUNCTION FN_ExtSet( cFileName, cExt ) RETURN hb_FNameMerge( cDir, cName, cExt ) +#define HBMK_CFG_NAME "hbmkcfg.hbp" + STATIC PROCEDURE HBP_ProcessAll( /* @ */ aLIBS,; /* @ */ aLIBPATH,; /* @ */ aOPTPRG,; @@ -1546,29 +1548,60 @@ STATIC PROCEDURE HBP_ProcessAll( /* @ */ aLIBS,; /* @ */ lSTRIP,; /* @ */ lRUN,; /* @ */ cGT ) - LOCAL aFiles := Directory( "*.hbp" ) LOCAL aFile + LOCAL cDir + LOCAL cFileName - FOR EACH aFile IN aFiles - IF t_lInfo - OutStd( "hbmk: Processing: " + aFile[ F_NAME ] + hb_osNewLine() ) + LOCAL aCFGDirs := { DirAddPathSep( hb_DirBase() ) } + + FOR EACH cDir IN aCFGDirs + IF hb_FileExists( cFileName := ( cDir + HBMK_CFG_NAME ) ) + IF t_lInfo + OutStd( "hbmk: Processing configuration: " + cFileName + hb_osNewLine() ) + ENDIF + HBP_ProcessOne( cFileName,; + @aLIBS,; + @aLIBPATH,; + @aOPTPRG,; + @aOPTC,; + @aOPTL,; + @lGUI,; + @lMT,; + @lSHARED,; + @lSTATICFULL,; + @lDEBUG,; + @lNULRDD,; + @lMAP,; + @lSTRIP,; + @lRUN,; + @cGT ) + EXIT + ENDIF + NEXT + + FOR EACH aFile IN Directory( "*.hbp" ) + cFileName := aFile[ F_NAME ] + IF !( cFileName == HBMK_CFG_NAME ) + IF t_lInfo + OutStd( "hbmk: Processing: " + cFileName + hb_osNewLine() ) + ENDIF + HBP_ProcessOne( cFileName,; + @aLIBS,; + @aLIBPATH,; + @aOPTPRG,; + @aOPTC,; + @aOPTL,; + @lGUI,; + @lMT,; + @lSHARED,; + @lSTATICFULL,; + @lDEBUG,; + @lNULRDD,; + @lMAP,; + @lSTRIP,; + @lRUN,; + @cGT ) ENDIF - HBP_ProcessOne( aFile[ F_NAME ],; - @aLIBS,; - @aLIBPATH,; - @aOPTPRG,; - @aOPTC,; - @aOPTL,; - @lGUI,; - @lMT,; - @lSHARED,; - @lSTATICFULL,; - @lDEBUG,; - @lNULRDD,; - @lMAP,; - @lSTRIP,; - @lRUN,; - @cGT ) NEXT RETURN