← Back to team overview

kicad-developers team mailing list archive

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