On Jan 29, 2008, at 9:15 AM, Russell Bryant wrote:
Hans-Christoph Steiner wrote:
I think that Asterisk could provide a good model with its "applications" and other plugins. While many of them are contributed from others, they are all options in the ./configure and "make menuconfig" system.
Thanks. :)
However, I'm not sure that our model could apply to Pd. Asterisk is distributed as one monolithic source package, because it is maintained by a core development team sponsored by a company. Pd development is much more fragmented than that, and the source layout reflects it.
Given the way the Pd core is developed and released, it seems that integrating any other things from externals and so forth into the pd-core build system is pretty much out of the question. I agree with IOhannes that the configure script and the rest of the build system for pd-vanilla should, at least for the foreseeable future, stay only related to the pd-vanilla stuff itself.
However, it's possible that the configure/menuselect system that we use could be applied to the externals directory. The basic idea is that there is a single configure script that checks for the presence and usability of libraries and other system-dependent features than any module cares about.
Then, menuselect (menuconfig) serves a couple of purposes. It reads information about what libraries modules depend on, or what other modules they depend on or conflict with, and builds a list of what things to build based on the results of the configure script versus the dependency information. It can also be run in an interactive mode (a simple ncurses interface) where you can see what modules depend on and customize what modules gets built.
If for your specific purpose, you only want to build a small set of modules, then you could have a pre-made menuselect.makeopts file that you drop in to the package, and it will only build what you ask for.
Some people really like the system. Others don't like it because it is "non-standard" and this stuff isn't used outside of Asterisk and a couple other packages that we distribute.
But, if the goal is to provide some sort of common build system, while also providing the ability to customize which externals get built, then this may be applicable ...
I am proposing working together to create one build system that can generate custom distros. IEM makes their own custom distros and Pd- extended is basically a custom distro as well. I think we'll all benefit if we share this work. Right now we have multiple parallel and conflicting build systems. I think the asterisk build system has some good examples for what we could do.
.hc
------------------------------------------------------------------------ ----
You can't steal a gift. Bird gave the world his music, and if you can hear it, you can have it. - Dizzy Gillespie