mattias,

firstly i want to thank you very much for you work in enabling lazarus to be built and updated completely from the command line... there's been a lot of changes and cleanup done... i am much happier now then i was several weeks ago when attempting this before you got to work on it as you did ;)

as you know, i've been working with a "script" (aka .BAT file) to update lazarus from the svn and build everything from the command line... i seem to have bumped into a discrepancy that i'm at a bit of a loss to explain...

to make sure that i'm at a true default state (eg: first time SVN pull and build from the command line), i deleted my existing miscellaneousoptions.xml file and then ran my script... yes, this lost me the chmhelp package but that's not a part of the problem, i don't think... these tests were done with revision 36911...

here's the results... the files with _r36911 in them are built WITHOUT miscellaneousoptions.xml and the ones without the revision number are built WITH miscellaneousoptions.xml... all the following files ARE revision 36911...

04/19/2012  15:55          131,025,818 lazarus_r36911-clean_up_build_all.exe
04/19/2012  17:36          131,294,581 lazarus-clean_up_build_all.exe

04/19/2012  15:58          131,025,818 lazarus_r36911-normal.exe
04/19/2012  17:40          131,294,581 lazarus-normal.exe

04/19/2012  16:07          113,273,997 lazarus_r36911-debug.exe
04/19/2012  17:48           76,581,382 lazarus-debug.exe

04/19/2012  16:14           12,728,492 lazarus_r36911-optimized.exe
04/19/2012  17:52           13,444,780 lazarus-optimized.exe


i do understand that the inclusion of the chmhelp package (the only "extra" one i have installed) will cause some exe size differences (larger) but i fail to understand how the debug flavor alters its size to be so much smaller with the use of the miscellaneousoptions.xml file... the only differences i am aware of is that the debug flavor WITH miscellaneousoptions.xml does a "clean all and build" PLUS it has the DEBUG and VERBOSE defines checked in the miscellaneousoptions.xml file...

here is the basic script commands (without all the pretty fluff'n'stuff)...

========== snip ==========
make clean
TortoiseProc /command:update /path:"%myLAZpath%"
make lazbuild lcl ideintf basecomponents starter

lazbuild.exe --build-ide= --build-mode="clean up + build all"
copy lazarus.exe lazarus-clean_up_build_all.exe

lazbuild.exe --build-ide= --build-mode="normal ide"
copy lazarus.exe lazarus-normal.exe

lazbuild.exe --build-ide= --build-mode="debug ide"
copy lazarus.exe lazarus-debug.exe

lazbuild.exe --build-ide= --build-mode="optimized ide"
copy lazarus.exe lazarus-optimized.exe
========== snip ==========


and here is the miscellaneousoptions.xml...

========== snip miscellaneousoptions.xml ==========
<?xml version="1.0"?>
<CONFIG>
  <MiscellaneousOptions>
    <Version Value="2"/>
    <BuildLazarusOptions>
      <Profiles Count="4">
        <Profile0 Name="Normal IDE">
          <LCLPlatform Value="win32"/>
          <IdeBuildMode Value="Build"/>
        </Profile0>
        <Profile1 Name="Debug IDE">
          <LCLPlatform Value="win32"/>
          <IdeBuildMode Value="Clean All + Build"/>
          <Options Count="1">
            <Item1 Value="-gw -gl -godwarfsets -gh -gt -Co -Cr -Ci -Sa"/>
          </Options>
          <Defines Count="2">
            <Item1 Value="Debug"/>
            <Item2 Value="Verbose"/>
          </Defines>
        </Profile1>
        <Profile2 Name="Optimized IDE">
          <LCLPlatform Value="win32"/>
          <IdeBuildMode Value="Build"/>
          <Options Count="1">
            <Item1 Value="-O2 -g- -Xs"/>
          </Options>
        </Profile2>
        <Profile3 Name="Clean Up + Build all">
          <LCLPlatform Value="win32"/>
          <IdeBuildMode Value="Clean + Build"/>
        </Profile3>
      </Profiles>
      <ProfileIndex Value="1"/>
      <AllDefines Count="2">
        <Item1 Value="Debug"/>
        <Item2 Value="Verbose"/>
      </AllDefines>
      <StaticAutoInstallPackages Count="1">
        <Item1 Value="chmhelppkg"/>
      </StaticAutoInstallPackages>
    </BuildLazarusOptions>
  </MiscellaneousOptions>
</CONFIG>
========== snip ==========

i have a log of the compile before using miscellaneousoptions.xml and another for after if you want to see them... when i do a side-by-side DIFF of the two logs in notepad++, they are virtually identical except for the inclusion of the cleaning section in the debug build... of obvious note is that there are now lines stating "Compiling Debug Version" which are not there when building the debug version WITHOUT the miscellaneousoptions.xml file... i'm starting to wonder if the two DEBUG and VERBOSE defines should be included in the base defaults when there is NO miscellaneousoptions.xml file...

other than that, i'm at a loss of explanation and am starting to wonder if, due to the methodology i'm using, if all four profiles should actually be using "clean all and build" so as to ensure that all units and libraries are built with the proper settings... but i second guess myself in this because the optimized package seems to be relatively close in both instances as do the "clean all + build" and "normal" flavors... but i also note that they (the last two) are now identical in size where a week or so ago there was a few tens or hundreds of Kbytes difference even between them...

the logs are 361K and 451K in size so i will only send them if you deem it necessary...


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to