[Lazarus] building lazarus from the command line...
waldo kitty
wkitty42 at windstream.net
Fri Apr 20 00:58:03 CEST 2012
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...
More information about the Lazarus
mailing list