<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
    <title></title>
  </head>

  <body>
    <p style="margin: 0px;"><span> </span></p>

    <p style="margin: 0px;"></p>

    <div style="margin: 5px 0px 5px 0px;">
      Hans-Peter Diettrich <DrDiettrich1@aol.com> hat am 3. Februar 2011 um 14:16 geschrieben:<br/>
      <br/>
      > Mattias Gaertner schrieb:<br/>
      ><br/>
      > > The LCL is only recompiled if needed, that means:<br/>
      > > If the project defines another target (widget/os/cpu) and the LCL was<br/>
      > > not yet compiled for that target, the LCL will be recompiled.<br/>
      > > Or if you change the compiler, e.g. you switch from 2.4.2 to 2.5.1.<br/>
      > > Or if you change the source of the LCL.<br/>
      > > Or if you change the IDEBuildOptions.<br/>
      ><br/>
      > How can I find out the reason for the rebuild, in detail when different<br/>
      > build options are involved?
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">Start the ide with --debug-log=log.txt</p>

    <p style="margin: 0px;">It logs the exact reason.</p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      > When the former procedure missed to find applicable compiled units, it simply rejected to proceed, and I could<br/>
      > rebuild the LCL manually with known settings.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">?</p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      > Nowadays I'm somewhat lost, and most rebuilds don't complete so that I have to restart from<br/>
      > "make clean all" :-(
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">If lazarus does not compile please create a bug report with the build log.</p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      ><br/>
      > Most recompilations stop with "file not found" errors, with different<br/>
      > files. Since the files exist, and are found by the IDE, I assume that<br/>
      > search path options are involved.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">In the last week some people had trouble, because they didn't make clean or had mixed an older lazarus with a newer lazarus or they used an outdated mirror.</p>

    <p style="margin: 0px;">An older IDE can not compile the current. You must use make. If you use the snapshot, make sure to clean up the old directory.</p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      ><br/>
      > > If you spot a recompile without need please report the bug.<br/>
      ><br/>
      > What information should I include, so that a bug report makes sense?
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">The --debug-log and the way how you installed lazarus. </p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      >[...]<br/>
      > > The lazarus.lpi has disabled compile in its compiler options. You can<br/>
      > > compile via the Tools / Build Lazarus.<br/>
      ><br/>
      > How do I build a new IDE, without overwriting the old (working) one?
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">First of all: Backup the working one. Backups are always a good idea.</p>

    <p style="margin: 0px;">You can pass an -o option if you want.</p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      <br/>
      >[...]<br/>
      > > The LCL is compiled separately from the project and uses its own<br/>
      > > compiler settings. Therefore the debug and optimization settings of the<br/>
      > > project are not applied to the LCL.<br/>
      ><br/>
      > Hmm, then I wonder why after "make clean all" the LCL is recompiled<br/>
      > later.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">Maybe you defined some options in the "Configure build lazarus" dialog?</p>

    <p style="margin: 0px;">These are the IDEBuildOptions. The debug-log will tell.</p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      > I already checked the environment options, to match the "make" > options, but I'm not really sure. It would be nice to have some<br/>
      > indication, which config files etc. are used by "make", so that the IDE<br/>
      > can be configured to use the same settings.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">For the LCL "make" uses only your fpc.cfg. This is also used by the IDE. But the IDE can add IDEBuildOptions and project options.</p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      > <br/>
      > >> Code navigation (goto declaration...) and stepping through LCL<br/>
      > >> code, down to the widgetset level, seems to require a debug version of<br/>
      > >> the LCL.<br/>
      > ><br/>
      > > Code navigation ignores all debug settings.<br/>
      ><br/>
      > But what's missing then, when I cannot go to lower level source code in<br/>
      > the IDE? Currently I cannot follow the call chain (go to declaration)<br/>
      > into the win32 (target) specific source files.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">Can you be more specific? What find declaration does not work? </p>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">Mattias</p>

    <p style="margin: 0px;"> </p>
  </body>
</html>