[Buildroot] [PATCHv2 4/4] Makefile: implement a size-stats target

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Jan 13 08:12:47 UTC 2015


Dear Romain Naour,

On Mon, 12 Jan 2015 23:47:28 +0100, Romain Naour wrote:

> > +size-stats:
> > +	@[ -f $(O)/build/packages-file-list.txt ] || \
> > +		{ echo "ERROR: No package size information available, please rebuild with BR2_COLLECT_FILE_SIZE_STATS" ; exit 1; }
> > +	@$(INSTALL) -d $(O)/graphs
> > +	@cd "$(CONFIG_DIR)"; \
> > +	$(TOPDIR)/support/scripts/graph-size --builddir $(O) \
> 
> graph-size -> size-stats ?

Will fix, thanks for noticing (I renamed the script late in my
development).

> But with that fixed I get:
> $ make O=test/xfsprogs/ size-stats
> Traceback (most recent call last):
>   File "/home/naourr/git/buildroot/support/scripts/size-stats", line 217, in <module>
>     pkgdict = build_package_dict(args.builddir)
>   File "/home/naourr/git/buildroot/support/scripts/size-stats", line 68, in build_package_dict
>     with open(os.path.join(builddir, "build", "packages-file-list.txt")) as filelistf:
> IOError: [Errno 2] No such file or directory: 'test/xfsprogs/build/packages-file-list.txt'
> 
> But this file exist:
> $ ls test/xfsprogs/build/packages-file-list.txt
> test/xfsprogs/build/packages-file-list.txt

Might be that I didn't properly take into account out-of-tree build. My
bad, I'll have a look.

> Also I noticed that the man pages (and headers) 
> are taken into account in packages-file-list.txt:
> [...]
> tmux,./usr/bin/tmux
> tmux,./usr/share/man/man1/tmux.1
> 
> Since they are removed at the end, I think we want to 
> remove them from packages-file-list.txt during
> TARGET_DIR cleanup ?

It does not really matter if there are more files in
packages-file-list.txt that there really are in TARGET_DIR, because the
logic of the size-stats script is to travel through TARGET_DIR, and for
each file in TARGET_DIR, lookup in packages-file-list.txt which package
was the last one to install this file. So all files that are in
packages-file-list.txt but not in TARGET_DIR are purely and simply
ignored.

Thanks for your review and testing!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list