[PD-dev] Build integration (was: Re: any2string problem)

Hans-Christoph Steiner hans at eds.org
Fri Aug 3 08:23:14 CEST 2007


On Aug 2, 2007, at 4:12 PM, Bryan Jurish wrote:

> moin all,
>
> On 2007-08-02 04:28:44, Hans-Christoph Steiner <hans at eds.org>  
> appears to
> have written:
>> On Aug 1, 2007, at 1:30 AM, IOhannes m zmoelnig wrote:
>>> i simply cannot keep track whether my changes to my code affect  
>>> all of
>>> these systems. i am happy if it compiles with mine.
>
> Right.  So what we need (im(ns)ho) is a least-common-denominator  
> sort of
> way to dispatch to variant build systems.
>
>> I couldn't agree more, we should have one build system for
>> everything.  Right now, the only functional option for that is the
>> current Pd-extended build system.
>
> Agreed.  Hence my long-intended stay-up-late-hacking session  
> yesterday,
> during which I believe to have snuck (most of) my externals into the
> pd-extended system.  The tricks I used rely on the pd-extended build
> using GNU make, but it looks like there are a number of other GNU-isms
> in externals/Makefile, so I feel safe there (feel free to object, of
> course).  I wound up (mostly) just delegating the build from the
> "moocow" targets in externals/Makefile to conventional targets  
> ("build",
> "install", "clean") in externals/moocow/extended/Makefile, which in  
> turn
> just call (./autogen.sh; ./configure; make; make install) with
> (hopefully) suitable arguments.  The same basic technique could be  
> made
> to work more systematically, *especially* if GNU make is ensured ($ 
> (eval
> $(call ...)) is your friend!)
>
> One thing I'm uncertain of (never having built the whole pd-extended
> from scratch) is what is supposed to live in the $(pd_src)  
> variable; or
> rather, where "m_pd.h" is supposed to live in relation to $(pd_src)/.
> I've gone with the assumption that m_pd.h lives in $(pd_src) directly.
> Please let me know if I should use e.g. $(pd_src)/src instead.


The global variables $(pd_src) are defined in packages/ 
Makefile.buildlayout:

pd_src = $(cvs_root_dir)/pd

so m_pd.h is in $(pd_src)/src

>
>>> http://puredata.info/Members/zmoelnig/pdcon07/BuildIntegration
>
> I've added a few thoughts to this page -- I hope you don't mind.  In
> particular, one of the major itches I've had when compiling a new pd
> version or installing on a new machine is the lack of unified
> conventions for handling machine-specific optimization flags ("- 
> march="
> and friends).  I think that any specification for a new|old|hybrid  
> build
> architecture should take this into account, at best without requiring
> users to edit a file that itself lives in CVS.  Thomas Grill's flext
> system is one way to handle this sort of thing, but I'd most like  
> to see
> it handled by environment variables (e.g. CFLAGS, or maybe PD_CFLAGS)
> and make's "?=" and "+=" operators... again, feel free to object  
> and to
> kick my wiki paragraph into /dev/null if you think that's where it
> belongs...
>
> Of course, any CFLAGS passed down from the "global" build options  
> might
> get lost, clobbered, or just ignored by local builds: that should be
> allowed, but I'd like to motion for the establishment of some  
> convention
> here.

We should use a standard method for this kind of thing, like  
autoconf.  This would another advantage of a unified build system.   
This mostly works with Pd-extended now, but it could be handled much  
better.

.hc


>
> marmosets,
> 	Bryan
>
> -- 
> Bryan Jurish                           "There is *always* one more  
> bug."
> jurish at ling.uni-potsdam.de      -Lubarsky's Law of Cybernetic  
> Entomology



------------------------------------------------------------------------ 
----

All information should be free.  - the hacker ethic








More information about the Pd-dev mailing list