← Back to team overview

kicad-developers team mailing list archive

Re: Bit of Makefile Help

 

A few other notes:

Building to test a feature on Linux is significantly faster (at least in my
experience) than on other platforms, because it is possible to directly run
the executables out of the build dir (on Mac and Windows, I need to let the
full build script run, the equivalent of "make install").

For example, you can just run:
$ make eeschema
$ eeschema/eeschema

It might be that there are ways to bypass this on Mac / Windows; I haven't
put a lot of energy into the problem. If someone has highly productive Mac
or Windows dev setups, please contribute them to the docs, as our current
docs mainly focus on how to do a full build and don't have any tips on
speed or other nice tricks.

Note: you can't test the main kicad launcher app this way, nor can you test
communications between apps.

Another thing I've found is that switching from make to ninja cuts down on
rebuild times; ninja seems to do a better job of optimizing that.

-Jon

On Wed, Mar 20, 2019, 22:34 Seth Hillbrand <seth@xxxxxxxxxxxxx> wrote:

> Hi Christopher-
>
> Am 2019-03-20 21:53, schrieb Christopher Buckley:
> > Hello, I'm new to the dev team and am experimenting with an
> > improvement.
> >
> > I've done a successful build with provided sources and have revised
> > the modules I believe are applicable.
> >
> > My initial build took about 3 hours...which is probably typical.
>
> Yikes!  I assume you were using a single processor.  I usually use 'make
> -j#' where # is the number of cores + 1 on my system.  Typical full
> build times are 6-8 minutes.  Unless some of your build time was for
> dependencies?
>
> > How can I speed up test build time using make targets ?
>
> Maybe.  If you are changing eeschema, you might just run 'make eeschema'
> to rebuild only that executable.
>
> > Can I assume that as long as I don't 'make clean' then 'make install'
> > should revise the process to only rebuild affected objects?
>
> Usually this is true.  We have a few extra headers floating around,
> which tend to increase dependencies.
>
> > I've noticed a 'test' target...should just do 'make test' ?
>
> 'make test' will run the units tests.
>
> Best-
> Seth
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

References