<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:42.5pt 42.5pt 42.5pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=UK link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi, all.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>(Question 1)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>My library extensively uses $I directive to separate various aspects of a single unit, such that its source code looks like this:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Unit myunit;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>interface<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>{$I myunit\branch_alpha.inc}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>{$I myunit\branch_beta.inc}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>{$I myunit\branch_gamma.inc}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>{ etc … }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>implementation<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>end.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>This being so because each of the include file is quite large and need cross-references to-from the others, while all of them being essentially about the same subject.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>What I’ve found is that if I change one of the INCs, the unit does not get rebuilt regardless of the “-B” option (and when Lazarus says “Options changed, recompiling clean with -B”) and Lazarus’ own setting about “Always build even if nothing changed”.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>It is only getting rebuilt if I physically delete corresponding *.a, *.o and *.ppu prior to building. I surmise the underlying cause to be checking the last edit timestamp of the main unit file only, not every include that happen along its way.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Does it qualify as a bug or is it “by design” ?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>(Question 2)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>The same library source tree uses some subdirectories, so that each time I start a project using it, I have to manually include every subdir with its *.pas files into “-Fu” option, because the library sources are also being added and/or modified with each new project.  As the library grows, this is starting to be discomforting. May be I’m just not educated enough in the ways of FPC and missing some obvious functionality, but would it not be nice if we have “Add <x> to unit path recursively” option (such as -Fx) ? That way I can only specify lib’s root directory and not care about how much subdirs it has.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thanks in advance,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>// Gennadiy.<o:p></o:p></span></p></div></body></html>