[PD-dev] flext

Hans-Christoph Steiner hans at at.or.at
Thu Jul 1 21:36:58 CEST 2010


On Jul 1, 2010, at 12:33 PM, dmotd wrote:

> hi hans,
>
> okay, i still have no real idea what you are talking about
> here? i get the makefile template, but how exactly does this
> relate to a buildsystem, the examples that use the template
> are still called by the centralised makefile?

yes, check ext13 externals/Makefile for example.

> thomas maintains his own buildsystem and as much as its
> apparently stumped a bunch of people in the past, it is
> designed for cross platform AND max/msp. to redesign an
> entire build system to fit a template, for sake of maintaining
> some design rules seems a little over the top, that's why i
> decided to simply wrap it. besides, the flext layer has enough
> complexity to require a decent autoconf first, and if recent
> threads are correct, there's no libdir based autoconf
> template.

A libdir autoconf template would be awesome to have though.  Building  
C or C++ objects for Pd isn't hard.  What about flext makes things so  
complicated?  In the process of making that template Makefile, I  
realized that autotools is really rarely needed for externals.  Only  
really when there are a lot of library dependencies.

> the thing that has me confused is this notion of packaging?
> if pd-X is going to disolve into a system of separated libs
> (libdirs?) called by a virtual package 'pd-X', and thus
> 'debianize' the entire system, then i support that - however
> there must be some wrapper script that does the job that
> pd-X currently does? i understand that the template is
> designed to make that job simpler, by making the build
> assumptions the responsibility of each lib and creating a
> libdir path, but how does this actually spawn packages?
>
> what i like about pd-X is that it unifies a lot of extras
> and provides a neat wrapper for the build, so i'm assuming
> that your direction will be providing scripts to wrap
> certain build environments (osx/win/fed/deb/ubu/etc).  have
> you got examples of how this next generation of build
> scripts will look with the makefile-template, or will the
> current centralised system slowly morph into the desired
> endpoint? i am a little concerned that a 'one size fits all'
> may not fit all...

The core idea is to avoid one-size-fits-all by decentralizing the  
libraries.  If libraries are really easy to make, distribute and  
install, then there isn't a strong need to have all the libraries  
included in Pd-extended itself.  People can maintain their libraries  
entirely separately, removing the unavoidable roadblocks that happen  
when things get centralized.

For Pd-extended 0.43, I think we should be removing a bunch of  
libraries that are not really used or maintained and make them  
separately distributed.  You can see some idea of the plans here:

http://puredata.info/dev/NextRelease

That said, there is value to having a default set of libraries that  
you know will always be included with Pd-extended.  I think to get to  
that point, libraries need to be very stable both in terms of their  
interface/features and their bugginess.  Think of python libraries, or  
ruby, etc.

.hc

> anyway, without some guidelines, i'm not sure i will ever
> understand what you have in mind, and what is acceptable
> practice. i'm just wanting to contribute something that's
> been missing from the pd-x object pool, without getting too
> caught up in some fundamental change of practice.
>
> best,
> dmotd
>
> Hans-Christoph Steiner wrote:
>>
>> The idea is to have all libraries have their own standalone build
>> systems that do not rely on the packages/Makefile.buildlayout stuff.
>> That's the idea with the Makefile/library template.
>>
>> I think the best plan for flext would be to make a version of the
>> template Makefile that works for C++/flext.  Then that Makefile can
>> easily be used for Debian/Ubuntu/RPM/etc. packaging.
>>
>> http://puredata.info/docs/developer/MakefileTemplate
>>
>> I could see including the flext library itself in Pd-extended, that
>> is if it is not changing much.  But the externals itself should
>> start out separately distributed libdirs IMHO.
>>
>> .hc
>>
>> On Jun 28, 2010, at 9:50 PM, dmotd wrote:
>>
>>> hi hans,
>>>
>>> the work i've done slots straight into the existing
>>> externals/Makefile structure and currently builds fine on
>>> linux, it uses thomas' build system and until a better
>>> autoconf alternative is created, this is by far the easiest
>>> (and has been working quite well for years). as such this a
>>> multi-class single lib system.
>>>
>>> i have followed the libdir rules, with help-files
>>> abstraction (and in py/ext case scriptets) in each libs own
>>> dir, and other stuff in examples. the actual flext headers
>>> and libs get installed in their own $prefix/include
>>> $prefix/lib.
>>>
>>> my intention is to get the flext externals into the nightly
>>> autobuid. i'm not sure what you mean by 'distribuited as
>>> stand-alone', if this is a reference to your plan to split
>>> supported pd-extended libs into individual packages, then
>>> i'll need to know more about what scripts you have at your
>>> disposal and your release schedule for this new packaging
>>> system.
>>>
>>> i've attached a diff of my working makefile, which will need
>>> to be tested against other platforms and linux
>>> distributions. currently the following libs build and
>>> install correctly: absattr, pool, py, xsample (i am waitinng
>>> on some fixes up stream for clk and vasp)
>>>
>>> sorry for not emailing earlier, i've had little time to work
>>> on this stuff and just ran with the momentum with the small
>>> time i have had.
>>>
>>> cheers,
>>> dmotd
>>>
>>> Hans-Christoph Steiner wrote:
>>>>
>>>> Hey, I just saw you are working flext stuff, lots of people will
>>>> appreciate that.  I don't know your plan, but I wanted to save you
>>>> some effort.  At this point, I think that the flext stuff should be
>>>> distributed as standalone libraries, rather than integrated with  
>>>> Pd-
>>>> extended.  That makes it easier to package too, for things like
>>>> archlinux, Debian, Fedora, etc.
>>>>
>>>> Also, if you are starting in on packaging things for archlinux,
>>>> check out the externals/template.  If you can make a template
>>>> archlinux packaging file for that, then it'll be really easy to  
>>>> make
>>>> packages for all of the libraries that use that template:
>>>>
>>>> http://puredata.info/docs/developer/MakefileTemplate
>>>>
>>>> .hc
>>>>
>>>> ----------------------------------------------------------------------------
>>>>
>>>> News is what people want to keep hidden and everything else is
>>>> publicity.          - Bill Moyers
>>>>
>>>>
>>> <flext.diff>
>>
>>
>> ----------------------------------------------------------------------------
>>
>> I hate it when they say, "He gave his life for his country."  Nobody
>> gives their life for anything.  We steal the lives of these kids.  -
>> Admiral Gene LeRocque
>>
>>
>> _______________________________________________
>> Pd-dev mailing list
>> Pd-dev at iem.at
>> http://lists.puredata.info/listinfo/pd-dev



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

Information wants to be free.    -Stewart Brand





More information about the Pd-dev mailing list