[PD] autotools

Christof Ressi christof.ressi at gmx.at
Sun Dec 3 13:39:12 CET 2017

> Yeah and that's largely due to the current layout being recursive,

hmmm.. I don't think that's the reason. currently, there aren't that many Makefiles: /src, /portaudio, /portmidi, /asio, /extra and for each external. aside from that, my build system is also recursive (calling make on pd-lib-builder makefiles for the externals). 
what's really slow is compiling the individual source files. while a typical .c file in /src takes ~1 second on my build system, it takes significantly longer with libtool. this is easily noticeable when watching the console output. I think it's rather an overhead introduced by libtool but I might be wrong. did you notice that on other platforms? 

Gesendet: Sonntag, 03. Dezember 2017 um 12:55 Uhr
Von: "Dan Wilcox" <danomatika at gmail.com>
An: "Christof Ressi" <christof.ressi at gmx.at>
Cc: pd-list <pd-list at iem.at>, "Miller Puckette" <msp at ucsd.edu>
Betreff: Re: [PD] autotools


On Dec 3, 2017, at 11:39 AM, Christof Ressi <christof.ressi at gmx.at[mailto:christof.ressi at gmx.at]> wrote: 
but most other platform specific knowledge will be the same for any build system I guess. after all, Pd changes in a slow and healthy pace, so there aren't many modifications to be done to the build system once it is set up.
That is definitely true. Automake puts together the makefile rules for you but of course it still works in the same way in the end.
I've also found this guide to be pretty helpful in the getting into the basics: https://autotools.io/index.html[https://autotools.io/index.html]
the one thing I noticed is build speed: a complete rebuild (including externals) on my personal MinGW build system takes ~40 seconds but with autotools it takes a whopping 4 minutes and 30 seconds!
Yeah and that's largely due to the current layout being recursive, ie. multiple makefiles in multiple directories. This is one of the reasons there have been some projects that rework things into a single main makefile as it lowers the amount of directory walking and intermediate steps ie. non-recursive make: https://autotools.io/automake/nonrecursive.html[https://autotools.io/automake/nonrecursive.html]
To some degree, configure will always be slow for all sorts of reasons, but there are definitely techniques to slow down the make process. Another advantage to non-recursive make is that doing a parallel build would work without timing uncertainties between different makefiles. 

Dan Wilcox

More information about the Pd-list mailing list