kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #14109
Re: Speed up building?
On 07/25/2014 03:59 AM, Mário Luzeiro wrote:
> Hello,
> Is is possible speed up building (in linux) some how? (without to buy a faster computer)
> It looks it is not building using multiprocessor.
>
> Also, every small change, it will took a lot of time by the linker to do its business.
> I do believe the only way would be implement dynamic objects or someting but it will change drastically the architecture. :/
>
> MRL
Some tips:
**) if you are editing a header file, this is typically to change the behaviour of one
*.cpp file of immediate concern. So compile that *.cpp module first, rather than letting
the makefile decide to compile everything that depends on the header first. After your
header file edits compile in the context of that one *.cpp module of immediate concern,
then compile the rest of the link image.
Example:
$ cd build-debug/kicad ( I am working on kicad.exe, not pcbnew, eeschema, cvpcb, etc. )
$ make help | grep config
... prjconfig.o
... prjconfig.i
... prjconfig.s
This means I can make prjconfig.o explicitly *first*.
$ make prjconfig.o
When that makes/compiles, it proves my header file edits are good to go for the rest of
the link image, so now I only build kicad(exe), since that is what I am working on:
$ make kicad -j4
When done, at end of day or for patch preparation, then build the whole project:
$ cd .. back up to build-debug
$ make -j4
$ bzr diff > /tmp/patch
==========================
**) This discussion would not be complete without mentioning the obvious fact that a
faster computer does build the system faster. This is actually the most important fact
to consider and tackle.
There are handicaps in golf. I know of no sporting reason to have them in software
development.
And the cost of the computer is typically one of those famous self regulating problems:
The guy at the keyboard's time will tend to be valued according to its actual value in the
marketplace.
Dick
References